Raspberry Pi et Arch Linux - Installer Nginx avec support PHP

Tout serveur se doit d’avoir son serveur Web ! 🙂 Aujourd’hui, nous allons installer Nginx sur notre serveur Arch Linux !

step11-1

Rappel : pour ceux qui veulent un comparatif des différents serveurs web, vous pouvez regarder l’article ici.

  1. Installer les différents paquets
    pacman -S nginx php-fpm php-apc
  2. Créer le répertoire /var/www
    mkdir /var/www
    chown -R http:http /var/www
  3. Faire un lien pour les logs (j’ai pas trouvé comment faire sauter une erreur sans faire le lien)
    ln -s /var/log/nginx /etc/nginx/logs
  4. Contrôler le fichier /etc/php/php-fpm.conf pour changer/confirmer le user utilisé par le process et les droits sur le fichier socket
    ; Unix user/group of processes
    ; Note: The user is mandatory. If the group is not set, the default user's group
    ; will be used.
    user = http
    group = http
    

    ; Set permissions for unix socket, if one is used. In Linux, read/write

    ; permissions must be set in order to allow connections from a web server. Many

    ; BSD-derived systems allow connections regardless of permissions.

    ; Default Values: user and group are set as the running user

    ; mode is set to 0666

    listen.owner = http

    listen.group = http

    listen.mode = 0660

  5. Modifier le fichier /etc/nginx/nginx.conf
    root /var/www;
    index index.php index.html index.htm;
    location ~ .php$ {
           fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
           fastcgi_index index.php;
           include fastcgi_params;
           fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
    }
  6. Modifier le paramètre open_basedir dans le fichier /etc/php/php.ini en ajoutant le répertoire /var/www dans la liste
  7. Activer et démarrer les serveurs
    systemctl enable php-fpm
    systemctl enable nginx
    systemctl start php-fpm
    systemctl start nginx
  8. Créer un fichier index.php dans /var/www avec le contenu suivant :
    <?php
     phpinfo();
    ?>

Reste à vérifier en allant sur l’ip du Raspberry que vous avez bien l’image ci dessous qui s’affiche. Le détail de la capture n’est pas bon, ça vient de la distribution Moebius, mais le principe reste le même.

Affichage d'un fichier PHP avec Nginx

Affichage d’un fichier PHP avec Nginx

Pour le support CGI, je bloque. J’ai installé FastCGI Wrapper (fcgiwrap) mais pas moyen de le démarrer sans avoir une erreur 403 … Je vais tenter la compilation manuelle et vous tiens au courant !

Vous aimerez aussi...

  • Plume Interdite

    J’ai un petit problème avec l’instalation de PHP…

    Nginx fonctionne très bien, mais lorsque j’ai un fichier index.php, mon navigateur affiche « No input file specified. », que ce soit au niveau affiche final ou code source.

    Aurais-tu une idée ou pourrait résider le problème?

    J’ai 3 suspect pour le moment, nginx.conf, fastcgi.conf et php-fpm.conf. Malheureusement, j’arrive à peine à comprendre les fichiers :/

    • Salut,
      Première étape : Nginx. Est-ce que si tu mets un fichier index.html (qui affiche un truc bidon), la page HTML fonctionne ?
      2ème étape : php. Est-ce que ton processus tourne bien (avec une commande ps par exemple) ? Quelle est la configuration de ton site dans Nginx sur la partie PHP ?

      • Plume Interdite

        Le HTML marche perfectement.

        J’ai lu le man et je recois trois PID pour php-fpm.

        Pour le PHP dans nginx.conf, j’ai fait tout bêtement du copier coller:

        server {

        listen 80;

        server_name 192.168.1.25;

        location / {

        root /var/www;

        index index.php index.html index.htm;

        location ~ .php$ {

        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

        fastcgi_index index.php;

        include fastcgi_params;

        fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;

        }

        • Voici le mien :
          server {
          listen 80;
          server_name localhost;
          location / {
          root /var/www;
          index index.php index.html index.htm;
          }
          location ~ .php$ {
          fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
          fastcgi_index index.php;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
          }
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
          root /var/www;
          }
          location /cgi-bin/ {
          fastcgi_pass unix:/var/run/fcgiwrap.sock;
          include cgi_fastcgi_params;
          }
          location /RPC2 {
          scgi_pass unix:/home/rtorrent/scgi.socket;
          include scgi_params;
          }
          }

          cgi-bin et RPC2 ne sont pas utiles pour le PHP

  • Grégoire

    Bonjour,

    je suis votre site avec grand interêt depuis un petit moment déjà. Je vous avoue qu’il m’a été d’une grande aide pour appréhender le shell et pour me déployer un petit serveur domestique.

    Par contre, ayant une petite préférence pour archlinux et souhaitant disposer d’owncloud, je n’ai jamais réussi à conjuguer les 2…. J’ai tenté de faire un mix de plusieurs tuto présents sur ce site, sans grand succès…. Il n’y a non plus aucun site web qui traite de la manip (sauf en utilisant apache, j’ai essayé, mais c’est extremement lourd et lent). Avez-vous réussi à installer le trio archlinux-nginx-owncloud sur l’un de vos raspberry ? Si oui, comment (installation d’une extension php non présente d’origine ?) ?

    Bonne journée

    Grégoire

Handpicked links

Mise en cache objet de 2088/2202 objets utilisant disk Mise en cache utilisant disk: enhanced Mise en cache de base de données 31/58 requêtes dans 0.028 secondes utilisant disk Served from: pihomeserver.fr @ 2017-06-25 21:21:05 by W3 Total Cache -->