PHP-7.4.2

Introduction à PHP

PHP est le PHP Hypertext Preprocessor. Utilisé à l'origine sur des sites Internet dynamiques, il permet au code d'être directement embarqué dans la balise HTML. Il sert aussi de langage de script généraliste.

Ce paquet est connu pour se construire correctement sur une plateforme LFS-9.1.

Informations sur le paquet

  • Téléchargement (HTTP) : http://www.php.net/distributions/php-7.4.2.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 du téléchargement : 49a6e2bafa7134386e1b54c6b1c41ed5

  • Taille du téléchargement : 9.8 Mo

  • Estimation de l'espace disque requis : 514 Mo (plus 2 Mo pour les tests, plus 112 Mo pour la documentation)

  • Estimation du temps de construction : 1.6 SBU (avec parallélisme = 4, plus 1.9 SBU pour les tests)

Téléchargements supplémentaires

Dépendances de PHP

Recommandées

Outils et bibliothèques systèmes facultatifs

Aspell-0.60.8, enchant-2.2.7, libxslt-1.1.34, un MTA (qui fournit la commande sendmail), PCRE-8.44, Pth-2.0.7, AppArmor, Dmalloc, Net-SNMP, oniguruma, OSSP mm, re2c et XMLRPC-EPI

Outils et bibliothèques graphiques facultatifs

FreeType-2.10.1, libexif-0.6.21, libjpeg-turbo-2.0.4, libpng-1.6.37, LibTIFF-4.1.0, Système X Window, FDF Toolkit, GD et t1lib

Outils Internet facultatifs

cURL-7.68.0, tidy-html5-5.6.0, Caudium, Hyperwave, mnoGoSearch, Roxen WebServer et WDDX

Outils et bibliothèques de gestion de données facultatifs

Berkeley DB-5.3.28 (Remarquez que PHP ne supporte pas officiellement les versions supérieures à 5.3), libiodbc-3.52.12, lmdb-0.9.24, MariaDB-10.4.12 ou MySQL, OpenLDAP-2.4.49, PostgreSQL-12.2, SQLite-3.31.1, unixODBC-2.3.7, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase, IBM DB2, Mini SQL, Monetra et QDBM

PHP fournit aussi un support pour de nombreux outils commerciaux de base de données tels que Oracle, SAP et ODBC Router.

Outils et bibliothèques de sécurité/chiffrement Facultatifs

Cyrus SASL-2.1.27, MIT Kerberos V5-1.18, libmcrypt et mhash

Notes utilisateur : http://wiki.linuxfromscratch.org/blfs/wiki/php

Installation de PHP

Vous pouvez utiliser PHP pour faire des scripts côté serveur, des scripts en ligne de commande ou des applications graphiques côté client. Ce livre fournit des instructions pour paramétrer PHP pour faire des scripts côté serveur car c'est sa forme la plus courante

[Note]

Note

PHP dispose de beaucoup plus d'options configure qui activeront le support de divers éléments. Vous pouvez utiliser ./configure --help pour voir une liste complète des options disponibles. En outre, l'utilisation du site Internet de PHP est fortement recommandée vu que leur documentation en ligne sont très bonnes. Vous pouvez trouver un exemple d'une commande configure qui utilise beaucoup d'éléments parmi les dépendances les plus courantes sur http://anduin.linuxfromscratch.org/BLFS/files/php_configure.txt.

Si, pour une raison quelconque, vous n'avez pas installé libxml2-2.9.10, vous devez ajouter --disable-libxml à la commande configure dans les instructions ci-dessous. Remarquez que cela empêchera la commande pear d'être construite.

Installez PHP en lançant les commandes suivantes :

./configure --prefix=/usr                \
            --sysconfdir=/etc            \
            --localstatedir=/var         \
            --datadir=/usr/share/php     \
            --mandir=/usr/share/man      \
            --enable-fpm                 \
            --without-pear               \
            --with-fpm-user=apache       \
            --with-fpm-group=apache      \
            --with-fpm-systemd           \
            --with-config-file-path=/etc \
            --with-zlib                  \
            --enable-bcmath              \
            --with-bz2                   \
            --enable-calendar            \
            --enable-dba=shared          \
            --with-gdbm                  \
            --with-gmp                   \
            --enable-ftp                 \
            --with-gettext               \
            --enable-mbstring            \
            --disable-mbregex            \
            --with-readline              &&
