Installer Nginx Raspbian, et accélérez votre serveur web Raspberry
CommentairesCela 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.
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 apt install nginx php-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 :
sudo 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/php/php7.0-fpm.sock; #}
et modifier les afin d’obtenir le résultat suivant :
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-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, nous 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 peut signifier deux choses.
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.
Bonjour,
Et merci pour tous ces tutos… précieux !!
J’aimerai toutefois savoir comment procéder pour faire en sorte que les fichiers d’un site se retrouvent sur une clé usb, pour plus tard utiliser un disque dur externe en usb (Papa Noël si tu m’entends…) ?
Et idem pour les bases de donnée.
Merciiiiii
Salut,
pour ça il faut que tu crée un dossier sur ton disque et que tu donnes les droits de lecture et probablement écriture à l’utilisateur ou au groupe
www-data
(c’est celui utilisé par Nginx), et que tu modifies les fichiers de conf pour remplacer la partie/var/www/html
par le chemin du dossier contenant tes fichiers sur ton disque.À ce moment je te conseils aussi de modifier la table de partition
/etc/fstab
pour monter automatiquement ton disque dur.Tu peux aussi créer le dossier sur ton disque, et monter directement le disque dans le dossier
/var/www/html
, comme ça pas besoin de modifier la conf !Si tu as du mal je te conseils de demander de l’aide sur le forum.
Do you mind if I quote a few of your articles as long as I provide credit and sources back to your webpage? My blog site is in the very same niche as yours and my users would definitely benefit from some of the information you provide here. Please let me know if this alright with you. Thank you!
Hello, absolutly no problem, if you can make a link to our website we would appreciate that 🙂
Bonjour,
Merci pour le tuto. Juste 2 soucis rencontrés :
1) sudo aptitude install nginx php5-fpm au lieu de sudo aptitude install nginx php-fpm
2) sudo nano /etc/nginx/sites-available/default au lieu de nano /etc/nginx/sites-available/default
Sinon parfait j’ai pu enchainer après avec https://raspberry-pi.fr/monitoring-raspberry-pi/
Salut, on met ça à jour, merci du retour.
merci pour ce tuto il m’a beaucoup aidé
Bonjour !
D’abord, je me joins aux nombreux commentaires de félicitations : continuez ainsi !
Je bloque cependant sur ma config que j’ai mise en place à partir de ce tuto, mais en choisissant d’utiliser des versions plus récentes : nginx 10.2 et php7.0 qui semble offrir des résultats plus rapides.
Alors que php7 semble bien installé (j’ai bien une réponse à la commande « php –version ») et nginx également (j’arrive bien à afficher les fichiers html, notamment le « Welcome to nginx on Debian! »), le fichier index.php me renvoie l’erreur « File not Found. »
Mon fichier default :
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm;
server_name _;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
# # With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
}
}
J’ai déjà bidouillé pas mal le fichier default de nginx, sans succès.
Y aurait-il une étape qui m’aurait échappée ?
Merci d’avance !
Bonjour
Pour ma part j’utilise un site en local sous mon Raspberry pi 2 avec le serveur nginx. J’ai constaté qu’après avoir mise a jour Raspbian pour pouvoir utiliser sur un Raspberry pi 3, mon site n’est plus accessible et j’ai une erreur « 502 Bad Gateway Nginx 1.2.1 »
Quelqu’un a une astuce sur la marche a suivre
Merci d’avance.
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 !!!
Bonjour,
Tu dois simplement avoir les droits root pour effectuer cette opération. Pour cela lance la commande :
nano /etc/nginx/sites-available/default
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.
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
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 😉
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
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 !
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 !
Salut,
nous n’avons jamais eu l’occasion d’essayer ce cas, quelqu’un à une idée ?
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
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 !
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
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.
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 ?
Edit: Problème resolue
Ok, super !
Salut,
tu peux nous donner ce que tu as ?
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
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).
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.
Bonjour,
avec la dernière version de Raspbian, le problème est-il toujours présent ?
merci je crois avoir compris
alain
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)?
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.
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 🙂
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 ?
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 😀
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.
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 🙂
Salut,
merci pour l’info, c’est corrigé 🙂
C’était effectivement une petite erreur de notre part lors de l’écriture du tutoriel.
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 ….
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/ ».
merci Gorhyan !!
grâce aux commentaires j’ai pu compléter l’installation ! 😉 🙂
maintenant je passe à PHPMyAdmin
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
Merci, nous avons corrigé.
Bonjour,
Je voulais savoir ce qui vous a emmener à faire un tuto sur Nginx plutôt que lighthttpd ?
Merci et bonne journée 🙂
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.
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;
}
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?
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.
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)
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.
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 =)
Ravi de t’avoir aidé, si tu as un site, n’hésite pas à mettre un lien pour faire connaitre Raspbian France.
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 😉
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).
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.
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 ».
Merci de nous avoir signalé le problème, nous corrigeons immédiatement.