Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
php [Le 28/11/2024, 17:17] krodelabestiole [phpinfo()] ooo |
php [Le 27/02/2025, 04:55] (Version actuelle) krodelabestiole [Configuration] (cli seulement) |
||
---|---|---|---|
Ligne 111: | Ligne 111: | ||
Attention cependant au fait que les modules PHP activés en ligne de commande et via votre serveur HTTP ne sont pas nécessairement les mêmes. La fonction PHP //[[#phpinfo|phpinfo()]]// vous montrera les modules activés sur votre serveur web. | Attention cependant au fait que les modules PHP activés en ligne de commande et via votre serveur HTTP ne sont pas nécessairement les mêmes. La fonction PHP //[[#phpinfo|phpinfo()]]// vous montrera les modules activés sur votre serveur web. | ||
- | |||
==== Activer / désactiver les modules ==== | ==== Activer / désactiver les modules ==== | ||
Ligne 121: | Ligne 120: | ||
<code>sudo phpenmod mbstring</code> | <code>sudo phpenmod mbstring</code> | ||
Par défaut la modification s'applique pour toutes les versions de PHP installées et toutes les SAPI utilisées (CLI, Apache, FPM, etc.) | Par défaut la modification s'applique pour toutes les versions de PHP installées et toutes les SAPI utilisées (CLI, Apache, FPM, etc.) | ||
+ | |||
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 134: | Ligne 134: | ||
Ceci explique parfois des différences de comportement entre PHP exécuté par Apache, et manuellement en ligne de commande. | Ceci explique parfois des différences de comportement entre PHP exécuté par Apache, et manuellement en ligne de commande. | ||
+ | |||
+ | <note tip>Pour savoir où se trouve le fichier ''php.ini'' utilisé par la commande ''php'', exécuter : <code bash>php --ini</code> | ||
+ | Pour avoir des informations dont le fichier ''php.ini'' utilisé par le serveur web, il faut par contre passer par la fonction ''[[#phpinfo()]]''.</note> | ||
==== Activer le rapport d'erreur ===== | ==== Activer le rapport d'erreur ===== | ||
Ligne 149: | Ligne 152: | ||
On peut désactiver l'affichage de ces messages pas toujours très importants en remplaçant cette ligne par celle-ci : | On peut désactiver l'affichage de ces messages pas toujours très importants en remplaçant cette ligne par celle-ci : | ||
<file>php_value error_reporting "E_ALL & ~E_NOTICE & ~E_STRICT"</file> | <file>php_value error_reporting "E_ALL & ~E_NOTICE & ~E_STRICT"</file> | ||
- | |||
Les directives ''display_errors'' et ''error_reporting'' sont aussi accessibles pour définir l'affichage des erreurs globalement, directement dans votre fichier ''php.ini''.\\ | Les directives ''display_errors'' et ''error_reporting'' sont aussi accessibles pour définir l'affichage des erreurs globalement, directement dans votre fichier ''php.ini''.\\ | ||
Ligne 182: | Ligne 184: | ||
OPcache est activé par défaut sur Ubuntu. | OPcache est activé par défaut sur Ubuntu. | ||
+ | ===== Serveur ===== | ||
+ | |||
+ | **PHP** implémente un [[:web#serveurs|serveur web]], principalement utilisé pour du développement ou des tests rapides. | ||
+ | |||
+ | On peut le lancer depuis certains [[:IDE]] ou directement en ligne de commande : | ||
+ | <code>php -S localhost:8000</code> | ||
+ | pour lancer ce serveur sur le port ''8000''. | ||
+ | |||
+ | Voir si besoin la [[https://www.php.net/manual/fr/features.commandline.webserver.php|documentation officielle]]. | ||
+ | |||
===== Problèmes courants ===== | ===== Problèmes courants ===== | ||
Ligne 204: | Ligne 216: | ||
* vérifiez l'installation du paquet [[apt>libapache2-mod-php]] | * vérifiez l'installation du paquet [[apt>libapache2-mod-php]] | ||
* s'il est bien installé, activez le module : | * s'il est bien installé, activez le module : | ||
- | + | * sur [[:noble|Noble 24.04]] : <code>sudo a2enmod php8.3</code> | |
- | sur [[:focal|Jammy 22.04]] : | + | * sur [[:jammy|Jammy 22.04]] : <code>sudo a2enmod php8.1</code> |
- | <code>sudo a2enmod php8.1</code> | + | * sur [[:focal|Focal 20.04]] : <code>sudo a2enmod php7.4</code> |
- | sur [[:focal|Focal 20.04]] : | + | * sur [[:bionic|Bionic 18.04]] : <code>sudo a2enmod php7.2</code> |
- | <code>sudo a2enmod php7.4</code> | + | * puis relancez Apache : <code>sudo systemctl restart apache2</code> |
- | sur [[:bionic|Bionic 18.04]] : | + | |
- | <code>sudo a2enmod php7.2</code> | + | |
- | + | ||
- | Puis relancez Apache : | + | |
- | <code>sudo systemctl restart apache2</code> | + | |
<note>Si vous rencontrez une erreur du type ''Module php8.1 does not exist!'' alors que le paquet ''libapache2-mod-php'' semble installé, supprimez le paquet ''libapache2-mod-php8.x'' (''8.x'' étant la version de PHP installée sur votre système) et ses dépendances avec une commande de la forme : | <note>Si vous rencontrez une erreur du type ''Module php8.1 does not exist!'' alors que le paquet ''libapache2-mod-php'' semble installé, supprimez le paquet ''libapache2-mod-php8.x'' (''8.x'' étant la version de PHP installée sur votre système) et ses dépendances avec une commande de la forme : | ||
<code>sudo apt autopurge libapache2-mod-php8.x</code> (''8.x'' à adapter) puis réinstallez le paquet [[apt>libapache2-mod-php]].</note> | <code>sudo apt autopurge libapache2-mod-php8.x</code> (''8.x'' à adapter) puis réinstallez le paquet [[apt>libapache2-mod-php]].</note> | ||
+ | |||
==== Conflits potentiels entre plusieurs versions de PHP ==== | ==== Conflits potentiels entre plusieurs versions de PHP ==== | ||