• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page
Hotfirenet

Hotfirenet

le blog d'un papa Geek

  • Actualités info
  • Domotique
    • Jeedom
  • Catégories
    • Comment faire
    • Développement
    • Edito
    • Multimédia
    • Retour d’expérience

Installer Nginx avec PHP sur une Debian Wheezy ou Raspbian sur Raspberry-Pi

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,

  1. 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).
  2. 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:

phpinfo-nginx

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]

À propos Djo

Autodidacte, curieux et motivé.

Interactions du lecteur

Commentaires

  1. ghoST dit

    6 août 2014 à 12 h 55 min

    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…

    Répondre
    • Johan dit

      6 août 2014 à 13 h 50 min

      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 …

      Répondre
      • ghoST dit

        7 août 2014 à 12 h 24 min

        Excellente nouvelle ! merci de nous faire partager ta passion et tes projets.

        Répondre
  2. ghoST dit

    6 août 2014 à 12 h 55 min

    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…

    Répondre
    • Johan dit

      6 août 2014 à 13 h 50 min

      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 …

      Répondre
      • ghoST dit

        7 août 2014 à 12 h 24 min

        Excellente nouvelle ! merci de nous faire partager ta passion et tes projets.

        Répondre
  3. mika dit

    13 avril 2015 à 13 h 14 min

    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

    Répondre
    • Djo dit

      13 avril 2015 à 15 h 05 min

      tu as bien fait un sudo apt-get update avant ?

      Répondre
  4. mika dit

    13 avril 2015 à 13 h 14 min

    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

    Répondre
    • Djo dit

      13 avril 2015 à 15 h 05 min

      tu as bien fait un sudo apt-get update avant ?

      Répondre

Laisser un commentaire Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Barre latérale principale

Catégories

  • Actualités info
  • At-Home
  • Bon plan
  • Comment faire
  • Développement
  • Domotique
  • Edito
  • High-Tech
  • Jeedom
  • Multimédia
  • Open-Source
  • Retour d’expérience
Infomaniak, l'hebergeur vert

Footer

A PROPOS

Hotfirenet.Com est un blog Geek et High-Tech qui touche au développement informatique, nouvelles technologies, Web, domotique, drones, impression 3D .... En savoir plus…

Djo: Afficher mes articles de blog

PSSST, et si on bossait ensemble ?

Mes compétences ? Le web et le développement informatique. Besoin d’un développement de sites web ? de rédaction de contenu web, d’une expertise en SEO et médias sociaux ? Ou bien vous souhaitez me proposer un partenariat ?

Tous droits réservés © 2021

  • Mentions légales
  • Contact