You are on page 1of 9

ant ho nyle go f f .

co m

http://antho nylego ff.co m/2013/10/11/beginner-server-debian-nginx-php5-fpm/

Debian 7 Nginx php5-fpm MariaDB phpmyadmin


Antho ny Le Go ff

Posted on oct 11, 2013 by in InternetTech | 0 comments Partager la publication "Debian 7 Nginx php5-f pm MariaDB phpmyadmin" Facebook Twitter Google+ Viadeo LinkedIn E-mail HOWT O : Open Source Server Debian Wheezy Nginx+php5-fpm+MariaDB+phpmyadmin

Ce lancer dans la cration dun serveur web et par ou commencer ? Le traditionnel LAMP (Linux +Apache+MySql+Php) a de moins en moins la cte et plusieurs succs story du web comme Facebook ont dmarrer sous Nginx rput pour tre bien plus rapide sur les requtes HT T P. Un nouveau tournant est galement apparut avec les systmes de bases de donnes et le f ork de mySql MariaDB en Open Source qui est en train de prendre des parts de marchs. Wikipdia f in 2012 a migr sur MariaDB. Dans la jungle des of f res de serveurs, il nest pas toujours galement vident de trouver un bon rapport qualit/prix et de perf ormance de lhbergeur. Lun des hbergeurs f rancophones le plus rentable pour dmarrer ayant un service aprs vente de qualit et rapide est Be1host. La premire of f re de VPS propose 1 cur (1x 3.0ghz) 512Mo de mmoire et 75Go en Disque dur pour 4,99/mois avec la possibilit dinstaller le serveur sur dif f rentes distribution Linux. Lien vers lhbergeur Egalement pour ce lancer dans lauto-hbergement et apprendre linf ormatique avec un serveur de poche 33 : Raspberry Pi Obtenir un Raspberry Pi

Ce tutorial permet dacquerir des bases dans la cration de serveur avec comme points abords: Connexion console SSH Installation de Nginx Installation de php5 f pm dialoguant avec le serveur http Installation et paramtrage de MariaDB comme gestion de base de donne Utilisation de linterf ace phpmyadmin pour lutilisation en graphique de MariaDB Utilisation de Filezilla pour du transf ert SFT P vers le serveur Transf ert de KrISS Feed pour tester le serveur Connexion console SSH Aprs cration du serveur, mise en place de la distribution voici venu le temps de la premire connexion via SSH distance (Secure Shell) comme protocole de communication scuris. Sous Linux Desktop, la dmarche est simple en ouvrant un terminal. Sous Windows il est ncessaire dutiliser un client comme Putty. Les dmarches sont ici f f ectu sous un desktop linux et via ladresse IP en local 192.168.122.105

1 2

Linux@t erminal:~$ sudo ssh 192.168.122.105

1 2

ECDSA key ngerprint is XXX Are you sure you want t o cont inue connect ing (yes/no)? yes

Ouverture de la console du serveur distant

1 2 3 4 5 6 7 8 9

root @192.168.122.105's password: Linux server1 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1+deb7u1 x86_64 The programs included wit h t he Debian GNU/Linux syst em are free soft ware; t he exact dist ribut ion t erms for each program are described in t he individual les in /usr/share/doc/*/copyright . Debian GNU/Linux comes wit h ABSOLUTELY NO WARRANTY, t o t he ext ent permit t ed by applicable law.

Changement du mot de passe root

passwd

Vrif ication du nom du serveur

1 2 3

root @192.168.122.105: host name -f server1.example.com

Mise jours du serveur

1 2

apt -get updat e apt -get upgrade

Reconf iguration du langage si ncessaire f r_FR.UT F-8 UT F-8

1 2 3

dpkg-recongure locales Locales: 212 1. default

Installation de lditeur de texte nano

apt -get inst all nano

Ajout dun utilisateur user avec des droits super-admin en sudo

1 2

