Passer au contenu principal

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,Joomla, Bookstack, GLPI etc...)

apt install apache2 php-fpm
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

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 par Apache

a2enmod proxy_fcgi
a2enconf php7.3-fpm.conf
systemctl restart apache2

# Activations des modules apache pour HTTPS
a2enmod ssl
a2enmod rewrite
a2enmod headers
a2enmod socache_shmcb

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>
    RewriteEngine On
    RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>

<VirtualHost *:443>
   # enable HTTP/2, if available
   Protocols h2 http/1.1

   ServerName application.fr
   ServerAlias www.application.fr
   ServerAdmin webmaster@site.fr

   DocumentRoot /var/www/Application
      Options ExecCGI FollowSymLinks
      AllowOverride AuthConfig Limit FileInfo Options Indexes
      Order allow,deny
      allow from all

# Réglages SSL
   SSLEngine on
   SSLCertificateFile      /etc/ssl/private/ssl-cert-snakeoil.pem
   SSLCertificateKeyFile   /etc/ssl/private/ssl-cert-snakeoil.key
   # HTTP Strict Transport Security (mod_headers is required) (63072000 seconds)
   Header always set Strict-Transport-Security "max-age=63072000"

</VirtualHost>

# Configuration Protocoles
SSLProtocol             all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLHonorCipherOrder     off
SSLSessionTickets       off

SSLUseStapling On
SSLStaplingCache "shmcb:logs/ssl_stapling(32768)"