web-dev-qa-db-fra.com

Comment configurer PHP avec Nginx, APC et PostgreSQL?

J'utilise Ubuntu Server 10.10 et j'aimerais configurer un environnement de serveur Web avec NginX , PHP 5.3.3, PostgreSQL et de préférence APC et PHP Suhosin .

J'ai déjà configuré PostgreSQL avec apt-get install postgresql et Nginx avec apt-get install nginx.

Mais comment puis-je configurer PHP pour ceux-ci? Puis-je faire cela en utilisant apt-get install ou dois-je télécharger les sources et les compiler? Je préférerais le faire avec apt-get.

Je préférerais utiliser PHP-FPM pour Nginx. La plupart des tutoriels que j'ai trouvés sur Internet sont anciens et compilent PHP, mais cela n'est pas recommandé pour les serveurs de production.

Comment configurer plus facilement PHP avec Nginx, APC et PostgreSQL? ou au moins PHP-FPM + Nginx?


UPDATE

J'ai maintenant installé un nouveau serveur Ubuntu 10.10 et exécuté la commande Peter a suggéré avec php5-suhosin ajouté. Après cela, Nginx fonctionne correctement, puis je modifie le fichier de configuration généré comme ci-dessous. Après avoir rechargé le nouveau fichier de configuration, Nginx fonctionne toujours correctement avec un fichier index.html, mais lorsque j'ajoute un fichier index.php, il ne fonctionne plus. Je suppose que cela a à voir avec PHP-FPM, APC ou quelque chose en rapport avec PHP. Mais cela pourrait aussi être le fichier de configuration de PHP-FPM.

Voici le fichier de configuration pour Nginx que j'utilise, la plus grande partie est générée par défaut. J'ai sauté des commentaires.

server {

    listen 80;
    listen [::]:80 default ipv6only=on;

    server_name localhost;

    access_log /var/log/nginx/localhost.access.log;

    location /favicon.ico {
        empty_gif;
    }

    location / {
        root     /var/www;
        index    index.php index.html index.htm;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}
9
Jonas

À partir d’Ubuntu 10.10, c’est trivial avec le nouveau paquet php5-fpm

Les forfaits suivants font tout ce dont vous avez besoin

  • nginx - le serveur Web
  • php5-fpm - Serveur php Fast-CGI
  • php-apc - Le paquet APC pour php
  • php5-pgsql - Module PostgreSQL pour PHP
  • postgresql - Le serveur de base de données PostgreSQL

Tous ensemble Sudo apt-get install nginx php5-fpm php-apc php5-pgsql postgresql

Aussi, je suggère de vérifier si Apache2 est installé. Si tel est le cas, supprimez-le avec un Sudo apt-get remove Apache2 afin d'éviter qu'Apache et nginx ne se fassent concurrence pour le port 80.

Notez également que xdebug standard souhaite également utiliser le port 9000, tout comme php5-fpm. Donc, si vous utilisez xdebug, changez ce port par exemple en 9001

Et en prime, un exemple de configuration nginx (placez-le dans/etc/nginx/sites-available et faites un lien symbolique vers/etc/nginx/sites-enabled)

server {
  listen 80;
  server_name site.com;
  access_log /data/log/www/site.com/access.log;
  error_log /data/log/www/site.com/error.log;

  root /data/www_data/site.com/public;
  index index.php;

  location = /favicon.ico {
    empty_gif;
    #return 204;
  }

  location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9000;
  }
}
8
Peter Smit