Voila ça faisait un moment que je voulais faire une installation de Nginx sur mes serveurs et Raspberry-Pi. L’efficacité de ce serveur web dernière génération n’est plus à démontrer surtout sur de petites machines telles que le Raspberry-Pi.
Toutes les commandes qui devront être précédé de sudo pour un Raspberry-Pi sous Raspbian.
Installation
apt-get install nginx php5-fpm php5-mysql
Configuration
Configuration de Nginx
La configuration principale se fait dans le fichier /etc/nginx/nginx.conf
nano /etc/nginx/nginx.conf
Il y a 2 trucs apparemment important a prendre en comte,
- worker_processes (Les worker processes sont les processus fils lancés par le père, Il est recommandé de mettre autant de worker processes que de cores disponibles sur votre serveur).
- et keepalive_timeout (premier chiffre temps max d’une connexion keepalive, deuxième chiffre indication de cette valeur dans le champ timeout de l’entête de la réponse).
Il y a toute les informations sur DigitalOcean pour trouver et paramétrer ce fichier de configuration.
Prise en compte de php pour un virtualhost
nano /etc/nginx/sites-enabled/default
et décommenter
location ~ \.php$ { try_files $uri =404; 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; }
Configuration de PHP-FPM
Il y a de commenté dans l’extrait ci-dessus:
# NOTE: You should have « cgi.fix_pathinfo = 0; » in php.ini
C’est ce que nous allons faire en éditant le fichier php.ini:
nano /etc/php5/fpm/php.ini
Le plus dur va être de trouver la ligne ou se trouve cette fichu option a décommenter :
[fusion_builder_container hundred_percent="yes" overflow="visible"][fusion_builder_row][fusion_builder_column type="1_1" background_position="left top" background_color="" border_size="" border_color="" border_style="solid" spacing="yes" background_image="" background_repeat="no-repeat" padding="" margin_top="0px" margin_bottom="0px" class="" id="" animation_type="" animation_speed="0.3" animation_direction="left" hide_on_mobile="no" center_content="no" min_height="none"][...] ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. ; http://php.net/cgi.fix-pathinfo ; Uncomment and modify this line: ;cgi.fix_pathinfo=1 ; so that it looks like this: cgi.fix_pathinfo=0 [...]
Edit du 13 aout 2014
Configuration des mails
Nous avons vu précédemment envoyer un mail depuis notre raspberry-pi en configurant ssmtp. Il faut donc dire à PHP d’utiliser SSMTP. La configuration se fait toujours dans le php.ini au niveau de la ligne 967.
Il faut décommenter et ajouter le chemin au sendmail_path:
sendmail_path = /usr/sbin/ssmtp -t
Edit du 31 aout 2014
Configuration de la date de PHP
Effectivement nous avons déjà établie précédemment la configuration de la date au sein du système, mais je ne sais pourquoi PHP ne prend pas en compte la timezone du système lors de l’installation.
La configuration se fait toujours dans le php.ini, Il faut donc décommenter la ligne correspondante au fuseau horaire et rajouter la valeur voulu:
; Defines the default timezone used by the date functions date.timezone = Europe/Paris
Start des services et test
Une fois ceci fait nous allons démarrer Nginx et PHP5-FPM:
service nginx start
et
service php5-fpm start
Création d’un fichier info contenant les informations PHP
echo "<?php phpinfo(); ?>" > /usr/share/nginx/www/info.php
Pour tester que tout fonctionne http://votreip/info.php devrait vous donner:
Si tout vous fonctionne, il reste une petite manipulation à faire pour que Nginx et PHP-FPM se lance au démarrage du serveur ou du raspberry-pi.
update-rc.d php5-fpm defaults
et
update-rc.d nginx defaults
Sources:
- http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-lemp-on-debian-wheezy
- http://trac.evolix.net/infogerance/wiki/HowtoNginx
Pour aller plus loin:
- http://touteladomotique.com/index.php?option=com_content&view=article&id=1247:tuto-generer-et-installer-un-certificat-ssl-valide&catid=79:informatique&Itemid=90
- http://www.k-tux.com/nginx-tips-pour-booster-le-service
[/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]
Salut,
Je n’ai pas encore essayé mais sais tu si ton tuto sur l’api MYFOX (avec un serveur Apache) fonctionne avec Nginx ? (j’ai déjà essayé avec lighttpd en vain ;'( a priori un probleme avec le module de rewriting.
J’utilise un Raspberry, et je trouve aussi que Nginx est bien plus adapté qu’Apache…
L’api n’utilise pas la nouvelle api officielle de myfox, j’ai une nouvelle version en cours.
je ferai un tuto pour l’utilisation sous nGinx …
Excellente nouvelle ! merci de nous faire partager ta passion et tes projets.
Salut,
Je n’ai pas encore essayé mais sais tu si ton tuto sur l’api MYFOX (avec un serveur Apache) fonctionne avec Nginx ? (j’ai déjà essayé avec lighttpd en vain ;'( a priori un probleme avec le module de rewriting.
J’utilise un Raspberry, et je trouve aussi que Nginx est bien plus adapté qu’Apache…
L’api n’utilise pas la nouvelle api officielle de myfox, j’ai une nouvelle version en cours.
je ferai un tuto pour l’utilisation sous nGinx …
Excellente nouvelle ! merci de nous faire partager ta passion et tes projets.
Bonjour.
Lorsque je lance la commande: sudo apt-get install nginx php5-fpm php5-mysql
J’ai comme erreur:
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-common armhf 5.4.36-0+deb7u3
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-fpm armhf 5.4.36-0+deb7u3
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-mysql armhf 5.4.36-0+deb7u3
404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-common_5.4.36-0+deb7u3_armhf.deb 404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-fpm_5.4.36-0+deb7u3_armhf.deb 404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-mysql_5.4.36-0+deb7u3_armhf.deb 404 Not Found
E: Impossible de récupérer quelques archives, peut-être devrez-vous lancer apt-get update ou essayer avec –fix-missing ?
Vous pouvez m’aider svp 🙂 merci a vous
tu as bien fait un sudo apt-get update avant ?
Bonjour.
Lorsque je lance la commande: sudo apt-get install nginx php5-fpm php5-mysql
J’ai comme erreur:
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-common armhf 5.4.36-0+deb7u3
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-fpm armhf 5.4.36-0+deb7u3
404 Not Found
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main php5-mysql armhf 5.4.36-0+deb7u3
404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-common_5.4.36-0+deb7u3_armhf.deb 404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-fpm_5.4.36-0+deb7u3_armhf.deb 404 Not Found
Impossible de récupérer http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-mysql_5.4.36-0+deb7u3_armhf.deb 404 Not Found
E: Impossible de récupérer quelques archives, peut-être devrez-vous lancer apt-get update ou essayer avec –fix-missing ?
Vous pouvez m’aider svp 🙂 merci a vous
tu as bien fait un sudo apt-get update avant ?