Maison > développement back-end > PHP8 > le corps du texte

Compilation et installation du code source PHP 8.0 et adoption précoce de JIT

Guanhui
Libérer: 2023-02-17 11:28:01
avant
6051 Les gens l'ont consulté

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/
Copier après la connexion

2. Téléchargez PHP 8.0

wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz
Copier après la connexion

3. Décompressez

tar -zxvf php-8.0.0alpha1.tar.gz
Copier après la connexion

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
Copier après la connexion

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/
Copier après la connexion

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
Copier après la connexion

Solution :

yum install libxml2-devel.x86_64
Copier après la connexion

Erreur n°2 :

configure: error: Package requirements (sqlite3 > 3.7.4) were not met: 
No package 'sqlite3' found
Copier après la connexion

Solution :

yum install sqlite-devel.x86_64
Copier après la connexion

Si vous voyez le message d'invite suivant, cela signifie que l'étape de configuration a réussi.

Compilation et installation du code source PHP 8.0 et adoption précoce de JIT

6. Compilation et installation

 make
Copier après la connexion

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'.
Copier après la connexion

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/
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

9. 🎜>

Vérifiez si les éléments de configuration personnalisés prennent effet : --with-config-file-path, --with-config-file-scan-dir

php80 --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)
Copier après la connexion

10, Démarrez FPM

/etc/init.d/php80-fpm 
start Starting php-fpm  done
Copier après la connexion

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
Copier après la connexion

Les détails de configuration de Nginx sont omis ici, principalement pour tester rapidement si le mode PHP-FPM installé est disponible. de.

// index.php 
<?php 
var_dump(PHP_VERSION); 
var_dump(PHP_VERSION_ID);
Copier après la connexion
rrree

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)
Copier après la connexion
Il s'agit d'une machine virtuelle avec des ressources inactives. Après avoir activé et désactivé JIT à plusieurs reprises et observé les résultats des tests, il n'y a presque aucun changement dans la valeur du résultat. Les résultats des tests n’ont pas spécifiquement sélectionné les plus belles données. En fait, ce n’est pas nécessaire. Comme le montre la figure ci-dessous :

Compilation et installation du code source PHP 8.0 et adoption précoce de JIT

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal