PHP-7.0.10
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.
This package is known to build and work properly using an LFS-7.10
platform.
Informations sur le paquet
-
Téléchargement (HTTP) : http://www.php.net/distributions/php-7.0.10.tar.xz
-
Téléchargement (FTP) :
-
Somme de contrôle MD5 du téléchargement :
6f087f16514b6c442e8009a5828827b7
-
Taille du téléchargement : 14.8 Mo
-
Estimation de l'espace disque requis : 573 Mo (avec les
tests). Ajouter 103 Mo pour la documentation
-
Estimation du temps de construction : 4.0 SBU (6.1 SBU
avec les tests)
Téléchargements supplémentaires
Dépendances de PHP
Recommandées
Apache-2.4.23 et libxml2-2.9.4
Outils et bibliothèques systèmes facultatifs
Aspell-0.60.6.1, enchant-1.6.0, libxslt-1.1.29, un MTA
(qui fournit la commande sendmail), PCRE-8.39, Pth-2.0.7, Dmalloc, Net-SNMP, OSSP mm, re2c et XMLRPC-EPI
Outils et bibliothèques graphiques facultatifs
FreeType-2.6.5, libexif-0.6.21, libjpeg-turbo-1.5.0, libpng-1.6.24,
LibTIFF-4.0.6, Système X
Window, FDF
Toolkit, GD et
t1lib
Outils Internet facultatifs
cURL-7.50.1, tidy-html5-5.2.0,
Caudium, Hyperwave,
mnoGoSearch, Roxen WebServer
et WDDX
Outils et bibliothèques de gestion de données facultatifs
Berkeley DB-6.2.23 (Notez que PHP ne
supporte pas officiellement les versions supérieures à 5.3),
MariaDB-10.1.16 ou MySQL, OpenLDAP-2.4.44, PostgreSQL-9.5.4, SQLite-3.14.1,
unixODBC-2.3.4, Adabas, Birdstep, cdb, DBMaker, Empress, FrontBase,
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
OpenSSL-1.0.2h, Cyrus
SASL-2.1.26, MIT Kerberos V5-1.14.3,
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
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.4, vous devez ajouter
--disable-libxml
à la commande
configure dans les
instructions ci-dessous. Remarquez que cela empêchera la commande
pear d'être
construite.
Si vous souhaitez construire PHP
avec la bibliothèque tidy-html5, à
cause de changements de l'API, dans les sources de PHP, l'en-tête buffio.h
doit être changé en tidybuffio.h
dans le fichier ext/tidy/tidy.c
:
sed -i 's/buffio.h/tidy&/' ext/tidy/tidy.c
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 \
--with-fpm-user=apache \
--with-fpm-group=apache \
--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 \
--with-readline &&
make
Pour tester les résultats lancez : make test. A few tests may fail,
in which case you are asked whether you want to send the report to
the PHP developpers. 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 &&
mv -v /etc/php-fpm.conf{.default,} &&
install -v -m755 -d /usr/share/doc/php-7.0.10 &&
install -v -m644 CODING_STANDARDS EXTENSIONS INSTALL NEWS README* UPGRADING* php.gif \
/usr/share/doc/php-7.0.10 &&
ln -v -sfn /usr/lib/php/doc/Archive_Tar/docs/Archive_Tar.txt \
/usr/share/doc/php-7.0.10 &&
ln -v -sfn /usr/lib/php/doc/Structures_Graph/docs \
/usr/share/doc/php-7.0.10
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.0.10 &&
gunzip -v /usr/share/doc/php-7.0.10/php_manual_en.html.gz
Pour les fichiers « HTML
multiples » :
tar -xvf ../php_manual_en.tar.gz \
-C /usr/share/doc/php-7.0.10 --no-same-owner
Explication des commandes
--with-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-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
Sans le fichier /etc/php-fpm.d/www.conf
, le gestionnaire de
processus ne démarre pas. Cependant, c’est le fichier
/etc/php-fpm.d/www.conf.default
qui
a été installé. Pour résoudre ce problème, entrez en tant
qu'utilisateur root
:
cp -v /etc/php-fpm.d/www.conf.default /etc/php-fpm.d/www.conf
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.
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
.
Script de démarrage
Pour automatiquement démarrer le démon php-fpm quand le système est
redémarré, installez le script de démarrage /etc/rc.d/init.d/php
depuis le paquet blfs-bootscripts-20160902 en tant
qu'utilisateur root
:
make install-php
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-20151012
Répertoires installés:
/etc/php-fpm.d,
/usr/{include,lib,share}/php et
/usr/share/doc/php-7.0.10
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).
|
php-fpm
|
est le gestionnaire de processus fastCGI pour PHP.
|
phpdbg
|
est le débogueur PHP interactif.
|
Last updated on 2016-08-28 18:01:38 +0200