adduser user visudo

Ajout de user dans visudo

user ALL=(ALL:ALL) ALL

Scurisation du serveur SSH

nano /et c/ssh/sshd_cong

Changement dans le f ichier de conf iguration SSH du port et dinterdiction de connexion distance en root

1 2 3

# What port s, IPs and prot ocols we list en for Port 36449 Permit Root Login no

Redmarrage du service SSH

1 2 3 4

root @192.168.122.105:~# service ssh rest art [ ok ] Rest art ing OpenBSD Secure Shell server: sshd. Ouvrir un nouveau t erminal et t ent la nouvelle connexion ssh -p @ avec l'ut ilisat eur crer auparavant

Installation de Nginx HT T P serveur Nouvelle commande SSH daccs au serveur distant avec le port et user

sudo ssh -p 36449 user@192.168.122.105

Repasser en root sur le serveur :

su

Mise jours de la liste des paquets et des sources logiciels pour Nginx et PHP5

nano /et c/apt /sources.list

Ajout des sources Dotdeb dans le sources.list :

1 2 3 4

deb ht t p://packages.dot deb.org wheezy all deb-src ht t p://packages.dot deb.org wheezy all deb ht t p://packages.dot deb.org wheezy-php55 all deb-src ht t p://packages.dot deb.org wheezy-php55 all

Quitter et sauvegarder,puis ajout de la cl dauthentif ication

wget ht t p://www.dot deb.org/dot deb.gpg

1 2 3 4 5 6 7 8 9 10

--2013-10-09 16:16:38-- ht t p://www.dot deb.org/dot deb.gpg Rsolut ion de www.dot deb.org (www.dot deb.org)... 88.190.17.153 Connexion vers www.dot deb.org (www.dot deb.org)|88.190.17.153|:80...connect . requt e HTTP t ransmise, en at t ent e de la rponse...200 OK Longueur: 5299 (5,2K) [applicat ion/oct et -st ream] Sauvegarde en : dot deb.gpg 100%[======================================&gt ;] 5 299 0,006s 2013-10-09 16:16:38 (849 KB/s) - dot deb.gpg sauvegard [5299/5299] --.-K/s ds

cat dot deb.gpg | apt -key add -

Mise jours des dpots

apt -get updat e

Installation dun f irewall serveur et dun logiciel de bannissement dIP (conf iguration non traite)

apt -get inst all ipt ables fail2ban

Mise jours heure du serveur ntp, synchronisation en France de lheure serveur

apt -get inst all nt pdat e nt p

Edition du f ichier de conf iguration ntp

nano /et c/nt p.conf

1 2 3 4

server 0.fr.pool.nt p.org server 1.fr.pool.net p.org server 0.europe.pool.nt p.org server nt p2.jussieu.fr

Redemarrage du service et vrif ication que le service est actif

1 2

service nt p rest art nt pq -p

Netoyage du serveur pour linstallation du serveur HT T P Nginx. Les serveurs sont livr prconf igur sous Apache rentrant en conf lit avec celui-ci. Netoyage du serveur DNS, Samba et mail.

apt -get purge sendmail* apache2* bind9 samba xinet d

Installation de Nginx, php5 et les dpendances

apt -get inst all nginx php5 php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-int l php5mysql unzip bzr

1 2 3

Fin de l'inst allat ion indiquant le redmarrage de php5-FPM Trait ement des act ions dires ( t riggers ) pour php5-fpm ... [ ok ] Rest art ing PHP5 Fast CGI Process Manager: php5-fpm.

Demarrage de Nginx

service nginx st art

[ ok ] St art ing nginx: nginx.

Vrif ication de linstallation dans le navigateur (eg: IP du serveur ou hostname) [Show slideshow] Installation de php5 fpm dialoguant avec le serveur http Modif ication php.ini contre un exploit 0day Nginx + f astcgi PHP

nano /et c/php5/fpm/php.ini

