Configuration Apache avec PHP-FPM et TLS
Source du tutoriel: https://arstechnica.com/information-technology/2020/05/apache-101-0-wordpress-in-15-minutes/
Configuration pour le tutoriel :
- 1 Vm Debian 10
- 1 go de RAM
- 20 go de disque dur
Installation de apache et de php-fpm avec les extension php communément utilisé dans les applications avec php (Wordpress,OCS Inventory, Bookstack, GLPI etc...)
# Installation de Apache2 et de PHP-FPM
apt install apache2 php-fpm
# 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
Le saviez-vous ?
En installant apache2 et php-fpm cela n'installe pas libapache2-mod-php
On peut le vérifier via cette commande ci dessous
apt policy libapache2-mod-php
libapache2-mod-php:
Installé : (aucun)
Candidat : 2:7.3+69
Table de version :
2:7.3+69 500
500 http://deb.debian.org/debian buster/main amd64 Packages
Activation de l'utilisation de PHP-FMP et de TLS par Apache
# Activation des modules PHP-CGI
a2enmod proxy_fcgi
a2enconf php7.3-fpm.conf
# Activation des modules HTTPS
a2enmod ssl
a2enmod rewrite
a2enmod headers
a2enmod socache_shmcb
# Relancer le service apache
systemctl restart apache2
Ne pas oublier !
Les modification de la configuration de php se font dans /etc/php/7.3/fpm/php.ini
Relancer le service une fois les modifications effectués !
service php7.3-fpm restart
Voici un exemple de fichier de configuration apache avec PHP et HTTPS générique
<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
# HTTP Strict Transport Security (mod_headers est requis) (63072000 secondes)
Header always set Strict-Transport-Security "max-age=63072000"
</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
SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"