← Semaine 1

Laboratoire : ma pile LAMP

Apache, PHP, MySQL et phpMyAdmin : à la fin, votre serveur sert un vrai site dynamique.
0 / 7 missions accomplies
prenom@serveur:~$ sudo apt update prenom@serveur:~$ sudo apt install apache2

Testez dans votre navigateur : http://ip.du.serveur - la page « Apache2 Default Page » doit apparaître.

Rien ne s'affiche et ufw est actif ? Passez à la mission 2 !
prenom@serveur:~$ sudo ufw app list prenom@serveur:~$ sudo ufw app info "Apache Full" prenom@serveur:~$ sudo ufw allow in "Apache Full" prenom@serveur:~$ sudo ufw status verbose
prenom@serveur:~$ sudo apt install php libapache2-mod-php prenom@serveur:~$ php -v prenom@serveur:~$ sudo a2enmod php8.3 # ajuster a VOTRE version prenom@serveur:~$ sudo systemctl restart apache2

Créez une page de test PHP :

prenom@serveur:~$ echo "<?php phpinfo();" | sudo tee /var/www/html/info.php # Puis visitez http://ip.du.serveur/info.php
prenom@serveur:~$ cd /var/www prenom@serveur:/var/www$ sudo chown prenom:www-data -R html prenom@serveur:/var/www$ cd html prenom@serveur:/var/www/html$ mv index.html ubuntu.html

Déposez ensuite une page à vous (index.html) et admirez-la dans le navigateur.

prenom@serveur:~$ sudo apt install mysql-server prenom@serveur:~$ sudo mysql -u root mysql> ALTER USER 'root'@'localhost' -> IDENTIFIED WITH mysql_native_password -> BY 'unmotdepassecomplique'; mysql> flush privileges; mysql> exit; prenom@serveur:~$ sudo mysql_secure_installation
VALIDATE_PASSWORD_COMPONENT ? Répondez N - c'est IRRÉCUPÉRABLE en cas d'erreur. Change password for root ? N. Le reste : Y partout.

Créez ensuite le superadmin :

prenom@serveur:~$ sudo mysql -u root -p mysql> CREATE USER 'superadmin'@'localhost' -> IDENTIFIED WITH mysql_native_password BY 'motdepassefort'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'superadmin'@'localhost'; mysql> GRANT GRANT OPTION ON *.* TO 'superadmin'@'localhost'; mysql> flush privileges;
prenom@serveur:~$ sudo apt install php-mysql prenom@serveur:~$ sudo jed /etc/php/8.3/apache2/php.ini # Enlever le ; devant : extension=mysqli extension=pdo_mysql prenom@serveur:~$ sudo systemctl restart apache2 && sudo systemctl restart mysql
Serveur d'apprentissage ? Activez aussi display_errors = On dans php.ini pour voir vos erreurs PHP en direct.
prenom@serveur:~$ sudo apt install phpmyadmin

Testez : http://ip.du.serveur/phpmyadmin avec superadmin.

phpMyAdmin bloqué par la politique de mots de passe ? mysql> SET GLOBAL validate_password.policy=LOW;
Pile LAMP debout ! Apache sert, PHP calcule, MySQL retient et phpMyAdmin surveille. La semaine 2 donnera un vrai nom à votre serveur : domaine, DNS et virtualisation.