Un serveur Nginx, une Raspberry, un Raspbian, une solution !

Installer Nginx Raspbian, et accélérez votre serveur web Raspberry

Mis à jour le 21 avril 2014 - 50 Commentaires - , , , , , ,

Cela fait quelques temps que nous n’avons pas écrit de tutoriel. En effet, nous nous sommes octroyé quelques jours de vacances, et nous voici aujourd’hui de retour.

C’est donc ici un tutoriel venant compléter celui traitant de l’installation d’un serveur web sur la Raspberry. En effet, il sera ici question de l’installation d’un serveur web autre qu’Apache, à savoir Nginx.

Nginx c’est quoi ?

Avant d’installer Nginx, il convient de comprendre ce qu’est au juste Nginx.

Nginx c’est un serveur web.

Il permet donc à un client d’accéder à une ressource sur une machine distante, et à cette machine de retourner la ressource adaptée au client. Il s’agit d’un logiciel libre, distribué sous licence BSD. Il a vu le jour en 2002, en Russie, mais ne c’est vraiment développé qu’à partir de 2006, quand il a commencé à être traduit du russe vers l’anglais.

Les parts de marché de Nginx monte rapidement

Nginx monte rapidement, ici l’évolution des parts de marché des serveurs web en 2016 – source : w3techs.com

Nginx représente 20,4 % des serveurs. C’est bien moins que son principal concurrent Apache, qui représente 60,6 % de parts de marché, mais c’est tout de même énorme. Il occupe ainsi la deuxième place des serveurs (devant les boulets de chez Microsoft avec leurs 14,1%), ce qui est une performance d’autant plus importante que le concurrent Apache occupe une place historique absolument énorme, et est un acteur majeur, non seulement au-travers de son serveur, mais aussi au-travers de la licence Apache.

Mais pourquoi installer Nginx plutôt qu’Apache ?

C’est bien sûr la question la plus importante. Pourquoi choisir un serveur secondaire plutôt que l’acteur principal du marché ? La réponse est simple, les performances !

Nginx est un serveur dit « Asynchrone ». Cela signifie qu’il peut exécuter plusieurs actions en même temps, sans attendre la fin de la première pour passer à la seconde. Ce n’est pas le cas d’Apache qui, s’il permet plusieurs requêtes en même temps va alors lancer de nouveaux processus.

En clair, cela signifie trois choses.

Premièrement, Nginx répond beaucoup plus vite qu’Apache.

Deuxièmement, Nginx permet de supporter plus d’utilisateurs simultanément.

Troisièmement, Nginx consomme moins de RAM qu’Apache, ce qui est très important compte tenu du fait que la Raspberry, même dans son modèle 3, ne dispose que de 1024Mo de RAM non extensibles. Cela est d’autant plus important dans le cadre du modèle B+ et de ses 512 Mo de RAM.

Alors vous vous doutez bien que tout cela n’est pas sans contrepartie.

Nginx ne réagit pas toujours comme Apache2 avec PHP.

Il n’est pas aussi facile de tester Nginx qu’Apache sur une machine Windows.

Enfin, Nginx ne supporte pas les fichiers .htaccess, que vous devrez convertir pour Nginx, et que vous ne mettrez pas dans un fichier dans le répertoire cible, mais dans le fichier de configuration du site.

Cependant, Nginx vaut vraiment le coup, et c’est sans doute un meilleur choix qu’Apache pour un serveur web sur la Raspberry.

Désactiver le serveur Apache

Nous considérerons ici que vous avez déjà suivi le tutoriel sur l’installation d’un serveur web Apache, avec PHP et MySQL. Par conséquent nous ne réinstallerons pas les deux derniers, et nous désactiverons le premier, sans toutefois le désinstaller. Il s’agira là de notre première étape. Si vous n’avez pas installé de serveur Apache, vous pouvez passer cette première étape.

