Configuration Apache avec HTTP/2 PHP-FPM et MariaDB
Source du tutoriel: https://arstechnica.com/information-technology/2020/05/apache-101-0-wordpress-in-15-minutes/
Configuration pour le tutoriel :
- 1 Vm Debian
1012 - 1 go de RAM
- 20 go de disque dur
Installation de apache et de php-fpmPHP-FPM avec les extensionextensions phpPHP communément utilisé dans les applications avec phpPHP (Wordpress,OCS Inventory, Bookstack, GLPI etc...)
# Installation de Apache2 et de PHP-FPM et MariaDB
apt install apache2 php-fpm mariadb-server
# Installation des extensions PHP communément utilisé
apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd \
php-mysql php-xml php-intl php-mysql php-cli php-ldap php-zip php-curl php-apcu php-cas php-bz2 php-imap php-tidy
Configuration base de donnée MariaDB
Sécuriser la base de données:
mysql_secure_installation
Installer une base de donnée
# Connexion à la BDD en root
mysql -u root
# Création de la BDD
CREATE DATABASE Application_Web_DB;
GRANT ALL ON Application_Web_DB.* TO 'Application_Web_DB' IDENTIFIED BY 'Application_Web_MDP';
FLUSH PRIVILEGES;
Configuration serveur web Apache
Activation de l'utilisation de PHP-FMP et de TLS par Apache
# Desactivation modules non necessaires
a2dismod mpm_prefork
a2dismod php8.2
# Activation des modules PHP-FPM
a2enmod proxy_fcgi
a2enconf php7.3-php8.2-fpm.conf
a2enmod mpm_event
# Activation des modules HTTPSApache
a2enmod ssl
a2enmod http2
a2enmod rewrite
a2enmod headers
a2enmod socache_shmcb
# Relancer le service apacheApache
systemctl restart apache2
Ne pas oublier !
Les modification de la configuration de php se font dans /etc/php/7.3/8.2/apache2/php.ini
Relancer le service une fois les modifications effectués !
service php7.3-php8.2-fpm restart
Voici un exemple de fichier de configuration apache avec PHP et HTTPS générique
Je me suis basé sur : Mozilla SSL Configuration Generator Apache Modern
<VirtualHost *:80>
# Redirection HTTPS
RewriteEngine On
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
# Activation HTTP/2
Protocols h2 http/1.1
# Indication SNI
ServerName application.fr
ServerAlias www.application.fr
ServerAdmin webmaster@site.fr
# Réglages SSL
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
# Bloc configuration Application
DocumentRoot /var/www/application
<Directory /var/www/application>
Options ExecCGI FollowSymlinks
AllowOverride AuthConfig Limit FileInfo Options Indexes
Order allow,deny
allow from all
</Directory>
# Emplacements des logs
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Configuration Protocoles
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLHonorCipherOrder off
SSLSessionTickets off