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 Prochaine révision Les deux révisions suivantes | ||
php [Le 06/07/2018, 15:07] krodelabestiole [Problèmes courants] + PHP pas interprété |
php [Le 26/11/2018, 15:29] krodelabestiole [Modules] |
||
---|---|---|---|
Ligne 43: | Ligne 43: | ||
<code bash>sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip</code> | <code bash>sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip</code> | ||
<note important> | <note important> | ||
- | Pour les versions récentes, ne spécifiez pas de version, le système installera la dernière version… 7.*. \\ | + | Pour les versions récentes d'Ubuntu, ne spécifiez pas le numéro de version de PHP dans les noms des paquets qui le concernent, le système installera la dernière version… 7.* :\\ |
- | les modules préfixés par **php5** ont encore cours avec [[trusty]], | + | \\ |
- | Par exemple //php5-curl// sous trusty devient //php7.0-curl//, plus simplement accessible par //php-curl//. | + | par exemple ''php5-curl'' sous [[:trusty|Ubuntu 14.04 Trusty]] devient ''php7.0-curl'' sur [[:xenial|Ubuntu 16.04 Xenial]], plus simplement accessible par ''php-curl'' que ce soit sur Xenial (pour PHP 7.0), ou sur [[:bionic|Ubuntu 18.04 Bionic]] (pour PHP 7.2). |
</note> | </note> | ||
Ligne 77: | Ligne 77: | ||
| [[http://php.net/manual/fr/book.intl.php|intl]] | [[apt>php-intl]] | Fonctions d'internationalisation. | | | [[http://php.net/manual/fr/book.intl.php|intl]] | [[apt>php-intl]] | Fonctions d'internationalisation. | | ||
| [[http://php.net/manual/fr/book.json.php|JSON]] | [[apt>php-json]] | Implémente le format d'échange de données [[wpfr>JavaScript Object Notation]]. | | | [[http://php.net/manual/fr/book.json.php|JSON]] | [[apt>php-json]] | Implémente le format d'échange de données [[wpfr>JavaScript Object Notation]]. | | ||
- | | [[http://php.net/manual/fr/book.mcrypt.php|Mcrypt]] | [[apt>php-mbstring]] | Implémente des algorithmes de chiffrement. Ce module **n'existe plus depuis PHP 7.2** ([[:Bionic]]). Il faut maintenant utiliser [[http://php.net/manual/fr/book.sodium.php|Sodium]] ou [[http://php.net/manual/fr/book.openssl.php|OpenSSL]]. | | + | | [[http://php.net/manual/fr/book.mcrypt.php|Mcrypt]] | [[apt>php-mcrypt]] | Implémente des algorithmes de chiffrement. Ce module **n'existe plus depuis PHP 7.2** ([[:Bionic]]). Il faut maintenant utiliser [[http://php.net/manual/fr/book.sodium.php|Sodium]] ou [[http://php.net/manual/fr/book.openssl.php|OpenSSL]]. | |
| [[http://php.net/manual/fr/book.mbstring.php|mbstring]] | [[apt>php-mbstring]] | Implémente des jeux de caractères très grands pour certaines langues. | | | [[http://php.net/manual/fr/book.mbstring.php|mbstring]] | [[apt>php-mbstring]] | Implémente des jeux de caractères très grands pour certaines langues. | | ||
| [[http://php.net/manual/fr/book.xml.php|XML]] | [[apt>php-xml]] | Analyseur syntaxique XML (permet à PHP de "comprendre" du XML ou du HTML). | | | [[http://php.net/manual/fr/book.xml.php|XML]] | [[apt>php-xml]] | Analyseur syntaxique XML (permet à PHP de "comprendre" du XML ou du HTML). | | ||
Ligne 93: | Ligne 93: | ||
| [[http://php.net/manual/fr/ref.pdo-mysql.php|MySQL (PDO)]] et [[http://php.net/manual/fr/book.mysqli.php|MySQLi]] | [[apt>php-mysql]] | support de [[:mysql|MySQL]] ou [[:mariadb|MariaDB]] | | | [[http://php.net/manual/fr/ref.pdo-mysql.php|MySQL (PDO)]] et [[http://php.net/manual/fr/book.mysqli.php|MySQLi]] | [[apt>php-mysql]] | support de [[:mysql|MySQL]] ou [[:mariadb|MariaDB]] | | ||
| [[http://php.net/manual/fr/book.pgsql.php|PostgreSQL]] | [[apt>php-pgsql]] | support de [[:postgresql|PostgreSQL]] | | | [[http://php.net/manual/fr/book.pgsql.php|PostgreSQL]] | [[apt>php-pgsql]] | support de [[:postgresql|PostgreSQL]] | | ||
- | | [[http://php.net/manual/fr/book.sqlite.php|SQLite]] | [[apt>php-sqlite]] | support de [[:sqlite|SQLite]] | | + | | [[http://php.net/manual/fr/book.sqlite.php|SQLite]] | [[apt>php-sqlite3]] | support de [[:sqlite|SQLite]] | |
| [[http://php.net/manual/fr/set.mongodb.php|MongoDB]] | [[apt>php-mongodb]] | support de [[:MongoDB]] | | | [[http://php.net/manual/fr/set.mongodb.php|MongoDB]] | [[apt>php-mongodb]] | support de [[:MongoDB]] | | ||
Ligne 155: | Ligne 155: | ||
===== Problèmes courants ===== | ===== Problèmes courants ===== | ||
+ | |||
+ | <note tip> | ||
+ | Si vous utilisez Apache, consultez également les [[:apache2#problemes_courants|problèmes courants liés à ce serveur HTTP]] afin d'obtenir des solutions pour les erreurs 403, 404, 500, 503, etc. | ||
+ | </note> | ||
==== Page blanche ==== | ==== Page blanche ==== | ||
Ligne 161: | Ligne 165: | ||
Vous pouvez [[#activer_le_rapport_d_erreur|activer le rapport d'erreur]], ou consulter le log d'erreur de votre serveur HTTP pour en savoir plus sur le problème rencontré. | Vous pouvez [[#activer_le_rapport_d_erreur|activer le rapport d'erreur]], ou consulter le log d'erreur de votre serveur HTTP pour en savoir plus sur le problème rencontré. | ||
- | |||
- | ==== Erreur 403, 404, 500 ==== | ||
- | |||
- | Les erreurs de ce type ne sont a priori pas liées directement à PHP, mais au serveur HTTP. Si vous utilisez Apache consultez [[:apache2#problemes_courants|la documentation à ce sujet]]. | ||
- | |||
- | ==== Attente puis erreur 503 "service indisponible" ==== | ||
- | |||
- | Cette erreur indique que le serveur HTTP est dans les choux. Le service existe mais prend apparemment un temps interminable à répondre.\\ | ||
- | * En premier lieu redémarrez le serveur HTTP (et PHP si vous l'utilisez en FastCGI). | ||
- | * Si le problème se pose toujours, cela peut par exemple être dû au fait qu'un script entre dans une boucle infinie. En plus de surcharger le processeur, ce problème ne générera pas de message d'erreur ce qui en fait malheureusement un problème particulièrement compliqué à débugger. Si votre CMS ou application web utilise un système de cache, vous pouvez essayer de le vider et de le désactiver. Puis essayer de désinstaller les plugins installés récemment, défaire les modifications récentes ou restaurer une sauvegarde de votre application PHP. | ||
==== Code source visible dans le navigateur ==== | ==== Code source visible dans le navigateur ==== | ||
Ligne 181: | Ligne 175: | ||
Si vous utilisez [[:apache2#mod_php|PHP en tant que module d'Apache]] : | Si vous utilisez [[:apache2#mod_php|PHP en tant que module d'Apache]] : | ||
* vérifiez l'installation du paquet [[apt>libapache2-mod-php]] | * vérifiez l'installation du paquet [[apt>libapache2-mod-php]] | ||
- | * si il est bien installé, activez le module : | + | * s'il est bien installé, activez le module : |
sur [[:bionic|Bionic 18.04]] : | sur [[:bionic|Bionic 18.04]] : | ||
<code>sudo a2enmod php7.2</code> | <code>sudo a2enmod php7.2</code> | ||
Ligne 188: | Ligne 182: | ||
Puis relancez Apache : | Puis relancez Apache : | ||
<code>sudo systemctl restart apache2</code> | <code>sudo systemctl restart apache2</code> | ||
+ | |||
+ | ==== Conflits potentiels entre plusieurs versions de PHP ==== | ||
+ | |||
+ | Il est possible que plusieurs versions de PHP soient installées simultanément, par ex. après une mise à jour majeure d'ubuntu si vous avez spécifié le numéro de version de PHP lors de l'installation des paquets, ou si vous avez ajouté un PPA exotique pour installer une version spécifique de PHP (mauvaise idée, il vaut mieux dans ce cas utiliser [[:docker_lamp|docker]]).\\ | ||
+ | Cela peut par ex. rendre des modules de PHP inaccessibles alors qu'ils semblent bien installés. | ||
+ | |||
+ | Vous pouvez vérifier cela avec cette commande : | ||
+ | <code>apt list \*php\* | grep install</code> | ||
+ | Si vous voyez apparaître plusieurs versions de PHP, par ex. //php7.2// et //php7.0// ou //php5.6//, vous avez un problème. Dans ce cas supprimez les versions de PHP qui ne correspondent pas à la version proposée par les dépôts officiels d'ubuntu (//php7.0// sur [[:xenial|Xenial 16.04]], //php7.2// sur [[:bionic|Bionic 18.04]]), [[:ppa#la_methode_propre_les_paquets_de_gestion_automatiqueppa-purge_launchpad-getkeys|désinstallez le PPA exotique]] si il existe, puis réinstallez les paquets absents si nécessaire sans spécifier de numéro de version ([[apt>libapache2-mod-php]], etc). | ||
===== Voir aussi ===== | ===== Voir aussi ===== |