Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 31/05/2018, 12:18]
krodelabestiole +apcu +opcache
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**. 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 162: Ligne 166:
 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 403404500 ====+==== Code source visible dans le navigateur ==== 
 + 
 +Ce problème survient lorsque PHP n'est pas interprété par le serveur web. Le serveur envoie dans ce cas au navigateur directement le code PHP comme s'il s'​agissait de texteet le navigateur cherche généralement à l'​interpréter comme du HTMLpuisque c'est ce qu'il attend par défaut.\\  
 +En plus de rendre l'​application ou le site non fonctionnel,​ cela peut poser des problèmes de sécurité (fuite d'​informations éventuellement sensibles). 
 + 
 +Il faut dans ce cas revoir votre installation de PHP et sa configuration avec votre serveur Web. 
 + 
 +Si vous utilisez [[:​apache2#​mod_php|PHP en tant que module d'​Apache]] : 
 +  * vérifiez l'​installation du paquet [[apt>​libapache2-mod-php]] 
 +  * s'il est bien installé, activez le module : 
 +sur [[:​bionic|Bionic 18.04]] : 
 +<​code>​sudo a2enmod php7.2</​code>​ 
 +sur [[:​xenial|Xenial 16.04]] : 
 +<​code>​sudo a2enmod php7.0</​code>​ 
 +Puis relancez Apache : 
 +<​code>​sudo systemctl restart apache2</​code>​ 
 + 
 +==== Conflits potentiels entre plusieurs versions de PHP ====
  
-Les erreurs ​de ce type ne sont a priori pas liées directement à PHP, mais au serveur HTTPSi vous utilisez Apache consultez ​[[:apache2#​problemes_courants|la documentation à ce sujet]].+Il est possible que plusieurs versions ​de PHP soient installées simultanémentpar exaprè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.
  
-==== Attente ​puis erreur 503 "​service indisponible"​ ====+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).
  
-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. 
 ===== Voir aussi ===== ===== Voir aussi =====
  
  • php.txt
  • Dernière modification: Le 01/04/2024, 12:06
  • par bcag2