web-dev-qa-db-fra.com

Quel est le moyen le plus simple d'activer PHP sur nginx?

Quel est le moyen le plus simple d'activer PHP sur nginx sur Ubuntu 12.04?

La meilleure solution est celle qui demande un travail minimal, idéalement une installation de paquet :)

130
sorin

La méthode suivante vous permettra de démarrer rapidement sur Ubuntu 12.04:

Installez les dépendances:

Sudo apt-get install php5-common php5-cli php5-fpm

Installez nginx:

Sudo apt-get install nginx

Démarrer nginx:

Sudo service nginx start

Vérifiez que cela fonctionne (devrait voir "Bienvenue sur nginx!")

Sudo service nginx stop

Dans la configuration de votre site nginx (/ etc/nginx/sites-available/default), modifiez la ligne dans la section {} du serveur.

index index.html index.htm à index index.php index.html index.htm.

Décommentez les lignes de la section {} du serveur commençant par

listen pour ipv4/ipv6 à la fois.

Faites défiler jusqu'à l'endroit où il est écrit "location ~ .php {" et décommentez les lignes afin qu'il ressemble à ceci:

location ~ \.php$ {
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index index.php;
  include fastcgi_params;
}

Sudo service php5-fpm restartSudo service nginx restart

Votre racine Web par défaut se trouve dans/usr/share/nginx/www (selon le fichier de configuration). (Voir root /usr/share/nginx/www;

(Remarque: pour Ubuntu 12.10 ou plus récent, vous devrez remplacer la ligne fastcgi_pass 127.0.0.1:9000; par ceci pour que cela fonctionne: fastcgi_pass unix:/var/run/php5-fpm.sock;.)

140
papashou

EDIT: Comme le souligne Matt Browne , ce post plus récent pourrait vous intéresser:
Comment installer Linux, Nginx, MySQL, PHP (pile LEMP) dans Ubuntu 16.04


Le réponse de papasho est correct sur le vieil Ubuntu 12.04. Depuis Ubuntu 12.10, la configuration est un peu différente. Voici ce que j'ai fait:

Installer

Sudo apt-get install nginx php5-fpm

Activer PHP

Ne commentez pas les lignes suivantes dans le fichier de configuration /etc/nginx/sites-available/default

location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

Démarrer (ou redémarrer)

Sudo service php5-fpm restart
Sudo service nginx restart

Testez nginx

L’ouverture de ce lien http://localhost devrait afficher "Bienvenue sur nginx!"

Testez php

Créer un fichier php:

  • Le chemin cible est la sortie de

    awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
    

    par exemple. /usr/share/nginx/www

  • Ecrivez un fichier info.php avec:

    echo '<?php phpinfo(); ?>' | \
        Sudo tee /usr/share/nginx/www/info.php
    

    ou comme une ligne

    echo '<?php phpinfo(); ?>' | \
        Sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
    

L’ouverture de http://localhost/info.php devrait afficher la page d’informations PHP.

46
olibre