Tout d’abord, il convient de désactiver le serveur Apache actuellement en cours d’exécution.

Pour cela, il suffit d’utiliser la commande suivante :

sudo /etc/init.d/apache2 stop

Le serveur Apache2 ne tourne plus. Nous allons maintenant l’empêcher de se lancer automatiquement au démarrage de Raspbian comme il le fait pour l’instant.

Ne pas lancer Apache au démarrage

Sur les dernières versions de Debian (et donc Raspbian), systemd a pris le pas sur la méthode traditionnel de gestion des services.

Nous allons donc désactiver Apache au démarrage. Pour cela, il vous suffit de lancer la commande suivante :

sudo systemctl disable apache2

Si vous le souhaitez, vous pouvez redémarrer votre Raspberry Pi

Lancer automatiquement Apache au démarrage

Il est possible que vous souhaitiez un jour réactiver le démarrage automatique d’Apache. Pour cela, vous devrez utiliser la même commande que pour le désactiver, mais avec des arguments différents :

sudo systemctl enable apache2

Cette fois l’argument « enable » va demander au programme de lancer Apache2 au démarrage du serveur.

Notez que vous ne pourrez pas (par défaut) faire cohabiter Apache et Nginx !

Vous savez désormais comment activer ou désactiver le démarrage automatique d’Apache et nous allons maintenant pouvoir installer Nginx.

Installer le serveur Nginx pour Raspbian

Comme nous l’avions fait pour Apache2, nous allons de nouveau utiliser le gestionnaire de paquet « aptitude » pour installer Nginx et php-fpm sur la Raspberry depuis les dépôts Raspbian.

Pour cela, il vous suffit d’utiliser la commande :

sudo aptitude install nginx php5-fpm

Par défaut, Nginx n’est pas lié à PHP. Lors du développement de Nginx, le choix a été fait d’utiliser PHP-FMP (une version plus rapide de PHP) plutôt qu’un PHP plus traditionnel. Par conséquent, on va installer php-fpm pour gérer les fichiers PHP avec Nginx.

 

Vous pouvez vérifier si votre serveur marche correctement de la même façon que pour vérifier si un serveur Apache fonctionne, c’est-à-dire en lançant une requête sur le port 80 de votre serveur. Vous obtiendrez alors une page marquée « Welcome to nginx! ».

Configurer Nginx

Maintenant que Nginx est bien installé, il va falloir rajouter un tout petit peu de configuration. Nous n’allons pas ici vous expliquer comment se configure un serveur Nginx, nous allons simplement modifier le dossier contenant vos sites, ajouter les pages index.php comme pages par défaut, et enfin ajouter PHP.

Pour cela, éditez le fichier « /etc/nginx/sites-available/default », par exemple via la commande :

nano /etc/nginx/sites-available/default

et cherchez la ligne

index index.html index.htm index.nginx-debian.html;

pour la remplacer par la ligne

 index index.html index.htm index.php;

Cela va rajouter une redirection automatique vers les fichiers « index.php » pour les dossiers du site, comportement par défaut de Apache.

Nous allons maintenant activer php-fpm pour Nginx. Pour cela, cherchez les lignes

 #location ~ \.php$ {
 # include snippets/fastcgi-php.conf;
 #
 # # With php5-cgi alone:
 # fastcgi_pass 127.0.0.1:9000;
 # # With php5-fpm:
 # fastcgi_pass unix:/var/run/php5-fpm.sock;
 #}

et modifier les afin d’obtenir le résultat suivant :

 location ~ \.php$ {
 include snippets/fastcgi-php.conf;
 fastcgi_pass unix:/var/run/php5-fpm.sock;
 }

Il ne nous reste plus qu’à modifier les droits du dossier « /var/www/html » pour pouvoir gérer nos sites plus facilement. Pour cela, il vous suffit de lancer les commandes suivantes :

 

 sudo chown -R www-data:pi /var/www/html/
 sudo chmod -R 770 /var/www/html/

