Installer Debian Server – Stretch (Debian 9) – (Nginx, Php-fpm, Mariadb & Phpmyadmin)

 Installer Debian  9 (Stretch – Debian Server)

    • Debian 9 Stretch : Install source
    • /etc/apt/sources.list (Ajouter les backports)
# deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main 
#deb cdrom:[Debian GNU/Linux 9.2.1 _Stretch_ - Official amd64 NETINST 20171013-13:07]/ stretch main 
 
deb http://ftp.fr.debian.org/debian/ stretch main contrib non-free 
deb-src http://ftp.fr.debian.org/debian/ stretch main 
 
deb http://security.debian.org/debian-security stretch/updates main 
deb-src http://security.debian.org/debian-security stretch/updates main 
 
# stretch-updates, previously known as 'volatile' 
deb http://ftp.fr.debian.org/debian/ stretch-updates main 
deb-src http://ftp.fr.debian.org/debian/ stretch-updates main 
 
# backports 
deb http://ftp.debian.org/debian stretch-backports main contrib non-free
    • Configure Proxy Clients : Debian source
1) root@client:~# nano /etc/profile
MY_PROXY_URL="http://proxy._____.fr:3128/"
HTTP_PROXY=$MY_PROXY_URL
HTTPS_PROXY=$MY_PROXY_URL
FTP_PROXY=$MY_PROXY_URL
http_proxy=$MY_PROXY_URL
https_proxy=$MY_PROXY_URL
ftp_proxy=$MY_PROXY_URL
export HTTP_PROXY HTTPS_PROXY FTP_PROXY http_proxy https_proxy ftp_proxy
2) root@client:~# source /etc/profile

3) root@client:~# nano /etc/apt/apt.conf
Acquire::http::proxy "http://proxy._____.fr:3128/";
Acquire::https::proxy "https://proxy._____.fr:3128/";
Acquire::ftp::proxy "ftp://proxy._____.fr:3128/";

4) root@client:~# nano /etc/wgetrc
http_proxy = http://proxy._____.fr:3128/
https_proxy = http://proxy._____.fr:3128/
ftp_proxy = http://proxy._____.fr:3128/ 
    • Instaler les mises à jour et les backports
root@client:~# apt-get update && apt-get -y dist-upgrade 
root@client:~# apt list --upgradable 
root@client:~# apt-get -t stretch-backports update && apt-get -y -t stretch-backports dist-upgrade 
root@client:~# apt-get -y autoremove && apt-get -y autoclean
    • Instaler les build-essential et linux-headers
root@client:~# apt-get install -y build-essential 
root@client:~# uname -a
Linux debian 4.9.0-4-amd64 #1 SMP Debian 4.9.51-1 (2017-09-28) x86_64 GNU/Linux
root@client:~# apt-cache search linux-headers
root@client:~# apt-get install -y linux-headers-4.9.0.4-all-amd64
    • Instaler ntp ntpdate
root@client:~# apt-get install -y ntp ntpdate
root@client:~# nano -c /etc/ntp.conf
 
# ligne 20 : Commentez ces lignes la 
pool 0.debian.pool.ntp.org iburst
pool 1.debian.pool.ntp.org iburst
pool 2.debian.pool.ntp.org iburst
pool 3.debian.pool.ntp.org iburst 
 
# ligne 50 : decommenter/modifier ou ajouter cette ligne
restrict 10.0.0.0 mask 255.255.255.0 nomodify notrap 
 
root@client:~# systemctl restart ntp 
root@client:~# ntpq -p 
  
root@client:~# ntpdate -u ntp
root@client:~# hwclock 
root@client:~# hwclock -w
root@client:~# date
  • Installer htop & screenfetch

Installer Nginx :

root@client:~# apt-get install -y nginx
root@client:~# nginx -v
nginx version: nginx/1.10.3
root@client:~# systemctl start nginx.service 
root@client:~# systemctl enable nginx.service 
root@client:~# systemctl status nginx.service 
root@client:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Installer Php-fpm :

root@client:~# apt-get install -y php-fpm
root@client:~# php -v 
PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.0.19-1,
copyright (c) 1999-2017, by Zend Technologies
root@client:~# systemctl enable php7.0-fpm.service 
root@client:~# systemctl status php7.0-fpm.service 
 
root@client:~# nano -c /etc/php/7.0/fpm/php.ini 
#ligne 924 : Décommenter et modifier la valeur de date.timezone 
date.timezone = "Europe/Paris" 
 
