140 votes

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

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

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

144voto

papashou Points 2400

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émarrez nginx :

sudo service nginx start

Vérifiez que tout fonctionne (vous devriez voir "Welcome to nginx !").

sudo service nginx stop

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

index index.html index.htm a index index.php index.html index.htm .

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

listen pour ipv4 / ipv6 à la fois.

Faites défiler la page jusqu'à ce qu'il soit écrit location ~ \.php { et décommentez les lignes pour que ça ressemble à ça :

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 restart sudo service nginx restart

La racine de votre site 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 une version plus récente, vous devrez remplacer l'icône fastcgi_pass 127.0.0.1:9000; avec cela pour que cela fonctionne : fastcgi_pass unix:/var/run/php5-fpm.sock; )

49voto

nutty about natty Points 699

EDIT : Comme l'a souligné Matt Browne vous pourriez être intéressé par ce post plus récent :
Comment installer Linux, Nginx, MySQL, PHP (pile LEMP) dans Ubuntu 16.04


El réponse de papashou est correcte sur l'ancienne 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

Décommentez 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ébut (ou redémarrer)

sudo service php5-fpm restart
sudo service nginx restart

Test nginx

Ouvrir ce lien http://localhost devrait afficher "Bienvenue chez nginx !"

Test php

Créez 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

  • Écrire un info.php avec :

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

    ou en une seule phrase

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

Ouverture http://localhost/info.php devrait afficher la page d'information PHP.

2voto

Maciej Łebkowski Points 2869
sudo apt install nginx php-fpm

Notez la version de fpm, ou vérifiez php -v . 7.3.11-0ubuntu0.19.10.3 (cli) dans mon cas.

sudo nano /etc/nginx/sites-available/default
  1. Définissez le bon root dossier.

  2. Añadir index.php à la index directive.

  3. Décommentez le gestionnaire de localisation pour php, mais laissez la ligne "php-cgi" commentée si vous utilisez php-fpm. Assurez-vous également de la bonne version de fpm pour éviter d'obtenir le message "502 Bad Gateway" sur localhost : fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

    sudo service nginx restart

Cela fonctionne sur :

$ nginx -v
nginx version: nginx/1.16.1 (Ubuntu)
$ uname -a
Linux cees-XPS-13-9380 4.15.0-1067-oem #77-Ubuntu SMP Mon Jan 20 09:23:07 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X