make

Pour tester les résultats lancez : make test. Several tests (out of over 11900) may fail, in which case you are asked whether you want to send the report to the PHP developers. If you want to automate the test, you may prefix the command with yes "n" | .

Maintenant, en tant qu'utilisateur root :

make install                                     &&
install -v -m644 php.ini-production /etc/php.ini &&

install -v -m755 -d /usr/share/doc/php-7.4.2 &&
install -v -m644    CODING_STANDARDS* EXTENSIONS NEWS README* UPGRADING* \
                    /usr/share/doc/php-7.4.2

Les fichiers de configurations par défaut pour le gestionnaire de processus fastCGI sont installés seulement s'ils n'existaient pas déjà sur le système. Si c'est la première installation, ils doivent être renommés, en tant qu'utilisateur root :

if [ -f /etc/php-fpm.conf.default ]; then
  mv -v /etc/php-fpm.conf{.default,} &&
  mv -v /etc/php-fpm.d/www.conf{.default,}
fi

La documentation HTML pré-compilée est emballée sous deux formes : une archive tar contenant beaucoup de fichiers individuels, utiles pour être chargés rapidement dans votre navigateur, et un gros fichier individuel, qui est utile pour une utilisation de l'outil de recherche de votre navigateur. Si vous avez téléchargé un des deux ou les deux fichiers de documentation, exécutez les commandes suivantes en tant qu'utilisateur root pour les installer (remarquez que ces instructions supposent des docs en anglais, modifiez le nom des archives tar ci-dessous si nécessaire).

Pour le fichier « HTML unique » :

install -v -m644 ../php_manual_en.html.gz \
    /usr/share/doc/php-7.4.2 &&
gunzip -v /usr/share/doc/php-7.4.2/php_manual_en.html.gz

Pour les fichiers « HTML multiples » :

tar -xvf ../php_manual_en.tar.gz \
    -C /usr/share/doc/php-7.4.2 --no-same-owner

L'exécutable pear inclus n'est pas installé à cause d'un bogue qui peut polluer le système de fichier avec plusieurs fichiers et répertoires cachés. Si vous avez besoin de pear, exécutez les commandes suivantes pour l'installer :

wget http://pear.php.net/go-pear.phar
php ./go-pear.phar

Explication des commandes

--datadir=/usr/share/php : Ceci contourne un bogue dans le processus de construction qui installe quelques données au mauvais endroit.

--enable-fpm : Ce paramètre permet de construire le gestionnaire de processus fastCGI.

--with-fpm-systemd : Ce paramètre permet au gestionnaire de processus fastCGI de s'intégrer avec systemd.

--without-pear : Ce paramètre désactive l'installation du logiciel pear inclus.

--with-config-file-path=/etc : Ce paramètre amène PHP à chercher le fichier de configuration php.ini dans /etc.

--with-zlib : Ce paramètre ajoute le support pour la compression Zlib.

--enable-bcmath : Active les fonctions mathématiques précises dans le style de bc.

--with-bz2 : Ajoute le support pour les fonctions de compression de Bzip2.

--enable-calendar : Ce paramètre offre un support pour la conversion de calendrier.

--enable-dba=shared : Ce paramètre active le support pour les fonctions de la couche d'abstraction de base de données dans le style dbm.

--enable-ftp : Ce paramètre active les fonctions FTP.

--with-gettext : Active les fonctions qui utilisent la traduction de texte Gettext.

--enable-mbstring : Ce paramètre active le support des chaînes multi-octets.

--with-readline : Ce paramètre active le support Readline en ligne de commande.

--disable-libxml : Cette option permet de construire PHP sans que libxml2 ne soit installé.

