Installation d’un serveur Nginx + PHP5 (PHP-FPM) + MySql + PureFTPD sous Ubuntu 14.04
Serveur : Gandi
Localisation : Paris, France
Coeurs CPU: 4
RAM : 4096 Mo
Interface : 1 x IPv4
Disque : 1
Disque système : 10 Go
Système d’exploitation : Ubuntu 14.04 64 bits LTS (HVM)
I) Configuration du serveur :
1) Connexion au serveur :
[~] ➔ [~] ➔ ssh admin@217.70.190.39 ... admin@server01:~$ su Password: root@server01:/home/admin# cd root@server01:~#
2) Mise-à-jour :
root@server01:~# apt-get update && apt-get upgrade
II) Installation de MySql :
1) Installation :
root@server01:~# apt-get install mysql-server mysql-client New password for the MySQL "root" user: mot2passe Repeat password for the MySQL "root" user: mot2passe
III) Installation du serveur Nginx :
1) Installation de Nginx :
root@server01:~# apt-get install nginx
2) Démarrer Nginx :
root@server01:~# service nginx start root@server01:~# ps -aux |grep nginx root 15742 0.0 0.0 85884 1340 ? Ss 19:29 0:00 nginx: master process /usr/sbin/nginx www-data 15743 0.0 0.0 86224 1768 ? S 19:29 0:00 nginx: worker process www-data 15744 0.0 0.0 86224 1768 ? S 19:29 0:00 nginx: worker process www-data 15745 0.0 0.0 86224 1768 ? S 19:29 0:00 nginx: worker process www-data 15746 0.0 0.0 86224 1768 ? S 19:29 0:00 nginx: worker process root 15767 0.0 0.0 8860 624 pts/1 S+ 19:30 0:00 grep --color=auto nginx
3) Test : http://217.70.190.39/
Page d’accueil de Nginx :
Welcome to nginx!
4) Installation de PHP5 avec PHP-FPM :
root@server01:~# apt-get install php5-fpm
5) Installation des modules PHP5 :
root@server01:~# apt-get install php5-mysql php-apc php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-sqlite php5-xmlrpc php5-xsl
6) Installation de PhpMyAdmin :
root@server01:~# apt-get install phpmyadmin
Ne pas configurer le serveur Apache et Lighttpd
7) Configuration de Nginx pour PhpMyAdmin :
Ouvrir :
/etc/nginx/sites-available/default
Chercher :
server { ... location / { ... }
Ajouter après :
location /phpmyadmin { root /usr/share/; index index.php index.html index.htm; location ~ ^/phpmyadmin/(.+\.php)$ { try_files $uri =404; root /usr/share/; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /etc/nginx/fastcgi_params; } location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; } }
Action :
service nginx reload
Test :
http://217.70.190.39/phpmyadmin/
8) Configuration :
Ouvrir:
/etc/nginx/sites-available/default
Chercher :
index index.html index.htm;
Remplacer par :
index index.php index.html index.htm;
Chercher :
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # fastcgi_split_path_info ^(.+\.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #}
Remplacer par :
location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
Chercher :
# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}
Remplacer par :
# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; }
Action :
service nginx reload
Ouvrir :
/etc/php5/fpm/php.ini
Chercher :
;cgi.fix_pathinfo=1
Remplacer par :
cgi.fix_pathinfo=0
Action :
service php5-fpm reload
9) Vérification :
Ouvrir
/usr/share/nginx/html/info.php
Ajouter :
Action :
http://217.70.190.39/info.php
IV) Installation de PureFTP Mysql :
1) Installation :
root@server01:~# apt-get install pure-ftpd-mysql
2) Configuration de l’utilisateur ‘ftpuser’ :
root@server01:~# groupadd -g 2001 ftpgroup root@server01:~# useradd -u 2001 -s /bin/false -d /bin/null -c "PureFTPd user" -g ftpgroup ftpuser
3) Configuration de la base de données :
root@server01:~# mysql -u root -p Enter password: ... mysql> CREATE DATABASE pureftpd; ... mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'mot2passe'; ... mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass'; ... mysql> FLUSH PRIVILEGES; ...
4) Configuration de la table pureftpd :
mysql> USE pureftpd; Database changed mysql> CREATE TABLE ftpd( User varchar( 16 ) NOT NULL default '', STATUS enum( '0', '1' ) NOT NULL default '0', PASSWORD varchar( 64 ) NOT NULL default '', Uid varchar( 11 ) NOT NULL default '-1', Gid varchar( 11 ) NOT NULL default '-1', Dir varchar( 128 ) NOT NULL default '', ULBandwidth smallint( 5 ) NOT NULL default '0', DLBandwidth smallint( 5 ) NOT NULL default '0', COMMENT tinytext NOT NULL , ipaccess varchar( 15 ) NOT NULL default '*', QuotaSize smallint( 5 ) NOT NULL default '0', QuotaFiles int( 11 ) NOT NULL default 0, PRIMARY KEY ( User ) , UNIQUE KEY User( User ) ) ENGINE = MYISAM mysql> QUIT;
5) Configuration :
– Sauvegarde :
root@server01:~# cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
– Configuration :
Ouvrir :
/etc/pure-ftpd/db/mysql.conf
Effacer tout.
Remplace par :
MYSQLSocket /var/run/mysqld/mysqld.sock #MYSQLServer localhost #MYSQLPort 3306 MYSQLUser pureftpd MYSQLPassword mot2passe MYSQLDatabase pureftpd MYSQLCrypt md5 MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
– Configuration des fichiers :
root@server01:~# echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone root@server01:~# echo "yes" > /etc/pure-ftpd/conf/CreateHomeDir root@server01:~# echo "yes" > /etc/pure-ftpd/conf/DontResolve
– Lancement de :
root@server01:~# service pure-ftpd-mysql restart
X) Liens :
http://www.smartrock.fr/blog/installation-de-serveur-web-avec-nginx-php5-mysql-ftp-sur-serveur-dedie/
https://www.howtoforge.com/installing-nginx-with-php5-fpm-and-mysql-on-ubuntu-14.04-lts-lemp
Comments are closed, but trackbacks and pingbacks are open.