##### Installet Apache2, PHP, SSL
## 1. APACHE
# Mettre à jour le systeme et les paquets
sudo apt update && sudo apt upgrade
# Installer Apache
sudo apt install -y apache2
# Activer Apache
sudo systemctl enable apache2
# Activer les modules :
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod ssl
# Redémarrer les services d'Apache
sudo systemctl restart apache2
# Installer les utilitaires pour Apache
sudo apt install -y apache2-utils
## 2. PHP
# Installer PHP et ses modules
sudo apt install -y php
sudo apt install -y php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
# Configurer php.ini
sudo nano /etc/php/8.1/apache2/php.ini
memory_limit = 512M
upload_max_filesize = 150M
max_execution_time = 360
date.timezone = UTC
## 3. CREATION DU CERTIFICAT AUTO-SIGNE
# Création du certificat SSL auto-signé pour HTTPS avec openssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt
## 4. CONFIGURATION
# Créer une page phpinfo
sudo nano /var/www/phpinfo.php
# Les sites du dossier Web dans /var/www appartienent à l'utilisateur et au groupe www-data
sudo chown -R ubuntu:www-data /var/www/
# Modifier le répertoire par défaut (mettre /var/www à la place de /var/www/html)
sudo nano sudo nano /etc/apache2/sites-available/000-default.conf
# Modification du fichier default.ssl
sudo nano /etc/apache2/sites-available/default-ssl.conf
ServerName pageinfo.com
ServerAdmin prenom.nom@pageinfo.com
DocumentRoot /var/www/pageinfo.com
require all granted
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
SSLVerifyClient none
# Vérifier que les ports 80 et 443 soient ouverts. (On peut modifier ou ajouter d'autres ports selon les besoins).
sudo nano /etc/apache2/ports.conf
Listen 80
Listen 443
Listen 443
# Activer les configurations, les sites et les modules :
sudo a2ensite pageinfo.com.conf
sudo a2ensite default-ssl.conf
sudo a2ensite 000-default.conf
# Relancer les service Apache
systemctl reload apache2
## 5. MARIADB
# Mettre à jour les paquets
sudo apt update
# Installation de MariaDB / MySQL
sudo apt install mariadb-server -y
# Configurer la base de données
sudo mysql_secure_installation
-mettre le mot de passe par défaut : root
-Switch to unix_socket authentification : N
-Change root password : Y et remettre root x2
-Remove anonymous users : Y
-Disallow root login remotely : Y
-Remove test database and access to it : Y
-Reload privilege tables now : Y
# Activer MariaDB
sudo systemctl enable mariadb
# Installer les modules de PHP et MySQL
sudo apt install php libapache2-mod-php php-mysql
# Configurer l'accès à distance de la BDD (si besoin)
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
bind-address = 0.0.0.0
sudo systemctl restart mariadb
sudo mysql -u root -p
CREATE DATABASE dolibarrdb;
CREATE USER 'db_user'@'%' IDENTIFIED BY 'db_password';
GRANT ALL PRIVILEGES ON dolibarrdb.* TO 'db_user'@'%';
FLUSH PRIVILEGES;
EXIT;
sudo ufw allow 3306/tcp
sudo ufw reload
#` Se connecter à distance à la base de données:
mysql -u db_user -p -h 192.168.1.200 -P 3306