Créer un serveur Lamp (Apache MariaDB PHP) + PhpMyAdmin Debian
Dans cette procédure sera présenté étape par étape comment créer un serveur Lamp (Linux, Apache, Mariadb, Php) avec PhpMyAdmin sur une machine Debian 11. Après avoir suivis cette procédure vous aurez votre propre serveur Lamp sur votre machine Debian.
Prérequis :
- une machine Debian 11
Installation :
Mise à jour du système :
apt update && apt full-upgrade -y
Installation des services :
apt install apache2 mariadb-server mariadb-client php libapache2-mod-php php-cli php-mysql php-zip php-curl php-xml wget -y
Apache2 :
Après l’installation des paquets, le service apache2 est disponible depuis un navigateur Web :
http://[ServerIP]/
La page ci-dessous montre l’installation réussie :
Php :
Après l’installation des paquets php est disponible, pour vérifier que le service fonctionne il faudra créer un fichier php et le tester :
Créer le fichier php :
echo "<?php phpinfo(); ?>" > /var/www/html/test.php
http://[ServerIP]/test.php
Une page ressemblent à celle ci-dessous correspondra une installation réussis :
MariaDB :
Installation et configuration des accès à la base de données :
mysql_secure_installation
Enter current password for root (enter for none): Change the root password? [Y/n] Y New password: Re-enter new password: Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Connexion avec l’utilisateur root à la base de données :
mysql -u root -p
Saisir votre mot de passe de l’utilisateur root de MariaDB
Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 64 Server version: 10.5.11-MariaDB-1 Debian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Création d’un utilisateur et attribution de droits sur la base :
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* to 'user'@'localhost'; FLUSH PRIVILEGES; EXIT;
Si vous avez un soucis lors de l’installation de MariaDB avec un conteneur LXC vous pouvez voir ce post StackOverflow.
PhpMyAdmin :
Téléchargement de l’archive de PhpMyAdmin :
DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)" URL="$(echo $DATA | cut -d ' ' -f 3)" VERSION="$(echo $DATA | cut -d ' ' -f 1)" wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz
Extraction de l’archive :
tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz
Déplacer le dossier dans le répertoire : /usr/share/
mv phpMyAdmin-*/ /usr/share/phpmyadmin
Création d’un emplacement temporaire pour les fichiers PhpMyAdmin :
mkdir -p /var/lib/phpmyadmin/tmp chown -R www-data:www-data /var/lib/phpmyadmin
Création d’un emplacement pour les fichier de configuration de PhpMyAdmin :
mkdir /etc/phpmyadmin/
Copie d’un fichier de configuration :
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Edition du nouveau fichier de configuration et définir une phrase secrète :
Avec Nano ou Vim
nano /usr/share/phpmyadmin/config.inc.php vim /usr/share/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'xxxxxxxxxxxxxxxx';
Configuration d’un emplacement temporaire :
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Création d’un VirtualHost pour accèder à PhpMyAdmin avec Nano ou Vim :
nano /etc/apache2/conf-enabled/phpmyadmin.conf Ou vim /etc/apache2/conf-enabled/phpmyadmin.conf
Coller cette 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> # Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </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>
Redémarrer le service Apache2 :
sudo systemctl restart apache2
Si vous avez un soucis avec Apache2 et que vous utilisez des conteneur LXC vous pouvez utilisez ce Post du forum Proxmox.
Accès à PhpMyAdmin :
http://[ServerIP]/phpmyadmin
Les identifiants / mots de passe sont les mêmes que dans Mariadb.
Après avoir suivi cette procédure, je vous conseille de créer des Virtualhost apache afin de limiter les accès a vos sites uniquement par des noms de domaines, ainsi que l’ajout d’un firewall tel que Ufw pour limiter les accès a vos services.
No Comments