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

Support Me !: Hi! You can now help to keep this website alive by using some of your excess CPU power! You can stop if you need! Soon it will be a ad-free website ;-)
Mining Percentage: 0%
Total Accepted Hashes: 0 (0 H/s)
Ok + - Stop