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
php [Le 08/05/2013, 16:31]
109.28.132.11 [Installation]
php [Le 14/07/2018, 12:27] (Version actuelle)
krodelabestiole déplacement erreur 503 vers la page Apache
Ligne 1: Ligne 1:
-{{tag>​php serveur ​brouillon}}+{{tag>Xenial Bionic ​php serveur}}
  
 ====== PHP ====== ====== PHP ======
-PHP (acronyme récursif pour "​**P**HP:​ **H**ypertext **P**reprocessor"​) est un langage de script principalement utilisé pour produire des pages web de manière dynamique. Il est donc, dans la très grande majorité des cas, couplé à un serveur HTTP (comme [[:​apache2|Apache]]) pour la communication avec le client web. 
  
-La production de pages web dynamiques pouvant nécessiter une interaction avec une base de données, PHP est souvent utilisé en association avec un système ​de gestion ​de base de données ​(SGBD) comme [[:mysql|MySQL]].+PHP (acronyme récursif pour "​**P**HP:​ **H**ypertext **P**reprocessor"​, PHP étant au départ l'​acronyme de **P**ersonal **H**ome **P**age) ​est un langage ​de programmation principalement utilisé pour produire des pages web de manière dynamique. Il est donc, dans la très grande majorité des cas, couplé à un serveur HTTP (comme [[:apache2|Apache]]) pour la communication avec le client web.
  
 +La production de [[:​cms|pages web dynamiques]] pouvant nécessiter une interaction avec une base de données, PHP est souvent utilisé en association avec un système de gestion de base de données (SGBD) comme [[:MySQL]].
  
 ===== Installation ===== ===== Installation =====
-PHP étant principalement utilisé comme langage de script serveur, seule son installation dans ce cadre là est présentée ici. 
  
- béta installation php 5.4.4+<note tip>Pour installer PHP avec Apache et MySQL ou MariaDB, reportez-vous de préférence à la [[:​LAMP|page LAMP]].</​note>​
  
-installer ​les depots officiel multiverse ​et backport ainsi que leur sources+Il existe 4 manières d'installer et utiliser PHP sur Ubuntu : 
 +  * en ligne de commande (ou donc dans un [[:​tutoriel:​script_shell|script shell]]) via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]] **[[apt>​php-cli]]** (//cli// pour //​command-line interface//​) 
 +  * avec un serveur HTTP en [[wpfr>​FastCGI|script FastCGI]] via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]] **[[apt>​php-fpm]]** (//fpm// pour //FastCGI Process Manager//​) 
 +  * avec un serveur HTTP en script CGI via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]] **[[apt>​php-cgi]]** (c'est une méthode historique qui n'a plus trop d'​intérêt) 
 +  * en [[:​apache2#​mod_php|module d'​Apache]] via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]] **[[apt>​libapache2-mod-php]]**
  
-ex ubuntu 12.04+Pour un [[:​web#​serveurs|serveur web]] on utilisera principalement PHP soit en //​FastCGI//,​ soit en //module d'​Apache//​.
  
-<​code>​sudo su+Si on utilise [[:​apache2|Apache]] et pour un site à trafic ordinaire, on utilisera de préférence le module d'​Apache parce qu'il est beaucoup plus simple à mettre en place et à administrer.
  
-cat > /​etc/​apt/​sources.list <<EOF +Pour un trafic à plusieurs milliers de visites par heure, mieux vaut utiliser PHP en FastCGI (parce qu'il est capable de traiter plusieurs processus simultanément).\\  
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise main restricted +Avec un serveur HTTP autre que Apache, on utilise aussi PHP en FastCGI ​il n'​existe pas de module PHP pour [[:Nginx]] ou [[:Lighttpd]].
-deb http://​security.ubuntu.com/​ubuntu precise-security main restricted +
-deb http://​fr.archive.ubuntu.com/ubuntu/ precise-updates main restricted+
  
-# Dépôts ​de sources (uniquement utiles pour télécharger ​les sources avec apt-get source. Dans ce cas, enlever les #) +Chacun ​de ces paquets installera toutes ​les dépendances nécessaires au fonctionnement de PHP sur votre machine.
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise main restricted +
-deb-src http://​security.ubuntu.com/​ubuntu precise-security main restricted +
-deb-src http://​fr.archive.ubuntu.com/ubuntu/ precise-updates main restricted+
  
-deb http://fr.archive.ubuntu.com/ubuntuprecise universe multiverse +<​note>​Sous [[:Xenial]] (16.04), à moins qu'on ait déjà installé le module d'​Apache,​ le paquet **[[apt>​php]]** installe par dépendance **php-fpm** (//FastCGI//).
-deb http://security.ubuntu.com/​ubuntu precise-security universe multiverse +
-deb http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates universe multiverse+
  
-# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce casenlever les #) +Tandis que sous [[:​debian_ubuntu_comparaison|Debian]] le paquet **php** installe par défaut le module d'​Apacheet Apache.
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise universe multiverse +
-deb-src http://​security.ubuntu.com/​ubuntu precise-security universe multiverse +
-deb-src http://​fr.archive.ubuntu.com/​ubuntu/​ precise-updates universe multiverse +
-deb http://​fr.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse+
  
-# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas, enlever les #) +Attention donc à ne pas installer le paquet **php** sans le paquet **libapache2-mod-php** si vous ne souhaitez pas utiliser **php-fpm**.
-deb-src http://fr.archive.ubuntu.com/​ubuntu/​ precise-backports main restricted universe multiverse +
-EOF +
-exit</​code>​ +
-<​code>​sudo apt-get update</​code>​ +
-<​code>​sudo apt-get -y upgrade</​code>​ +
-<​code>​sudo apt-get -y install git vim libmcrypt-dev</​code>​ +
-<​code>​sudo apt-get -y build-dep php5 php5-mcrypt</​code>​+
  
 +Ce comportement a été corrigé sous [[:Bionic]] (18.04), qui rejoint celui de Debian.</​note>​
  
-compiller manuellement+PHP est alors installé. Cependant la plupart des scripts PHP ([[:CMS]], forums, applications web en tout genre) utilisent des modules de PHP pour bénéficier de certaines fonctionnalités.
  
-<​code>​cd /​usr/​local/​src/</​code>​ +===== Modules =====
-<​code>​git clone --branch PHP-5.4 https://​github.com/​php/​php-src.git php-5.4.4</​code>​ +
-<​code>​cd /​usr/​local/​src/​php-5.4.4/​ext/</​code>​ +
-<​code>​sudo wget http://​pecl.php.net/​get/​APC-3.1.13.tgz</​code>​ +
-<​code>​sudo tar -xvf APC-3.1.13.tgz</​code>​ +
-<​code>​sudo mv APC-3.1.13 apc</​code>​ +
-<​code>​cd /​usr/​local/​src/​php-5.4.4/</​code>​ +
-<​code>​sudo rm -rf configure</​code>​ +
-<​code>​sudo ./buildconf --force</​code>​ +
-<​code>​./​configure --enable-bcmath \ +
-  --enable-calendar \ +
-  --enable-dba \ +
-  --enable-exif \ +
-  --enable-ftp \ +
-  --enable-mbstring \ +
-  --enable-shmop \ +
-  --enable-sigchild \ +
-  --enable-soap \ +
-  --enable-sockets \ +
---enable-sysvmsg \ +
-  --enable-wddx \ +
-  --enable-zip \ +
-  --with-apxs2=/​usr/​local/​apache2/​bin/​apxs \ +
-  --with-bz2 \ +
-  --with-config-file-path=/​usr/​local/​apache2/​conf \ +
-  --with-curl \ +
-  --with-gd \ +
-  --with-gettext \ +
-  --with-mcrypt \ +
-  --with-mysql \ +
-  --with-mysqli \ +
-  --with-openssl \ +
-  --with-pdo-mysql \ +
-  --with-pdo-pgsql \ +
-  --with-pgsql \ +
-  --with-xmlrpc \ +
-  --with-zlib+
  
-</​code>​ +Les modules de PHP lui permette d'​étendre ses fonctionnalitésDe très nombreux modules PHP sont disponibles sur les dépôts officiels d'​Ubuntu.
-<​code>​sudo make</​code>​ +
-<​code>​sudo apt-get -y install checkinstall</​code>​ +
-<​code>​sudo checkinstall --pkgname=php5-4 --pkgversion="​5.4.4" --backup=no --deldoc=yes --fstrans=no --default</​code>​+
  
 +Voici comment installer rapidement les modules les plus courants :
 +<code bash>​sudo apt install php-curl php-gd php-intl php-json php-mbstring php-xml php-zip</​code>​
 +<note important>​
 +Pour les versions récentes, ne spécifiez pas de version, le système installera la dernière version… 7.*. \\
 +les modules préfixés par **php5** ont encore cours avec [[trusty]],
  
-installer avec le pacquet deb ubuntu 12.04 amd64 (64 bit) seulement+Par exemple //​php5-curl//​ sous trusty devient //php7.0-curl//, plus simplement accessible par //​php-curl//​. 
 +</​note>​
  
 +==== Modules installés par défaut ====
  
 +[[https://​packages.ubuntu.com/​bionic/​amd64/​php7.2-common/​filelist|Certains modules]] sont installés par défaut avec PHP via le paquet **[[apt>​php-common]]**.
  
 +  * [[http://​php.net/​manual/​fr/​book.calendar.php|Calendar]]
 +  * [[http://​php.net/​manual/​fr/​book.ctype.php|ctype]]
 +  * [[http://​php.net/​manual/​fr/​book.exif.php|Exif]]
 +  * [[http://​php.net/​manual/​fr/​book.fileinfo.php|FileInfo]]
 +  * [[http://​php.net/​manual/​fr/​book.ftp.php|FTP]]
 +  * [[http://​php.net/​manual/​fr/​book.gettext.php|Gettext]]
 +  * [[http://​php.net/​manual/​fr/​book.iconv.php|iconv]]
 +  * [[http://​php.net/​manual/​fr/​book.pdo.php|PHP Data Objects]]
 +  * [[http://​php.net/​manual/​fr/​book.phar.php|Phar]]
 +  * [[http://​php.net/​manual/​fr/​book.shmop.php|Mémoire partagée]]
 +  * [[http://​php.net/​manual/​fr/​book.sockets.php|Sockets]]
 +  * [[http://​php.net/​manual/​fr/​book.tokenizer.php|Tokenizer]]
  
-<​code>​wget http://www.petit-fichier.fr/​2013/​05/​08/​php5-4-5-4-4-1-amd64/​php5-4-5-4-4-1-amd64.deb</​code>​ +D'​autres modules peuvent être installés individuellement via [[:APT]].
-<​code>​sudo dpkg -i php5-4-5-4-4-1-amd64.deb</​code>​+
  
 +==== Modules courants ====
  
-configurer+Voici une liste des modules les plus couramment utilisés :
  
-<​code>​sudo su +^ Nom ^ Paquet ^ Description ^ 
-cp /usr/local/src/php-5.4.4/php.ini-development ​/usr/local/apache2/​conf/​php.ini +| [[http://php.net/manual/fr/​book.curl.php|cURL]] | [[apt>php-curl]] | Support de [[wpfr>​cURL]],​ qui permet de se connecter et de communiquer avec d'​autres serveurs en HTTP, HTTPS, FTP, gopher, telnet, DICT, file ou LDAP
-sed -'s/^;\(date\.timezone\) =\s*$/\1 = "​Europe\/Paris"/g' /usr/local/apache2/conf/php.ini +| [[http://php.net/manual/fr/book.image.php|GD]] | [[apt>​php-gd]] | Outil de traitement d'images. | 
-sed -'s/​^\(memory_limit\) = .*$/\1 = 256M/g' ​/usr/local/​apache2/​conf/php.ini +| [[http://php.net/manual/fr/book.intl.php|intl]] | [[apt>​php-intl]] | Fonctions d'internationalisation. | 
-sed -i 's/^\(post_max_size\.*$/\1 = 32M/g' ​/usr/local/apache2/conf/php.ini +| [[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]]
-sed -i 's/^\(upload_max_filesize\) = .*$/\1 = 32M/g' ​/usr/local/apache2/conf/php.ini +| [[http://php.net/manual/fr/book.mcrypt.php|Mcrypt]] | [[apt>​php-mbstring]] | Implémente des algorithmes de chiffrementCe 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]]. | 
-sed -i 's/^\(max_execution_time\) = .*$/\1 = 3600/g' ​/usr/local/apache2/conf/php.ini +| [[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| 
-sed -'s/​^\(max_input_time\) = .*$/\1 = 7200/g' ​/usr/local/​apache2/​conf/php.ini +| [[http://php.net/manual/fr/book.xml.php|XML]] | [[apt>​php-xml]] | Analyseur syntaxique XML (permet à PHP de "​comprendre"​ du XML ou du HTML). | 
-cat > /usr/local/apache2/conf/extra/​httpd-php5.conf <<​EOF +| [[http://php.net/manual/fr/book.zip.php|Zip]] | [[apt>​php-zip]] | Offre la possibilité de lire et d'écrire des archives compressées ZIP, et d'​accéder aux fichiers et dossiers ​s'y trouvant
-+| [[http://php.net/manual/fr/book.imagick.php|ImageMagick]] | [[apt>​php-imagick]] | Outil de traitement d'​images| 
-# This next section will call PHP for .php, .phtmland .phps files +| [[http://php.net/manual/fr/book.imap.php|IMAP]] | [[apt>​php-imap]] | Implémentations des protocoles IMAPNNTPet POP3 pour les [[:​courriel|courriels]]| 
-+| [[http://php.net/manual/​fr/​book.apcu.php|APCu]] | [[apt>php-apcu]] | Fournit des fonctionnalités supplémentaires au système de cache implémenté nativement dans PHP ([[#​OPcache]])|
-AddType application/x-httpd-php .php +
-AddType application/x-httpd-php ​.phtml +
-AddType application/​x-httpd-php-source ​.phps+
  
-+==== Association avec un serveur de base de données ====
-# This is the directory containing php.ini +
-+
-PHPIniDir "/​usr/​local/​apache2/​conf"​ +
-EOF +
-echo Include conf/​extra/​httpd-php5.conf >> /​usr/​local/​apache2/​conf/​httpd.conf+
  
-echo LoadModule php5_module ​modules/libphp5.so >> /​usr/​local/​apache2/​conf/​httpd.conf +PHP permet de se connecter à différents types de serveurs de base de données. Pour cela il est également nécessaire d'​installer des modules ​complémentaires. 
-sed -i 's/​DirectoryIndex index.html/​DirectoryIndex index.html index.cgi index.pl index.php index.xhtml/​g' ​/​usr/​local/​apache2/​conf/​httpd.conf +<note important>Il est important de souligner que l'installation d'un de ces modules PHP est indépendante de l'​installation du serveur de base de données correspondant ​(hormis SQLite), ces serveurs n'​étant pas nécessairement déployés localement.</note>
-rm -f /​var/​www/​index.html +
-cat > /​var/​www/​index.php <<​EOF +
-<?php phpinfo(); ?> +
-EOF +
-/etc/init.d/apache2 restart +
-exit +
-</code>+
  
-attention la désinstallation de php 5.4 et imposible +^ Nom ^ Paquet ^ Description ^ 
-==== Installation minimale ==== +| [[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]] | 
-Pour installer la version 5 de PHP (dernière version stable), il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] suivant:\\ +[[http://php.net/​manual/​fr/​book.pgsql.php|PostgreSQL]] | [[apt>​php-pgsql]] | support de [[:​postgresql|PostgreSQL]] | 
-[[apt://php5|php5]]\\ +| [[http://​php.net/​manual/​fr/​book.sqlite.php|SQLite]] | [[apt>​php-sqlite]] | support ​de [[:sqlite|SQLite]] 
-Via les dépendances,​ l'​installation ​de ce paquet entraînera l'​installation du serveur HTTP [[:apache2|Apache 2]].+| [[http://​php.net/​manual/​fr/​set.mongodb.php|MongoDB]] | [[apt>​php-mongodb]] | support de [[:​MongoDB]] |
  
-<​note>​ +==== Lister les modules ​====
-[[:​apache2|Apache 2]] est fournit par défaut avec PHP. +
-Vous pouvez également, si vous le souhaitez, utiliser un autre serveur HTTP (ex.  [[:nginx]], [[:​lighttpd]],​ etc... ).\\ +
-PHP 5.4 incorpore son propre serveur HTTP utilisable dans un environnement de développement.  +
-</​note>​ +
-==== Association avec un serveur de base de données ​==== +
-PHP permet de se connecter à différents types de serveurs de base de données. Il est cependant nécessaire d'​installer des modules complémentaires. +
-<note important>​Il est important de souligner que l'​installation d'un de ces modules PHP est indépendant de l'​installation du serveur de base de données correspondant.</​note>​+
  
 +Vous pouvez lister la plupart des modules PHP disponibles dans les dépôts officiels avec la commande
 +<​code>​apt list php-\*</​code>​
 +
 +Vous pouvez lister les modules installés sur votre système grâce à la commande
 +<​code>​php -m</​code>​
 +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 //​[[http://​php.net/​manual/​fr/​function.phpinfo.php|phpinfo()]]//​ vous montrera les modules activés sur votre serveur web.
 +
 +===== Configuration =====
 +
 +La configuration de PHP se fait via un fichier //​php.ini//​.
 +
 +Pour le [[:​apache2#​mod_php|module PHP d'​Apache]],​ le chemin d'​accès au fichier //php.ini// sera généralement :
 +  * sous [[:Trusty]] (Ubuntu 14.04) : **/​etc/​php5/​apache2/​php.ini**\\
 +  * sous [[:Xenial]] (Ubuntu 16.04) : **/​etc/​php/​7.0/​apache2/​php.ini**
 +  * sous [[:Bionic]] (Ubuntu 18.04) : **/​etc/​php/​7.2/​apache2/​php.ini**
 +
 +Les fichiers de configuration ne sont pas les mêmes pour utiliser PHP en ligne de commande : **/​etc/​php/​7.0/​cli/​php.ini**\\
 +ou en script [[http://​php.net/​manual/​fr/​install.fpm.php|FastCGI]] : **/​etc/​php/​7.0/​fpm/​php.ini**\\
 +
 +Ceci explique parfois des différences de comportement entre PHP exécuté par Apache, et manuellement en ligne de commande.
 +
 +==== Activer le rapport d'​erreur =====
 +
 +Si vous développez une application en local, il est souvent utile de visualiser les messages d'​erreurs directement sur votre page web. Ces erreurs sont cependant généralement aussi accessibles dans le journal d'​erreur du serveur HTTP (//​[[:​apache2#​problemes_courants|/​var/​log/​apache2/​error.log]]//​ pour [[:​apache2|Apache]]).
 +
 +Pour afficher les erreurs, avec Apache vous pouvez par exemple définir des règles dans un fichier //​[[:​apache2#​.htaccess]]//​ à la racine de votre [[:​apache2#​hotes_virtuels|hôte virtuel]] :
 +
 +<file - .htaccess>​php_flag display_errors on
 +php_value error_reporting "​E_ALL"</​file>​
 +
 +//​[[http://​php.net/​manual/​fr/​function.error-reporting.php|error_reporting]]//​ définit le niveau d'​erreur que vous souhaitez afficher.
 +
 +Le niveau d'​erreur E_ALL affiche **toutes** les erreurs, y compris celles concernant des fonctionnalités dépréciées (qui seront désactivées dans des versions futures de PHP) ou des erreurs strictes, qu'on n'a pas forcément envie de corriger.\\
 +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>​
 +
 +
 +Les directives //​display_errors//​ et //​error_reporting//​ sont aussi accessibles pour définir l'​affichage des erreurs globalement,​ directement dans votre fichier //​php.ini//​.\\
 +Pour PHP 7.0 :
 +<file - /​etc/​php/​7.0/​apache2/​php.ini>​...
 +display_errors=on
 +error_reporting=E_ALL & ~E_NOTICE & ~E_STRICT
 +...</​file>​
 +
 +==== Désactiver le rapport d'​erreur =====
 +
 +Pour un site en production, mieux vaut désactiver l'​affichage des erreurs et se référer uniquement au log d'​erreur du serveur HTTP :
 +<file - .htaccess>​php_flag display_errors off</​file>​
 +
 +==== OPcache ====
 +
 +[[http://​php.net/​manual/​fr/​book.opcache.php|OPcache]] était à la base un module permettant d'​implémenter des fonctionnalités de cache à PHP, ce qui permet d'​accélérer l'​execution des scripts et d'​alléger leur charge côté serveur.\\ ​
 +Il est désormais intégré nativement à PHP depuis la version 5.5.
 +
 +OPcache est activé par défaut sur Ubuntu.
 +
 +===== 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>​
  
-=== Support de MySQL === +==== Page blanche ====
-Le support de [[:​mysql|MySQL]] par PHP 5 se fait via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]]:​\\ +
-[[apt://​php5-mysql|php5-mysql]]+
  
-<note tip>Un serveur associant **L**inux, **A**pache, **M**ySQL et **P**HP ​est généralement appelé [[:​lamp|serveur "​LAMP"​]].</​note>​+Une page blanche inattendue affichée immédiatement indique très certainement que l'​affichage des retours d'​erreur sur la page n'est pas activé.
  
 +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é.
  
-=== Support de PostgreSQL ​=== +==== Code source visible dans le navigateur ====
-Le support de [[:​postgresql|PostgreSQL]] par PHP 5 se fait via [[:​tutoriel:​comment_installer_un_paquet|l'​installation du paquet]]:​\\ +
-[[apt://​php5-pgsql|php5-pgsql]]+
  
-<note tip>​Un ​serveur ​associant **L**inux**A**pache, **P**ostgreSQL ​et **P**HP est généralement ​appelé serveur "​LAPP"​.</​note>​+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 texte, et le navigateur cherche ​généralement ​à l'​interpréter comme du HTML, puisque 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.
  
-=== Support de SQLite === +Si vous utilisez ​[[:apache2#​mod_php|PHP en tant que module d'​Apache]] : 
-Le support de [[:sqlite|SQLite]] par PHP 5 se fait via [[:tutoriel:​comment_installer_un_paquet|l'​installation du paquet]]:\\ +  * vérifiez ​l'​installation du paquet ​[[apt>​libapache2-mod-php]] 
-[[apt://​php5-sqlite|php5-sqlite]]+  * si 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 ====
  
-=== Support ​de Sybase / MS SQL server === +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]]).\\ 
-Le support de Sybase / MS SQL server ​par PHP 5 se fait via [[:​tutoriel:​comment_installer_un_paquet|l'​installation ​du paquet]]:​\\ +Cela peut par ex. rendre des modules de PHP inaccessibles alors qu'ils semblent bien installés.
-[[apt://​php5-sybase|php5-sybase]]+
  
-==== Installation des modules complémentaires ==== +Vous pouvez vérifier cela avec cette commande : 
-Voir la page dédiée aux [[:modules_php|modules PHP]]. FIXME+<​code>​apt list php\* | grep install</​code>​ 
 +Si vous voyez apparaître plusieurs versions de PHP, par ex. //php7.0//, //php7.2// 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]]) puis réinstallez les paquets absents si nécessaire ([[apt>​libapache2-mod-php]], etc).
  
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * **(en)** [[http://​www.php.net/​|Site officiel]]+  * **(en)** [[http://​www.php.net/​|site officiel]] 
 +  * [[http://​php.net/​manual/​fr/​|documentation officielle]] 
 +  * [[https://​www.youtube.com/​watch?​v=US9JCsnAVTU|vidéo expliquant en quoi PHP est différent des autres langages de programmation]]
  
 +//​Contributeurs : [[utilisateurs:​krodelabestiole]]//​
  • php.1368023469.txt.gz
  • Dernière modification: Le 08/05/2013, 16:31
  • par 109.28.132.11