Avant de commencer l’installation de nos paquets nous allons mettre à jour notre machine
apt update && apt -y upgrade
Une fois la commande terminée nous allons procéder à l’installation de Mysql
1- Installation de Mysql
L’installation se fait a partir de la commande
apt install mysql-server
Entrez le mot de passe root de votre serveur SQL
Saisissez à nouveau le mot de passe
L’installation se termine et nous devons redémarrer le service Mysql
systemctl restart mysql
Vérifions maintenant le statut du service Mysql
systemctl status mysql
Afin de sécuriser notre installation nous devons lancer la commande suivante :
mysql_secure_installation
La commande mysql_secure_installation va apporter un minimum de sécurité notre nouvelle installation. Elle va nous permettre :
- de changer le mot de passe root,
- de supprimer les comptes anonymes,
- de désactiver la connexion du compte root à distance,
- de supprimer la base de données « test » à laquelle tout le monde peut avoir accès.
L’outil finit sur un rechargement des privilèges (« Flush privileges ») afin d’appliquer les changements de droits au serveur.
Maintenant nous pouvons tester la connexion à notre service Mysql
mysql -u root -p
2- Installation d’apache
Son installation se fait via la commande suivante :
apt install apache2
Maintenant nous allons vérifier le statut du service apache grâce à la commande suivante
systemctl status apache2
Vérifions l’accessibilité de notre serveur apache depuis notre navigateur http://VOTRE_IP_OU_DOMAINE/
Vous pouvez activer les modules suivants en fonctions de vos besoins
a2enmod headers a2enmod rewrite systemctl reload apache2
3- Installation de Php7.3
Nous devons commencer par installer les packages suivants
apt-get install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
Importer et ajouter la clé publique des repository de sury
wget https://packages.sury.org/php/apt.gpg sudo apt-key add apt.gpg
Ajouter les repository de sury dans votre système via le apt/sources.list
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.list
Mettre à jour votre index de repository
apt-get update
Installer PHP 7
apt-get install -y php7.3 php7.3-cli php7.3-common
Vérifions la version de PHP installée sur notre serveur
php -v
Maintenant nous pouvons procéder à l’installation des paquets additionnels nécessaires pour le bon fonctionnement de php avec votre système.
Le paquet suivant va vous permettre d’ajouter des modules php à votre package apache
apt-get install apache2 libapache2-mod-php7.3
Pour installer l’extension MySQL pour PHP v7.3, vous pouvez installer le package php7.3-mysql.
apt-get install -y php7.3-mysql
Si vous installez wordpress sur votre serveur vous aurez besoin des extentions suivantes :
apt-get install -y php7.3-mysql php7.3-dom php7.3-simplexml php7.3-ssh2 php7.3-xml php7.3-xmlreader php7.3-curl php7.3-exif php7.3-ftp php7.3-gd php7.3-iconv php7.3-imagick php7.3-json php7.3-mbstring php7.3-posix php7.3-sockets php7.3-tokenizer
Si vous installez Joomla sur votre serveur vous aurez besoin des extentions suivantes :
apt-get install -y php7.3-mysql php7.3-xml php-pear php7.3-json
Si vous installez Drupal sur votre serveur vous aurez besoin des extentions suivantes :
apt-get install -y php7.3-mysql php7.3-dom php7.3-gd php7.3-json php7.3-pdo php7.3-simplexml php7.3-tokenizer php7.3-xml
Nous pouvons désormais tester le fonctionnement de notre paquet PHP. Pour ce faire nous allons créer un fichier info.php et y inserer le phpinfo
touch touch /var/www/html/info.php
echo '' >/var/www/html/info.php
Saisir sur votre navigateur l’adresse URL http://VOTRE_IP_OU_DOMAINE/ info.php
Après avoir effectué le test vous devez supprimer le fichier info.php
rm /var/www/info.php
Pour terminer la partie sur le paquet PHP il faut modifier le fichier php.ini afin d’y effectuer quelques réglages
vi /etc/php/7.3/apache2/php.ini
Rechercher
;date.timezone =
Ajouter (Pour afficher le fuseau horaire de Paris)
date.timezone = Europe/Paris
Vous pouvez aussi par la même occasion Augmenter la taille maximale des fichiers à télécharger sur le serveur
upload_max_filesize = 6M
4 – Installation de PhpMyadmin
Il faut se rendre sur le site de PHPmyadmin a l’adresse suivante pour télécharger la dernière version du paquet : https://www.phpmyadmin.net/downloads/
#cd /tmp/ # wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.tar.gz # tar xvf phpMyAdmin-4.9.2-all-languages.tar.gz
Déplacer le dossier dans le répertoire /user/share
mv phpMyAdmin-4.9.2-all-languages /usr/share/phpmyadmin
Donner les droits du dossier à l’utilisateur www-data du service apache
chown -R www-data:www-data /usr/share/phpmyadmin
Il faut créer un dossier temporaire pour phpmyadmin
mkdir -p /var/lib/phpmyadmin/tmp sudo chown www-data:www-data /var/lib/phpmyadmin/tmp
Se connecter à mysql pour créer une base pour phpmyadmin
mysql -u root
mysql> CREATE DATABASE phpmyadmin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Les commandes suivantes vont nous permettre de créer un utilisateur phpmyadmin qui aura les droits sur la base nommée phpmyadmin avec un mot de passe
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'motdepasse';
GRANT ALL ON phpmyadmin.* TO 'phpmyadmin'@'localhost';
On applique les privilèges et on se déconnecte de Mysql
FLUSH PRIVILEGES; exit;
Nous pouvons lancer l’installation des paquets additionnels d’apache pour phpmyadmin
apt-get install -y php7.3-common php7.3-mysql php7.3-gd php7.3-imap php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp
On redémarre le service apache
systemctl restart apache2
Nous allons créer le fichier de configuration qui va nous permettre d’accès a la page web de phpmyadmin via apache
vi /etc/apache2/conf-available/phpmyadmin.conf
Coller et enregistrer le fichier de configuration suivant
# phpMyAdmin default Apache configuration Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+\.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/templates> Require all denied </Directory> <Directory /usr/share/phpmyadmin/libraries> Require all denied </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Require all denied </Directory>
Activer le fichier de configuration via la commande suivante
a2enconf phpmyadmin.conf
On redémarre le service apache
systemctl restart apache2
Il faut créer et modifier le fichier de configuration de phpmyadmin
# cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php vi /usr/share/phpmyadmin/config.inc.php
Modifier les informations suivantes :
. . . $cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ . . .
Par
$cfg['blowfish_secret'] = '2O:.uw6-8;Oi9R=3W{tO;/QtZ]4OG:T:'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Et les lignes suivantes
/* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controlport'] = ''; // $cfg['Servers'][$i]['controluser'] = 'pma'; // $cfg['Servers'][$i]['controlpass'] = 'pmapass'; /* Storage database and tables */ // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; // $cfg['Servers'][$i]['relation'] = 'pma__relation'; // $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; // $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; // $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; // $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; // $cfg['Servers'][$i]['history'] = 'pma__history'; // $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; // $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; // $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // $cfg['Servers'][$i]['recent'] = 'pma__recent'; // $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; // $cfg['Servers'][$i]['users'] = 'pma__users'; // $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; // $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; // $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; // $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; // $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; // $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
Par
$/* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controlport'] = ''; $cfg['Servers'][$i]['controluser'] = 'phpmyadmin'; $cfg['Servers'][$i]['controlpass'] = 'Votre_mot_depasse_phpmyadmin'; /* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
On redémarre le service apache
systemctl restart apache2
Maintenant vous pouvez accéder a la page web de phpmyadmin http://VOTRE_IP_OU_DOMAINE/ phpmyadmin
C’est terminé 🙂 votre machine Debian est maintenant opérationnelle. Même s’il est vrai que ce tutoriel est un peu long, je tenais à faire une version à jour de mon premier tuto sur l’installation de ces paquets qui sont très souvent utiles.