PHP

Commandes dans le terminal

Voir le status de PHP

systemctl status php7.3-fpm

Tester la configuration

apachectl -t ou sudo apachectl configtest

Redémarer PHP

systemctl restart php7.4-fpm.service

Version de PHP

php -v

Configuration php.ini

Rechercher le fichier php.ini

sudo find / -name php.ini 
cd /etc/php/7.2/apache2
sudo vim php.ini

Modifier la taile maxi en upload

upload_max_filesize = 200M

Modifier la taile memory_limit

memory_limit = 1024M

Modifier la taile post_max_size

post_max_size = 100M

Redemarer apache pour que les paramètres soient pris en compte

sudo service apache2 restart

Module mod_rewrite

L’URL Rewriting est une méthode de réécriture des URLs devenue indispensable pour la simplification des URLs notamment lors du référencement des pages dynamiques. L’url Rewriting est également très utile pour le référencement naturel (SEO).

Le module mod_rewrite de Apache est habituellement présent à l’installation d’Apache

vérifier l’existence du fichier "mod_rewrite.so"

ls -l /usr/lib/apache2/modules/

Activer le module

sudo a2enmod rewrite

 indiquer au serveur Apache d’utiliser le module en modifiant RewriteEngine :

vim /etc/apache2/apache2.conf

Ajouter ce bout de configuration en fin de fichier et sauvegarder :

<ifModule mod_rewrite.c>
RewriteEngine On
</ifModule>


relancer le serveur apache

sudo service apache2 reload

https://community.jaguar-network.com/utilisation-du-module-mod_rewrite-de-apache/

Modules php

Lister les modules installés

php7.4 -m

Rechercher un module

php -m | grep -i nom_du_module

Installer un module

sudo apt install php7.4-nom_du_module

Installer plusieurs modules

sudo apt install php7.4-{common,mysql,xml,xmlrpc,curl,gd,i,soap,zip,intl} -y

Plusieurs versions de PHP avec Apache

PHP-FPM utilise un démon pour gérer plusieurs versions PHP sur une seule instance. Vous pouvez utiliser ensemble Apache et PHP-FPM pour héberger plusieurs applications Web PHP, chacune utilisant une version différente de PHP, toutes sur le même serveur, et toutes en même temps.

activer plusieurs modules pour que votre service Apache2 puisse fonctionner avec plusieurs versions PHP :

sudo a2enmod actions fcgid alias proxy_fcgi

Installer la version de PHP-FPM

sudo apt-get install php7.4-fpm 

sudo apt-get install php8.3-curl php8.3-gd php8.3-zip php8.3-pdo php8.3-intl php8.3-soap php8.3-mysql php8.3-mbstring php8.3-xml php8.3-ssh2 php8.3-amqp

Activer

sudo a2enconf php7.4-fpm

Créer un Pool PHP-FPM

sudo vim /etc/php/7.4/fpm/pool.d/www.conf

# Listen on localhost port 9xxx
Listen = 127.0.0.1:9xxx
# Ensure only localhost can connect to PHP-FPM
listen.allowed_clients = 127.0.0.1

Redemarer php-fpm

sudo systemctl restart phpx.x-fpm.service

 

Paramétrer le Pool dans le Vhost du site

vim /etc/apache2/sites-available domaine.conf

<FilesMatch \.php$>
    SetHandler "proxy:fcgi://127.0.0.1:9xxx"
</FilesMatch>

Redemarer le serveur Apache

sudo systemctl restart apache2

Version php par défaut

La version php par défaut se trouve dans /etc/apache2/mods-enabled

Switch from PHP5.x to PHP7.x

sudo a2enmod php7.2
sudo a2dismod php5.6
sudo update-alternatives --set php /usr/bin/php7.2
sudo systemctl restart apache2

Passez à une version spécifique et connue

update-alternatives --set php /usr/bin/php{VERSION}

Revenir à la version par défaut (version avec la plus haute priorité)

update-alternatives --auto php

Liste des versions disponibles

update-alternatives --list php

Choisissez interactivement une version lorsque vous n'êtes pas sûr de ce qui est disponible

update-alternatives --config php