Passer au contenu principal

Configuration Apache avec 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 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 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

LeSécuriser saviez-vousla ?
Enbase installantde apache2 et php-fpm cela n'installe pas libapache2-mod-php
On peut le vérifier via cette commande ci dessousdonnées: 

apt policy libapache2-mod-phpmysql_secure_installation
libapache2-mod-php:

Installer Installé :une (aucun) Candidat : 2:7.3+69 Tablebase de version :donnée

2:7.3+69
# 500Connexion 500à http://deb.debian.org/debianla buster/mainBDD amd64en Packagesroot
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

# Activation des modules PHP-FPM
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/apache2/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
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