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


Quelle est la manière la plus simple d'activer PHP sur nginx sur Ubuntu 12.04?

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


126
2018-05-09 22:39


origine




Réponses:


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

Testez son fonctionnement (voir "Bienvenue dans nginx!")

sudo service nginx stop

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

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

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

listen pour ipv4 / ipv6 les deux.

Faites défiler jusqu'à l'endroit où il est dit "location ~ .php {" et décommentez les lignes pour 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 restart sudo 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 le fastcgi_pass 127.0.0.1:9000; aligner avec cela pour le faire fonctionner: fastcgi_pass unix:/var/run/php5-fpm.sock;)


135
2018-05-09 23:07



Comme une remarque tardive, vous pouvez faire 12.04 utiliser un socket UNIX comme 12.10+ fait en éditant /etc/php5/fpm/pool.d/www.conf et changer la ligne d'écoute à listen = /var/run/php5-fpm.sock, puis en utilisant la ligne @ThomasW. mentionné. - Powerlord
@Powerlord La configuration par défaut de NGINX a les deux lignes et explique la différence entre les deux, plutôt que de changer la façon dont PHP s'exécute, vous pouvez simplement changer la ligne de configuration dans NGINX plus rapidement, et tout fonctionne. - Thomas Ward♦
@ ThomasW. La description de la configuration par défaut NGINX des deux lignes est également incorrecte dans 12.04. php5-fpm nécessite la première méthode en raison de la configuration de php5-fpm au 12.04. Il n'a pas changé à la deuxième méthode avant 12.10. Pour que php5-fpm fonctionne avec nginx comme indiqué, vous devez modifier www.conf de fpm comme mentionné dans mon message précédent. - Powerlord
@Powerlord Vous avez raison, c'est un problème qui peut être résolu en modifiant la documentation dans le fichier de configuration par défaut. Voir ce bug que j'ai créé sur cette question. Je n'ai pas encore eu l'occasion de proposer un correctif. - Thomas Ward♦
Cela ne fonctionne pas pour moi sur Ubuntu 14.04. nginx dit "Une erreur est survenue, la page que vous recherchez n'est pas trouvée", que faire? - Awal Garg


MODIFIER: Comme souligné par 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


le réponse de papashou est correct sur l'ancien 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

Tester nginx

Ouvrir ce lien http://localhost devrait afficher "Bienvenue à Nginx!"

Tester 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 fichier avec:

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

    ou comme un seul paquebot

    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.


46
2018-03-07 04:39



Merci pour cela. Voici un autre lien utile: digitalocean.com/community/tutorials/…. Et notez que si vous voulez installer MySQL, vous devrez également exécuter apt-get install php5-mysql (en plus d'installer MySQL lui-même). - Matt Browne
Il y a une nouvelle version de l'article ci-dessus pour Ubuntu 16: digitalocean.com/community/tutorials/… - Matt Browne