# Des choses importantes à installer par la suites 
# root@client:~# apt-get install nginx mariadb-server mariadb-client php7.0-fpm php7.0-curl php7.0-gd php7.0-mysql
php7.0-cli php7.0-imap php7.0-ldap php7.0-apcu php7.0-xmlrpc php7.0-mbstring php7.0-xml php7.0-xml libfcgi0ldbl 
# root@client:~# apt-get install nginx mariadb-server mariadb-client php-fpm php-mysql libfcgi0ldbl 

Interaction Nginx / Php-fpm : [source]

root@client:~# nano -c /etc/php/7.0/fpm/php.ini 
#ligne 924 : Décommenter et modifier la valeur de date.timezone 
date.timezone = "Europe/Paris" 
root@client:~# systemctl restart nginx.service 
 
root@client:~# nano -c /etc/php/7.0/fpm/pool.d/www.conf 
#ligne 36 : remplacer la ligne 
listen = /run/php/php7.0-fpm.sock 
listen = 127.0.0.1:9000 
root@client:~# systemctl restart php7.0-fpm.service 
 
root@client:~# nano /etc/nginx/sites-available/default 
# Ajouter index.php dans la ligne 
index index.php index.html index.htm index.nginx-debian.html;
 
# declarer dans server ceci : 
 # pass PHP scripts to FastCGI server
 # 
 location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
 } 
  
à la place de ceci : 
 # pass PHP scripts to FastCGI server
 #
 location ~ \.php$ {
   include snippets/fastcgi-php.conf;
 #
 # With php-fpm (or other unix sockets):
 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
 # # With php-cgi (or other tcp sockets):
 # fastcgi_pass 127.0.0.1:9000;
 }
 
root@client:~# systemctl restart nginx.service 

Installer Mariadb :

root@client:~# apt-get install -y mariadb-server php-mysql 
root@client:~# mariadb -V 
mariadb Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 
root@client:~# mysql -V 
mysql Ver 15.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 
root@client:~# systemctl enable mysql 
root@client:~# systemctl status mysql.service 
  
root@client:~# mysql 
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column name
You can turn off this feature to get a quicker startup with -A
  
Database changed 
MariaDB [mysql]> update user set plugin='' where User='root'; 
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 
  
MariaDB [mysql]> flush privileges; 
Query OK, 0 rows affected (0.01 sec) 
  
MariaDB [mysql]> exit; 
Bye 
 
root@client:~# mysql_secure_installation 
 
# La suite de l'installation, regarder ici [source]  

Modifier l’emplacement des données de Mariadb :

[source1] [source2] [source3]

Méthode 01 : Modifier la configuration Mariadb

Méthode 02 : Utilisation d’un lien symbolique

Moi, j’ai opté pour la méthode 02 car dans la méthode 01, il y a un risque de réinitialisation des paramètres une fois la mise à jour de Mariadb sera faite.

Détails de l’installation :

  1. Stopper le service Mariadb
  2. déplacer le répertoire de données (au cas où)
  3. créer le lien symbolique
  4. copier les données dans le nouvel emplacement
  5. relancer le service MySQL
root@client:~# systemctl stop mariadb.service 
root@client:~# systemctl status mariadb.service 
root@client:~# mkdir /mnt/mariadb 
root@client:~# rsync -Pavzxl /var/lib/mysql/ /mnt/mariadb/ 
root@client:~# mv /var/lib/mysql/ /var/lib/mysql.bkp 
root@client:~# ln -s /mnt/mariadb /var/lib/mysql 
root@client:~# systemctl start mariadb.service 
root@client:~# systemctl status mariadb.service 

Installer phpmyadmin :

root@client:~# apt-get install -y phpmyadmin 

Première question : Répondre directement OK sans cocher aucun des serveurs, vu que j’utilise nginx.

Pour cette question, je réponds NON, car j’utiliserai juste le compte root de ma bdd.

Une fois, l’installation est finie, je crée un vhost pour phpmyadmin sur nginx, comme suivant:

root@client:~# nano /etc/nginx/sites-available/phpmyadmin

server {
listen 80;
server_name phpmyadmin._____.fr;

root /usr/share/phpmyadmin;
index index.php index.html index.htm;

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

location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

}

root@client:~# ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/ 

root@client:~# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

root@client:~# systemctl restart nginx

On va sur phpmyadmin sur un navigateur :

Une fois connecté, on tombe sur la fameuse erreur :

The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. « Find out why ».
Or alternately go to ‘Operations’ tab of any database to set it up there.

On clique sur « Find out why ».

On clique sur « create ».

Au final, phpmyadmin est prêt à l’emploi.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.