Maison développement back-end PHP8 Compilation et installation du code source PHP 8.0 et adoption précoce de JIT

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

Jul 10, 2020 pm 02:56 PM
jit php8

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre php5 et php8 Quelle est la différence entre php5 et php8 Sep 25, 2023 pm 01:34 PM

Les différences entre php5 et php8 concernent les performances, la structure du langage, le système de types, la gestion des erreurs, la programmation asynchrone, les fonctions de bibliothèque standard et la sécurité. Introduction détaillée : 1. Amélioration des performances. Par rapport à PHP5, PHP8 présente une énorme amélioration des performances. PHP8 introduit un compilateur JIT, qui peut compiler et optimiser certains codes d'exécution à haute fréquence, améliorant ainsi la vitesse d'exécution. PHP8 introduit de nouvelles structures et fonctions de langage. PHP8 prend en charge les paramètres nommés, permettant aux développeurs de transmettre les noms des paramètres au lieu de l'ordre des paramètres, etc.

Comment ajouter une extension MySQL à PHP8 Comment ajouter une extension MySQL à PHP8 Oct 07, 2023 pm 03:31 PM

Les étapes pour ajouter l'extension MySQL à PHP8 sont : 1. Installez la bibliothèque client MySQL ; 2. Installez les outils de développement pour PHP 8 ; 3. Téléchargez le code source de l'extension MySQL ; 4. Compilez et installez l'extension MySQL ; Extension MySQL ; 6. Redémarrez Juste un serveur Web.

Explication graphique détaillée de la méthode d'installation et de configuration d'Apache2.4+php8.0 Explication graphique détaillée de la méthode d'installation et de configuration d'Apache2.4+php8.0 Dec 06, 2022 pm 04:53 PM

Cet article vous présentera comment installer Apache2.4 et comment configurer php8.0. L'article est accompagné d'images et d'étapes détaillées. Voyons comment installer et configurer Apache2.4+php8.0~.

Comment se connecter à la base de données en php8 Comment se connecter à la base de données en php8 Nov 16, 2023 pm 02:41 PM

PHP8 peut utiliser mysqli et PDO pour se connecter à la base de données. Introduction détaillée : 1. Utilisez mysqli pour vous connecter à la base de données en transmettant le nom du serveur de base de données, le nom d'utilisateur, le mot de passe et le nom de la base de données pour vous connecter. Ensuite, utilisez l'attribut `connect_error` pour vérifier si la connexion réussit et affichez un message d'erreur si la connexion échoue. Enfin, fermez la connexion en appelant la méthode `close()` ; 2. Utilisez PDO pour vous connecter à la base de données, et connectez-vous en passant le nom du serveur de base de données, le mot de passe et le nom de la base de données, etc.

Comment convertir les types de données php8 Comment convertir les types de données php8 Nov 16, 2023 pm 02:51 PM

Les méthodes du type de données php8 incluent la conversion d'une chaîne en entier, la conversion d'un entier en chaîne, la conversion d'une chaîne en nombre à virgule flottante, la conversion d'un nombre à virgule flottante en chaîne, la conversion d'un tableau en chaîne, la conversion d'une chaîne en tableau, la conversion d'une valeur booléenne en entier, la conversion d'un entier en Détermination et conversion de valeurs booléennes et de types de variables. Introduction détaillée : 1. La conversion d'une chaîne en un entier inclut la fonction intval() et la conversion de type forcée (int) ; 2. La conversion d'un entier en chaîne inclut la fonction strval() et la conversion de type forcée (string) ; une chaîne à un flotteur Points et ainsi de suite.

Un examen approfondi de JIT dans PHP 8 Un examen approfondi de JIT dans PHP 8 Apr 25, 2022 pm 08:46 PM

Cet article vous guidera à travers le JIT dans PHP 8 et expliquera comment JIT participe au processus d'interprétation. J'espère qu'il sera utile à tout le monde !

Quelles améliorations de performances apporte php8 ? Quelles améliorations de performances apporte php8 ? Dec 21, 2023 pm 02:44 PM

Les performances améliorées de php8 incluent : 1. Introduction du compilateur JIT ; 2. Optimisation des appels de fonctions ; 3. Amélioration du mécanisme de récupération de place ; 4. Amélioration du système de types ; 6. Optimisation du traitement des chaînes ; . Améliorer le traitement des tableaux ; 8. Introduire un nouveau mécanisme de gestion de la mémoire ; 9. Optimiser la génération de code. Introduction détaillée : 1. L'introduction du compilateur JIT PHP8 introduit le compilateur JIT, qui est une technologie de compilation dynamique qui peut convertir le code PHP en code machine pour une exécution plus efficace ;

Améliorez la vitesse d'exécution du code : découvrez la technologie JIT de PHP8 Améliorez la vitesse d'exécution du code : découvrez la technologie JIT de PHP8 Jan 26, 2024 am 10:06 AM

Débloquez la technologie JIT de PHP8 : optimisez la vitesse d'exécution de votre code Avec la sortie de PHP8 fin 2020, l'une des nouvelles fonctionnalités les plus intéressantes est l'introduction de la technologie de compilateur JIT (Just-in-Time). La technologie JIT peut améliorer considérablement la vitesse d'exécution du code PHP, en particulier des fragments de code comportant des calculs et des boucles intensifs. Dans cet article, nous explorerons comment utiliser la technologie JIT de PHP8 pour optimiser la vitesse d'exécution du code, tout en fournissant quelques exemples de code spécifiques. 1. Qu'est-ce qu'un compilateur JIT ? J.

See all articles