--with-apxs2 : au lieu de construire le gestionnaire de processus fastCGI, il est possible de construire un module apache. Cela pénalise un peu les performances pour des serveurs fortement chargés, mais peut être plus facile à initialiser. Ce paramètre est incompatible avec --enable-fpm et --with-fpm-....

--with-mysqli=shared : Cette option inclut le support de MySQLi.

--with-mysql-sock=/run/mysqld/mysqld.sock : Localisation du pointeur de socket unix de MySQL.

--with-pdo-mysql=shared : Cette option active le support de PDO: MySQL.

--with-tidy=shared : Cette option inclut le support de la bibliothèque tidy.

Configuration de PHP

Fichiers de configuration

/etc/php.ini, /etc/pear.conf, /etc/php-fpm.conf et /etc/php-fpm.d/www.conf

Informations sur la configuration

Le fichier utilisé en tant que fichier de configuration /etc/php.ini par défaut est recommandé par l'équipe de développement de PHP. Ce fichier modifie le comportement par défaut de PHP. Si vous n'utilisez pas /etc/php.ini, tous les paramètres de configuration retombent sur ceux par défaut. Vous devriez observer les commentaires dans ce fichier et vous assurer que les modifications sont acceptables pour votre environnement particulier.

Le gestionnaire de taches fastCGI utilise le fichier de configuration /etc/php-fpm.conf. Le fichier par défaut fourni avec PHP inclus tous les /etc/php-fpm.d/*.conf. Il y a de fourni le fichier /etc/php-fpm.d/www.conf, qui contient les paramètres pour l'interaction avec le serveur web Apache.

Il se peut que vous ayez noté ceci dans la sortie de la commande make install :

You may want to add: /usr/lib/php to your php.ini include_path

Si désiré, ajoutez l'entrée en utilisant la commande suivante en tant qu'utilisateur root :

sed -i 's@php/includes"@&\ninclude_path = ".:/usr/lib/php"@' \
    /etc/php.ini

Pour activer le support fastCGI dans un serveur web Apache, deux directives de chargement LoadModule doivent être ajoutées dans le fichier httpd.conf. Elles sont commentées, donc il suffit de taper la commande suivante en tant qu'utilisateur root :

sed -i -e '/proxy_module/s/^#//'      \
       -e '/proxy_fcgi_module/s/^#//' \
       /etc/httpd/httpd.conf

Ces modules acceptent différentes directives ProxyPass. Une possibilité est (en tant qu'utilisateur root) :

echo \
'ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/srv/www/$1' >> \
/etc/httpd/httpd.conf

En outre, il peut être utile d'ajouter une entrée pour index.php à la ligne DirectoryIndex du fichier httpd.conf. Enfin, l'ajout d'une ligne pour paramétrer l'extension .phps pour montrer les sources PHP en surlignage peut être désirable :

AddType application/x-httpd-php-source .phps

Vous devrez redémarrer le serveur web Apache après avoir apporté une modification au fichier httpd.conf.

Unité Systemd

Pour démarrer le démon php-fpm au démarrage, installez l'unité systemd depuis le paquet blfs-systemd-units-20191026 en lançant la commande suivante en tant qu'utilisateur root :

make install-php-fpm

Contenu

Programmes installés: pear, peardev, pecl, phar (symlink), phar.phar, php, php-cgi, php-config, php-fpm, phpdbg et phpize
Bibliothèques installées: dba.{so,a} et opcache.{so,a} dans /usr/lib/php/extensions/no-debug-non-zts-20180731
Répertoires installés: /etc/php-fpm.d, /usr/{include,lib,share}/php et /usr/share/doc/php-7.4.2

Descriptions courtes

php

est une interface en ligne de commande qui vous permet d'analyser et d'exécuter du code PHP.

pear

est l'extension PHP et le gestionnaire de paquet PHP Extension and Application Repository (PEAR, dépôt des extensions et des applications PHP). Il n'est pas installé par défaut.

php-fpm

est le gestionnaire de processus fastCGI pour PHP.

phpdbg

est le débogueur PHP interactif.

Last updated on 2020-02-19 17:47:37 +0100