1 2 3 4 5

; t o use SCRIPT_FILENAME rat her t han PATH_TRANSLATED. ; ht t p://php.net /cgi.x-pat hinfo cgi.x_pat hinfo=0

Cration des dossiers racines du web serveurs

mkdir -p /usr/share/nginx/www/example.com/ /usr/share/nginx/www/logs/example.com/

Chroot du dossier pour Nginx avec lutilisateur www-data (Utilisateur par df ault de Nginx)

chown -R www-dat a:www-dat a /usr/share/nginx/www/example.com/

Ajout dun mot de passe pour lutilisateur www-data

passwd www-dat a

Positionnement dans le dossier de travail sites-available de Nginx

cd /et c/nginx/sit es-available

Copie et cration du f ichier site.domain.com partir de def ault

cp default sit e.domain.com

Vrif ication des modif ications

1 2

root @192.168.122.105:/et c/nginx/sit es-available# ls default sit e.domain.com

Edition de site.domain.com f ichier de conf iguration du serveur, dialogue avec php-f pm

nano sit e.domain.com

Vider le f ichier de conf iguration, ajout:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

server { list en 80; ## list en for ipv4; t his line is default and implied list en [::]:80 default _server ipv6only=on; ## list en for ipv6 server_name example.com www.example.com (ou IP pour t est ); access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; root /usr/share/nginx/www/example.com; index index.php index.ht ml index.ht m; locat ion / { t ry_les $uri $uri/ /index.php?$args; } locat ion ~ \.php$ { fast cgi_split _pat h_info ^(.+\.php)(/.+)$; t ry_les $uri =404; include fast cgi_params; fast cgi_pass unix:/var/run/php5-fpm.sock; } }

Cration du lien symbolique pour activer le web serveur

ln -s /et c/nginx/sit es-available/sit e.domain.com /et c/nginx/sit es-enabled/

Supprimer dans /sites-enabled def ault

1 2

cd /et c/nginx/sit es-enabled rm default

Vrif ication de lopration

1 2

root @192.168.122.105:/et c/nginx/sit es-enabled# ls sit e.domain.com

Cration des Liens symboliques pour les f ichiers logs :

1 2

ln -s /var/log/nginx/example.com.access.log /usr/share/nginx/www/logs/example.com/access.log ln -s /var/log/nginx/example.com.error.log /usr/share/nginx/www/logs/example.com/error.log

Redmarrage de Nginx

1 2

root @192.168.122.105:/et c/nginx/sit es-enabled# service nginx reload [ ok ] Reloading nginx congurat ion: nginx.

1 2 3

root @192.168.122.105:/et c/nginx/sit es-enabled# nginx -t nginx: t he congurat ion le /et c/nginx/nginx.conf synt ax is ok nginx: congurat ion le /et c/nginx/nginx.conf t est is successful

installation dun f ichier inf o.php pour tester les modules php f onctionnels

nano /usr/share/nginx/www/example.com/info.php

Sauvegarder et quitter

<!--?php phpinfo(); ?-->

Test dans la conf iguration sur le navigateur et vrif ication du module mysql pour MariaDB [Show slideshow] Installation et paramtrage de MariaDB comme gestion de base de donne edition des sources logiciels de /etc/apt/sources.list

nano /et c/apt /sources.list

1 2

deb <a href="ht t p://mariadb.mirror.nucleus.be//repo/10.0/debian">ht t p://mariadb.mirror.nucleus.be//repo/10.0/debian</a> wheezy main deb-src <a href="ht t p://mariadb.mirror.nucleus.be//repo/10.0/debian">ht t p://mariadb.mirror.nucleus.be//repo/10.0/debian</a> wheezy main

apt -get updat e

Installation des paquets MariaDB client et serveur

apt -get inst all mariadb-server mariadb-client

vrif ication de linstallation de MariaDB :

1 2

root @192.168.122.105:/# mysql -V mysql Ver 15.1 Dist rib 10.0.4-MariaDB, for debian-linux-gnu (x86_64) using readline 5.1

Redmarrage du serveur

root @192.168.122.105:/# reboot

Utilisation de linterface phpmyadmin pour lutilisation en graphique de MariaDB

apt -get inst all phpmyadmin

Conf iguration de phpmyadmin durant linstallation 1. Choisir un mot de passe 2. Ne rien cocher dans le choix de serveur par df ault , ENT RER

Edition de site.domain.com dans /etc/nginx/sites-available et ajout de phpmyadmin

1 2 3 4 5 6 7 8 9 10 11 12 13 14

locat ion /phpmyadmin { root /usr/share/; index index.php index.ht ml index.ht m; locat ion ~ ^/phpmyadmin/(.+\.php)$ { t ry_les $uri =404; root /usr/share/; fast cgi_split _pat h_info ^(.+\.php)(/.+)$; include fast cgi_params; fast cgi_pass unix:/var/run/php5-fpm.sock; fast cgi_index index.php; } locat ion ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|ht ml|xml|t xt ))$ { root /usr/share/; }

