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 :)
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 :)
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;
)
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.
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
Définissez le bon root
dossier.
Añadir index.php
à la index
directive.
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
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.