Enfin, vous allons ajouter un fichier « index.php » pour vérifier que PHP fonctionne. Pour cela, lancez la commande suivante :

 echo "<?php phpinfo(); ?>" > /var/www/html/index.php

Une fois tout ceci fait, vous devez redémarrer Nginx, afin d’appliquer les modifications, toujours avec la commande :

sudo /etc/init.d/nginx restart

Vous n’avez plus qu’à vérifier le bon fonctionnement du serveur, comme précédemment. Vous devriez obtenir une page affichant les informations de PHP.

Erreur 403 forbidden, un classique de Nginx.

Il est possible que vous obteniez une erreur « 403 forbidden ». Cela peux signifier deux choses.

Page d'erreur 403 d'un serveur Nginx

L’erreur 403 est fréquente avec Nginx, mais simple à corriger.

Tout d’abord, cela peut signifier que Nginx ne trouve pas de fichier à afficher, mais contrairement à Apache, il ne va pas lister les fichiers du dossier. Pour tester cela, il vous suffit de créer un fichier index.html dans le répertoire « /var/www », et de re-essayer d’accéder à votre site. Par exemple via la commande :

echo 'Nginx marche !' > /var/www/html/index.html

Si le problème venait bien de là, vous devriez obtenir une page marquée « Nginx marche ! « . À vous maintenant de mettre un fichier d’index qui vous convienne.

En revanche, si cela ne résout pas le problème, alors le problème est probablement que Nginx ne peut accéder au répertoire « /var/www/html ». Dans ce cas, il faut donner le répertoire à « www-data », avec les autorisations suffisantes.

Pour cela, utilisez les deux lignes suivantes :

 chown www-data:www-data /var/www
 chmod 744 /var/www

Conclusion

Voilà, Nginx est installé sur la Raspberry, et votre serveur web Raspbian devrait tourner encore plus vite qu’avant !

Et si ce n’est pas suffisant, vous pouvez par exemple installer un cache php. Nous ferons peut-être un tutoriel dessus dans quelques temps ;).

Et dans tous les cas, vous pouvez toujours allez faire un tour ici, et vous trouverez peut-être de nouvelles idées d’utilisations de votre Raspberry.

