Guide fantastique
PHP 8.0 Alpha 1 est sorti le 25 juin 2020. Aujourd'hui, je vais partager avec vous la compilation de code source PHP 8 la plus simplifiée et méthode d'installation pour essayer rapidement la nouvelle fonctionnalité JIT de PHP 8.0.
Système d'exploitation : CentOS Linux version 7.4.1708 (Core)
GCC : 4.8.5 20150623 (Red Hat 4.8.5-28 )
Version PHP : php-8.0.0alpha1
Page de téléchargement
https://downloads.php.net/~pollita/
2. Téléchargez PHP 8.0
wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz
3. Décompressez
tar -zxvf php-8.0.0alpha1.tar.gz
4. Créez un nouveau répertoire d'installation
.Comme il y a plusieurs versions de PHP coexistant sur cette machine, il est nécessaire de créer un répertoire significatif, un nom de répertoire qui permette de connaître la version de PHP sans réfléchir.
mkdir -p /usr/local/php80
5. configurer les options
Il s'agit d'une version simplifiée des options de configuration, avec une description plus riche des options de configuration PHP : https://www.php.net /manual /en/configure.about.php
cd php-8.0.0alpha1 ./configure --prefix=/usr/local/php80/ --enable-debug --enable-fpm --with-config-file-path=/usr/local/php80/etc/ --with-config-file-scandir=/usr/local/php80/etc/php.d/
Si vous rencontrez l'invite configure: error pendant le processus de configuration, faites attention aux détails de l'erreur ci-dessous. Ce qui suit répertorie un résumé des informations clés sur les conditions d'erreur qui se produisent pendant le processus de configuration. Pour les autres conditions d'erreur non répertoriées, les solutions sont les mêmes :
Erreur n° 1 :
configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package 'libxml-2.0' found
Solution :
yum install libxml2-devel.x86_64
Erreur n°2 :
configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package 'sqlite3' found
Solution :
yum install sqlite-devel.x86_64
Si vous voyez le message d'invite suivant, cela signifie que l'étape de configuration a réussi.
6. Compilation et installation
make
Le temps consommé dans la phase de création est lié à la configuration de la machine Si vous voyez. les informations suivantes indiquent que la phase de création est terminée.
Build complete. Don't forget to run 'make test'.
make test Puisqu'il s'agit d'un des premiers utilisateurs, cette étape est omise pour l'instant.
make install exit 0; -v -d /home/fanjiapeng/php-8.0.0alpha1/Zend/zend_ini_parser.y -o /home/fanjiapeng/php-8.0.0alpha1/Zend/zend_ini_parser.c Installing shared extensions: /usr/local/php80/lib/php/extensions/debugnon-zts-20190128/ Installing PHP CLI binary: /usr/local/php80/bin/ Installing PHP CLI man page: /usr/local/php80/php/man/man1/ Installing PHP FPM binary: /usr/local/php80/sbin/ Installing PHP FPM defconfig: /usr/local/php80/etc/ Installing PHP FPM man page: /usr/local/php80/php/man/man8/ Installing PHP FPM status page: /usr/local/php80/php/php/fpm/ Installing phpdbg binary: /usr/local/php80/bin/ Installing phpdbg man page: /usr/local/php80/php/man/man1/ Installing PHP CGI binary: /usr/local/php80/bin/ Installing PHP CGI man page: /usr/local/php80/php/man/man1/ Installing build environment: /usr/local/php80/lib/php/build/ Installing header files: /usr/local/php80/include/php/ Installing helper programs: /usr/local/php80/bin/ program: phpize program: php-config Installing man pages: /usr/local/php80/php/man/man1/ page: phpize.1 page: php-config.1 /home/fanjiapeng/php-8.0.0alpha1/build/shtool install -c ext/phar/phar.phar /usr/local/php80/bin/phar.phar ln -s -f phar.phar /usr/local/php80/bin/phar Installing PDO headers: /usr/local/php80/include/php/ext/pdo/
7. Vérifiez PHP
/usr/local/php80/bin/php -v PHP 8.0.0alpha1 (cli) (built: Jul 2 2020 15:47:26) ( NTS DEBUG ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
8. Configuration de l'environnement
ln -s /usr/local/php80/bin/php /usr/bin/php80 cp php.ini-development /usr/local/php80/etc/php.ini cp /usr/local/php80/etc/php-fpm.conf.default /usr/local/php80/etc/phpfpm.conf cp /usr/local/php80/etc/php-fpm.d/www.conf.default /usr/local/php80/etc/php-fpm.d/www.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php80-fp chmod +x /etc/init.d/php80-fpm
9. 🎜>
Vérifiez si les éléments de configuration personnalisés prennent effet : --with-config-file-path, --with-config-file-scan-dirphp80 --ini Configuration File (php.ini) Path: /usr/local/php80/etc/ Loaded Configuration File: /usr/local/php80/etc/php.ini Scan for additional .ini files in: /usr/local/php80/etc/php.d/ Additional .ini files parsed: (none)
10, Démarrez FPM
/etc/init.d/php80-fpm start Starting php-fpm done
11. Vérifiez FPM
ps aux | grep php-fpm root 26876 0.0 0.0 52084 2828 ? Ss Jul02 0:14 php-fpm: master process (/usr/local/php80/etc/php-fpm.conf) nobody 26877 0.0 0.0 52084 3648 ? S Jul02 0:00 php-fpm: pool www nobody 26878 0.0 0.0 52084 3624 ? S Jul02 0:00 php-fpm: pool www /etc/init.d/php80-fpm -h Usage: /etc/init.d/php80-fpm {start|stop|forcequit|restart|reload|status|configtest} /etc/init.d/php80-fpm status php-fpm (pid 26876) is running... /etc/init.d/php80-fpm configtest [06-Jul-2020 11:06:42] NOTICE: configuration file /usr/local/php80/etc/php fpm.conf test is successful
// index.php <?php var_dump(PHP_VERSION); var_dump(PHP_VERSION_ID);
12. Essayez les nouvelles fonctionnalités JIT
Configuration de la machine : 8 cœurs 16G, disque SATA, système d'exploitation : CentOS Linux version 7.4.1708 (Core)Zend OPCache (/usr/local/php80/etc/php.ini) est configuré comme suit La plupart des éléments de configuration [opcache] ont des valeurs par défaut. Afin de souligner l'importance de ces éléments de configuration, ils sont. répertorié :
curl localhost string(11) "8.0.0alpha1" int(80000)
13.Résumé
Il s'agit d'une méthode universelle de compilation et d'installation du code source PHP. Les versions PHP peuvent être compilées. La méthode d'installation est similaire. Dans les applications métier réelles, les options de configuration sont beaucoup plus riches et les bibliothèques de classes à installer seront plus complètes. Dans cet article, la nouvelle fonctionnalité JIT de PHP 8 est testée. D'après les résultats des tests de Zend/bench.php, elle est toujours accrocheuse. Concernant l'introduction de PHP 8 JIT, nous vous recommandons "Introduction à l'utilisation de JIT, la nouvelle fonctionnalité de PHP8".
Article recommandé : "PHP8.0"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!