Redmarrage de Nginx

1 2

root @192.168.122.105:/et c/nginx/sit es-enabled# service nginx reload [ ok ] Reloading nginx congurat ion: nginx.

1 2 3

root @192.168.122.105:/et c/nginx/sit es-enabled# nginx -t nginx: t he congurat ion le /et c/nginx/nginx.conf synt ax is ok nginx: congurat ion le /et c/nginx/nginx.conf t est is successful

Accs phpmyadmin sur le navigateur via http://IPduServeur/phpmyadmin [Show slideshow] 1. Root Login

2. Aller dans privilges et crer un nouvelle utilisateur 3. Crer une base de donne avec lutilisateur / Cocher tous les privilges > Excuter Base de donne prte lemploi Utilisation de Filezilla pour du transfert SFT P vers le serveur Filezilla permet denvoyer avec une interf ace graphique des f ichiers sur un serveur et galement de grer les rgles daccs aux f ichiers / dossiers. Il utilise le protocole FT P et galement SSH+FT P = SFT P utilisant une meilleure scurit que le port FT P classique et non chif f r. Pour installer Filezilla sous Linux, le logiciel est disponible dans les dpts. Pour Windows ou Mac OS il est ncessaire de le tlcharger ici Conf iguration de Filezilla pour communiquer avec le serveur dans le f ichier racine / appartenant lutilisateur www-data [Show slideshow] Dossier de travail du rpertoire racine / du serveur /usr/share/nginx/www/example.com Transfert de KrISS Feed pour tester le serveur Maintenant que le serveur est en place, un test avec linstallation de KrISS Feed en local dans le dossier racine / du web serveur Nginx. Tranf ert du f ichier via Filezilla dans le dossier de travail du serveur. Pour rcuprer le f ichier index.php transf rer suivre le lien. Pour plus dinf ormation sur lutilisation de KrISS Feed direction le GitHub T lcharger index.php Il reste plus qua entrer dans son navigateur ladresse IP du serveur ou le hostname af f ichant lcran de cration dutilisateur de KrISS Feed. Pour aller plus loin et linstallation de CMS open source (Systme de gestion de contenu) et crer un site web avec WordPress, Joomla ou Drupal Egalement un site de tutoriaux sous linux: HowToForge Article publication by Anthony Le Gof f is licensed under a Creative Commons AttributionNonCommercial-ShareAlike 3.0 Unported License. Anthony Le Gof f est le f ondateur dAlpharatz Consulting en tant que consultant, conseil en Stratgie, veille et innovation, prestation intellectuelle dans la haute technologie, recherche & dveloppement, cyberdf ense. Linux User, Technologies addict. Auditeur ANAJ-IHEDN. Parf ois port par la Science. Edit this page

You might also like