Partager
Newsletter
Auteur :
Raspbian France
Rejoignez la communauté Raspberry Pi
Un ordinateur à 35€ déjà vendu à 8 millions d'exemplaires
ACHETEZ LA NOUVELLE RASPBERRY PI 3
Tutoriels en rapport
Installer un media-center avec OSMC sur votre Raspberry Pi ! Bien choisir vos accessoires pour les Raspberry Pi 3 et 2 RaspiSMS 2.0, envoyer des SMS par internet avec la Raspberry Pi Envoyer, gérer et recevoir des SMS avec la Raspberry Pi Faire de la vidéo-surveillance en ligne avec votre Raspberry Pi et sa caméra !
50 commentaires
Besoin d'aide ? Vous la trouverez plus vite sur notre forum.
  1. Maxime dit :

    Merci pour ce tuto très utile !!!
    Je me permet de vous signaler une faute de frappe, le fichier de configuration de Nginx se situe dans « /etc/nginx/sites-available/default » et non pas dans « /etc/nginx/sites-avaible/default ». La commande à exécuter est donc « nano /etc/nginx/sites-available/default ».

    1. Merci de nous avoir signalé le problème, nous corrigeons immédiatement.

  2. PatBriPerso dit :

    Il manque, de mon point de vue, une chose à ce tuto pourtant déjà très fourni : la configuration de phpmyadmin avec nginx.

    En suivant votre tuto sur l’installation de Apache/PHP/MySQL, j’avais également installé phpmyadmin. Mais en installant nginx (et donc en arrêtant apache), phpmyadmin ne répond plus.
    Je suppose qu’il est possible de le reconfigurer avec nginx mais comment procéder ?

    Je vais chercher dans la doc de nginx 😉

    1. PatBriPerso dit :

      J’ai trouvé un exemple de configuration pour phpmyadmin ici :
      http://www.howtoforge.com/running-phpmyadmin-on-nginx-lemp-on-debian-squeeze-ubuntu-11.04

      Je l’ai adapté (en remplaçant les lignes concernant fastcgi) et voilà ce que cela donne :
      location /phpmyadmin {
      root /usr/share/;
      index index.php index.html index.htm;
      location ~ ^/phpmyadmin/(.+\.php)$ {
      try_files $uri =404;
      root /usr/share/;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include fastcgi_params;
      }
      location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
      root /usr/share/;
      }
      }

      J’ai collé ce texte juste après
      location / {

      }

      J’ai enregistré le fichier puis redémarré nginx et phpmyadmin fonctionne (en tout cas je peux me connecter et voir les bases).

      1. Effectivement, nous n’avions pas pensé à PHPMyAdmin, ayant plutôt tendance à employer la ligne de commande MySQL sur le serveur exécutant Nginx.
        Nous ajouterons une partie sur PHPMyAdmin sous peu, avec la configuration que tu donnes, merci à toi.

  3. Arthurius dit :

    Merci pour ce tuto, vraiment très utile. Je viens d’effectuer ma migration de apache à Nginx et le résultat est vraiment FLAGRANT ! Nginx est vraiment beaucoup plus rapide, merci =)

    1. Ravi de t’avoir aidé, si tu as un site, n’hésite pas à mettre un lien pour faire connaitre Raspbian France.

  4. Gorhyan dit :

    Bonjour,
    Tout d’abord bravo pour votre site et ces tutos clairs.

    Je me permet se message car je souhaiterai me monter un serveur de stockage afin de partager des donnés avec mes proches (qui habitent loin). Pour cela j’ai enfin franchis le pas en commandant une belle framboise qui me fais de l’œil depuis pas mal de temps (j’attends avec impatience un B+).

    N’y connaissant rien en serveur, je me posai la question suivante: vos tutos portent sur l’installation d’un serveur web. Est ce que cela fonctionne tout pareil auquel cas j’installe les même logiciels, ou y à t’il des différences?

    Merci d’avance.

    1. Gorhyan dit :

      en fait pas besoin de répondre je me rend comte de l’énorme bêtise de ma question. j’heberge ce que je veux sur le serveur (autant site web que des fichiers)

      1. Pas de problème, la question est loin d’être idiote. Tu peux effectivement monter un serveur web et herbergé tes fichiers dessus, mais tu peux aussi avoir intéret à monter plutôt un serveur ftp.

        Nous n’avons pas encore fait de tutoriels sur le sujet, car nous n’utilisons nous-même que rarement de tels serveurs, cependant nous prendront prochainement le temps de faire un tutoriel dessus.

  5. Gorhyan dit :

    Bonjour, encore moi…

    J’ai bien suivis le tuto, quand je lance une requête depuis la rasp j’obtiens le message « Welcome to nginx! ».
    Par contre si j’essaye « echo ‘Nginx marche !’ > /var/www/index.html » la j’obtient: « aucun fichier ou dossier de ce type ». Que faire?

  6. Gorhyan dit :

    Je continu mon petit monologue de questions reponses, mais j’ais réussis à m’en sortir après de nombreux bidouillage.
    Tout d’abord création du var/www:
    mkdir /var/www
    chown -R www-data:www-data /var/www

    Ensuite dans « /etc/nginx/sites-available/default » j’ai décommenté la ligne server tout en haut, l’écoute sur le port 80, et une ligne qui parle de l’index.html (je ne suis pas sur que tout soit utile, mais aprés de nombreux essais cela marche enfin). Voici ce que cela me donne (je ne tape que les lignes modifiées):

    server {
    listen 80;

    root /var/www;
    index index.php index.html index.htm;

    location / {
    try_files $uri $uri/ /index.html;
    }

    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
    }

  7. JF dit :

    Bonjour,

    Je voulais savoir ce qui vous a emmener à faire un tuto sur Nginx plutôt que lighthttpd ?
    Merci et bonne journée 🙂

    1. Bonjour,
      nous avons choisi Nginx parce-qu’il fait une réelle percée en ce moment, et qu’il est de plus en plus utilisé en entreprise.
      De plus, Nginx semble montrer une stabilité en terme de consommation de ressource et des performances en terme de requêtes par seconde, qui sont légèrement au dessus de celles de Lighthttpd.
      Néanmoins, nous réfléchirons à faire un tutoriel sur Lighthttpd.

  8. Théo Fleury dit :

    Très bon article,

    Cependant un faute c’est glissé dedans :

    « Cependant, Nginx **vos** vraiment le coup, et c’est sans doute un meilleur choix qu’Apache pour un serveur web sur la Raspberry. »

    ** vos = vaut **

    Cdt

    1. Merci, nous avons corrigé.

  9. JPhi dit :

    merci Gorhyan !!
    grâce aux commentaires j’ai pu compléter l’installation ! 😉 🙂

    maintenant je passe à PHPMyAdmin

  10. cybR dit :

    Impeccable pour moi en tout cas, mais je me pose tout de même une question :
    pour accéder a phpinfo(); il me faut entrer ‘http://192.168.x.x/index.php’ ,
    est-ce normal ?

    tuto excellent qui va surement me rendre heureux ….

    1. Salut,
      as-tu bien une ligne fastcgi_index index.php; dans ton fichier de configuration Nginx ?
      Si ce n’est pas le cas, rajoute là et redémarre Nginx.
      Ça devrait permettre d’utiliser la page « index.php » par défaut, et tu n’aurais donc plus qu’à aller sur « http://192.168.x.x/ ».

  11. Epoc dit :

    Hello,

    Vers la fin de l’article, il y a écrit :

    « Et si ce n’est pas suffisant, vous pouvez installer un cache php, **ou encore un php5-fpm**. Nous ferons peut-être un tutoriel dessus dans quelques temps ;). »

    Je pense que c’est une petite coquille 🙂

    1. Salut,
      merci pour l’info, c’est corrigé 🙂
      C’était effectivement une petite erreur de notre part lors de l’écriture du tutoriel.

  12. Qwaser dit :

    J’aurai une question, je compte avoir deux sites web sur mon Raspberry Pi 2, est-il possible de faire tourner le site (ou plutôt la page web) statique sous Nginx et le site dynamique (PHP + Base de donnée) sous Apache ?

    En tout cas merci pour vos tutoriels qui me sont d’une aide précieuse pour apprendre à maîtriser mon Raspberry 🙂

    1. Bonjour,
      oui cela est possible, il faudra cependant que tu définisse les pots d’écoute des deux serveur sur deux ports différents.
      Sinon, tu dois pouvoir y arriver avec des « virtual host ».

      Mais pourquoi souhaite tu mettre un site statique sous Nginx et un autre sous Apache ? Pourquoi ne pas tout mettre sous Nginx ?

      1. Qwaser dit :

        Merci de votre réponse 🙂
        Je demandais cela car j’avais lu qu’Nginx était plus adapté au site statique alors qu’Apache était plus conseillé pour les sites dynamique ^^
        Mais du coup je vais tout passer sur Nginx et ajoutant PHP, MySQL et PHPMyAdmin 😀

        1. Ok, je pense que c’est effectivement la bonne solution.
          Nginx est tout à fait adapté à un site dynamique, seul point noir peut-être, le fait que sa mise en place en terme de configuration soit souvent un petit peu plus complexe.

  13. PAQUELIER dit :

    1° médecin à la recherche d’une sécurité sur certains dossiers médicaux j’avais retrouvé une tour ancienne sur laquelle je me suis installé un »cloud  » (owncloud sous ubuntu)ssh.le ventilateur commence a être à faire beaucoup de bruit après 15 ans de loyaux service.
    j’ai acheté un raspburryPI2 et je comptais transférer mon owncloud auquel je suis habitué (graphisme) à la lecture il semblerait « mieux » de passer à « ngnix ».
    Pourrais-je alimenter mon serveur automatique a partir de mon laptop lorsque je suis aux us autrement dit y a il un  » ngnix client » a charger sur mon laptop?
    Sur le serveur ngnix pourrais-je accueillir comme sous « owncloud  » un autre client (confrère)?

    1. Salut,
      en fait Nginx sert de base à Owncloud. En gros Owncloud viens poser une couche supplémentaire, et c’est lui qui va gérer toute la partie « cloud ».
      Nginx permet juste à ton navigateur internet et au serveur de discuter entre eux.

      Si tu n’es pas très à l’aise avec l’informatique, je te conseil plutôt d’installer Apache que Nginx (un tutoriel est disponible sur notre site), celui-ci étant plus simple à mettre en place et à configurer.

  14. PAQUELIER dit :

    merci je crois avoir compris
    alain

  15. Phil dit :

    Bonjour,
    la version proposée par Raspbian est la 1.2 alors que sur le site de Nginx on présente une 1.8 stable.
    J’ai essayé beaucoup de tutoriels sensés proposer une version plus récente, mais sans succès.
    Auriez-vous une idée ?
    Merci.

    1. Bonjour,
      avec la dernière version de Raspbian, le problème est-il toujours présent ?

  16. numa dit :

    Bonjour,
    Je vous invite à lire ce lien concernant l’activation de php-fpm :
    http://www.pedaldrivenprogramming.com/2015/04/upgrading-wheezy-to-jessie:-nginx-and-php-fpm/

    Pour faire court, si vous obtenez une page blanche lorsque vous tentez d’accéder à votre index.php, il faut modifier votre /etc/nginx/sites-available/default en remplaçant :
    include fastcgi_params
    par :
    include fastcgi.conf

    Personnellement je n’ai pas rencontré le problème sur les wheezy « dist-upgradé » en jessie (debian 7.8) mais j’ai dû faire la modif sur mes Pi natifs en 2015-11-21-raspbian-Jessie (debian 8.0).

  17. Florian Rolland dit :

    Bonsoir,

    En voulant paramétré Nginx pour le php, j’obtiens rien d’identique :
    #location ~ \.php$ {
    # include snippets/fastcgi-php.conf;
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    #}

    Je prend quand même le contenue de celui du tuto ?

    1. Florian Rolland dit :

      Edit: Problème resolue

    2. Salut,
      tu peux nous donner ce que tu as ?

    3. Don Peco dit :

      Bonjour, merci pour le tuto, effectivement!

      Je reviens sur le com de Florian Rolland, je viens de me lancer dans l’aventure, et je n’ai pas du tout le même contenu dans le fichier /etc/nginx/sites-available/default
      Et donc, je voulais savoir également si c’est une histoire de mise à jour, et comment gérer ça. Perso, j’ai des bases en info, mais elles prennent régulièrement la poussière :p Vous me conseillerez Apache aussi?

      Merci

  18. éric dit :

    Bonjour, nouveau avec la raspberry pi 2 j’essai d’installer en local un site sous joomla.
    En suivant votre tuto la dernière version téléchargée de NGINX semble avoir modifié quelque peu le ficher « default » situé dans : /etc/nginx/sites-available (comme le signal plus haut Florian Rolland).

    après avoir « débloqué les droits » pour pouvoir modifier le fichier « default » avec la ligne :
    sudo chown -R pi:www-data /etc/nginx/sites-available

    voici les contenus du fichier « default » :

    a – dans votre tuto vous dites : et cherchez les lignes

    1 root /usr/share/nginx/www;
    2 index index.html index.htm;

    pour les remplacer par les lignes

    1 root /var/www;
    2 index index.html index.htm index.php;

    or voici ce que j’ai dans mon fichier « default » qui ressemble le plus ! :

    1 root /var/www/html;

    2 # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    —-Merci de m’indiquer les modis à faire pour ces 2 lignes—-

    b – par la suite vous dites :
    Nous allons maintenant activer php-fpm pour Nginx.

    et décommentez les lignes nécessaires, afin d’obtenir le résultat suivant :

    voici ce que j’ai :
    #location ~ \.php$ {
    # include snippets/fastcgi-php.conf;
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    #}

    —-Merci de m’indiquer les lignes à décommenter—-

    merci d’avance,
    salsaplus

    1. Salut,
      pour « /var/wwww/html », tu peux laisser comme tel, il faudra donc que tu mettes tes sites dans ce dossier.
      Pour les index, il faut simplement ajouter « index.php » avant le point virgule.

      Pour la partie activation de php, décommente la ligne « location », la ligne en dessous et les deux dernières lignes.

  19. Louis dit :

    Bonjour,
    Merci pour ce super tuto.
    J’ai récupéré un site wordpress auparavant hébergé par ovh et l’ai migré sur mon raspberry avec nginx.
    Celui-ci est bien accessible en local mais pas en distant (j’ai bien configuré le NAT de ma box) : j’obtiens un ‘access denied’ à la racine et une 404 générée par nginx lorsque j’appelle une autre page.
    Je ne trouve pas d’équivalent à mon problème sur internet, et ne comprends pas pourquoi le comportement est différent en local et en distant.

    Merci d’avance pour votre aide

    1. Salut,
      le problème ne viendrait-il pas du fait que tu as installé WordPress depuis ton réseau locale et que l’URL enregistré par WordPress en base de données ne correspond pas à l’URL publique ?

      Il ne devrait pas y avoir de différence entre l’accès local et distant !
      Après, si tu essayes d’appeler une URL noip depuis ton réseau local, tu ne pourras pas y accéder. En revanche, si tu est depuis un réseau externe (smartphone en 3G par exemple), tu devrais y accéder sans problèmes !

  20. admin dit :

    Le premier pour mon blog autohébergé, le second pour tous mes services perso (wallabag, etc etc)
    Justement, je suis en train d’installer un etherpad. Celui-ci fonctionne correctement sous 192.168.x.x:9001
    Je ne veux pas rediriger le port 9001 de ma box vers mon RPI et je souhaite donc rediriger les requêtes du port 80 vers un « sous-dossier » vers la bonne adressr sur le port différent. En théorie, ça me semble très facile à lire les doc que je trouve sur le net mais… j’y arrive pas !

    Suivi un tuto assez simple sur le net, j’ai créé dans /etc/nginx/conf.d/proxy.conf contenant :

    proxy_redirect off; (pourquoi off?!?)
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 10m;
    client_body_buffer_size 128k;
    client_header_buffer_size 64k;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 16k;
    proxy_buffers 32 16k;
    proxy_busy_buffers_size 64k;

    Et dans le fichier /etc/nginx/sites-available/monsite (j’ai ajouté le premier « location », le reste fonctionnait nickel avant cet essai, et continue d’ailleurs, pour mes autres services qui sont tous hébergés dans un sous-répertoire, donc simple)

    server {
    listen 80;
    server_name www.monsite.net monsite.net;
    root /var/www/html;
    index index index.php index.html index.htm;
    if (!-e $request_filename) {
    rewrite ^/(.+)$ /index.php?url=$1 last;
    break;
    }

    location = /pad { // <– j'ai aussi essayé : location = pad {
    proxy_pass http://127.0.0.1:9001;
    }

    location ~ .php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include /etc/nginx/fastcgi.conf;
    }

    }

    Il doit y avoir un truc tout con que je ne pige pas…

    Une idée? Merci beaucoup d'avance !

    1. Salut,
      nous n’avons jamais eu l’occasion d’essayer ce cas, quelqu’un à une idée ?

  21. EvergreenGOD dit :

    Bonjour à tous!

    J’ai un problème lorsque je fais la commande sudo /etc/init.d/nginx restart..
    La console m’affiche :
    [….] estarting nginx (via systemctl) : nginx.serviceJob for nginx.service failed. See ‘systemctl status nginx.service’ and ‘journalctl -xn’ for details.
    failed!

    J’ai donc exécuté ces deux lignes de commandes.

    ‘systemctl status nginx.service’ me donne (le point devant nginx.service est rouge) :
    • nginx.service – A high performance web server and a reverse proxy server
    Loaded ; loaded (/lib/systemd/nginx.service; enabled)
    Active : failed (Result: exit-code) since dim. 2016-04-24 12:38:56 UTC; 28s ago
    Process: 1815 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1 / FAILURE)

    ‘journalctl -xn’ quant à lui me donne :
    Nor journal files were found

    Est-ce que vous connaissez ce problème? Si oui, comment le résoudre svp?
    En attendant, je réactive Apache2 😉

    1. EvergreenGOD dit :

      J’ai réinitialisé mon Raspberry et réinstallé NGinx sans passer par Apache au préalable, aucun problème ce coup-ci.
      J’avais dû faire une erreur lors de l’installation au premier essai 😉

      Merci pour vos tutos, ils sont carrément plus que pratique

    2. Désolé, mais là pour le coup les logs ne sont pas très parlants :/
      Nous ne pouvons pas trop t’aider, il va falloir que tu trouves tout seul, sorry !

  22. Marco dit :

    Help !
    Bonjour,
    Après avoir passé l’étape de la modification suivante :

    #location ~ \.php$ {
    # include snippets/fastcgi-php.conf;
    #
    # # With php5-cgi alone:
    # fastcgi_pass 127.0.0.1:9000;
    # # With php5-fpm:
    # fastcgi_pass unix:/var/run/php5-fpm.sock;
    #}

    En

    location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    }

    Impossible de sauvegarder les modifications (il semblerait que le fichier soit en lecture seule) … Que dois-je faire pour pouvoir sauvegarder les modifications faites et ainsi passer à l’étape suivante (qui est de taper les commandes sudo chown -R www-data:pi /var/www/html/
    sudo chmod -R 770 /var/www/html/) ?!

    Merci d’avance pour votre aide !!!

    1. Bonjour,
      Tu dois simplement avoir les droits root pour effectuer cette opération. Pour cela lance la commande :
      nano /etc/nginx/sites-available/default

      1. Julien Vankrinkelen dit :

        Bonjour ! tout d’abord j’adore ce que vous faites, merci pour ce superbe tuto, mais je suis dans la même situation que Marco: après avoir remplacer les quelques lignes par les autres, c’est à dire celles-là:
        -location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        }
        -index index.html index.htm index.php;
        je ne sais pas comment les enregistrer et ainsi même quitter cette fenêtre, pourtant j’ai bien rentré cette ligne:
        nano /etc/nginx/sites-available/default
        (je suis débutant en raspberry, je ne m’y connais pas du tout). Donc si vous pouviez m’indiquer comment enregistrer puis quitter cette fenêtre pour rentrer les lignes de codes suivantes du tutoriel, je vous remercie d’avance.

        1. Bonjour,
          Pour enregistrer un fichier avec nano, c’est « ctrl gauche + O », nano va te demander le nom du fichier, presse entrer pour le valider
          Et pour quitter le fichier, c’est « ctrl + X ». : )
          Bonne continuation,
          RF

Partager
Inscription à la Newsletter
Inscrivez-vous à la Newsletter.
Vous avez aimé cet article ?
Inscrivez-vous et restez informé !