Heim  >  Artikel  >  Backend-Entwicklung  >  Kompilierung und Installation des PHP 8.0-Quellcodes und JIT-Early Adopter

Kompilierung und Installation des PHP 8.0-Quellcodes und JIT-Early Adopter

Guanhui
Guanhuinach vorne
2020-07-10 14:56:316054Durchsuche

Fantastischer Leitfaden

PHP 8.0 Alpha 1 wurde am 25. Juni 2020 veröffentlicht. Heute werde ich mit Ihnen die einfachste Kompilierung des PHP 8-Quellcodes teilen und Installationsmethode, um das neue Feature JIT von PHP 8.0 schnell auszuprobieren.

  • Betriebssystem: CentOS Linux Version 7.4.1708 (Core)

  • GCC: 4.8.5 20150623 (Red Hat 4.8.5-28 )

  • PHP-Version: php-8.0.0alpha1

1. Download-Seite

https://downloads.php.net/~pollita/

2. PHP 8.0 herunterladen

wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz

3. Entpacken

tar -zxvf php-8.0.0alpha1.tar.gz

Da auf diesem Computer mehrere PHP-Versionen gleichzeitig vorhanden sind, ist es notwendig, ein aussagekräftiges Verzeichnis zu erstellen, einen Verzeichnisnamen, der bekannt ist, ohne über die PHP-Version nachzudenken.

 mkdir -p /usr/local/php80

5. Konfigurationsoptionen

Dies ist eine optimierte Version der Konfigurationsoptionen, eine ausführlichere Beschreibung der PHP-Konfigurationsoptionen: https://www.php.net/ Handbuch /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/

Wenn Sie während des Konfigurationsvorgangs auf den Fehler „configure:“ stoßen, beachten Sie die folgenden Fehlerdetails. Im Folgenden finden Sie eine Zusammenfassung der wichtigsten Informationen zu Fehlerbedingungen, die während des Konfigurationsprozesses auftreten. Für andere, nicht aufgeführte Fehlerbedingungen sind die Lösungen dieselben:

Fehler Nr. 1:

configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: 
No package 'libxml-2.0' found

Lösung:

yum install libxml2-devel.x86_64

Fehler Nr. 2:

configure: error: Package requirements (sqlite3 > 3.7.4) were not met: 
No package 'sqlite3' found

Lösung:

yum install sqlite-devel.x86_64

Wenn Sie die folgende Eingabeaufforderung sehen, bedeutet dies, dass der Konfigurationsschritt erfolgreich war.

Kompilierung und Installation des PHP 8.0-Quellcodes und JIT-Early Adopter

6. Kompilierung und Installation

 make
Die in der Erstellungsphase verbrauchte Zeit hängt von der Maschinenkonfiguration ab Die folgenden Informationen zeigen an, dass die Herstellungsphase abgeschlossen wurde.

Build complete. 
Don't forget to run 'make test'.

Test durchführen Da es sich um einen Early Adopter handelt, entfällt dieser Schritt vorerst.

 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/

PHP überprüfen

8. Umgebungskonfiguration

/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

9 🎜>

Überprüfen Sie, ob die benutzerdefinierten Konfigurationselemente wirksam werden: --with-config-file-path, --with-config-file-scan-dir

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
10, FPM starten

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)

11. FPM überprüfen

/etc/init.d/php80-fpm 
start Starting php-fpm  done

Die Nginx-Konfigurationsdetails werden hier weggelassen, hauptsächlich um schnell zu testen, ob der installierte PHP-FPM-Modus verfügbar ist von.

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
rrree12. Probieren Sie neue JIT-Funktionen aus

Maschinenkonfiguration: 8-Core 16G, SATA-Festplatte, Betriebssystem: CentOS Linux Release 7.4.1708 (Core)

Zend OPCache (/usr/local/php80/etc/php.ini) ist wie folgt konfiguriert. Die meisten [opcache]-Konfigurationselemente haben Standardwerte aufgelistet:

// index.php 
<?php 
var_dump(PHP_VERSION); 
var_dump(PHP_VERSION_ID);

Dies ist eine virtuelle Maschine mit ungenutzten Ressourcen. Nach mehrmaligem Ein- und Ausschalten von JIT zeigen die Testergebnisse, dass sich der Ergebniswert fast nicht ändert. Die Testergebnisse haben nicht speziell die schönsten Daten ausgewählt. Tatsächlich besteht keine Notwendigkeit. Wie in der Abbildung unten gezeigt:

13. Zusammenfassung

Kompilierung und Installation des PHP 8.0-Quellcodes und JIT-Early Adopter

Dies ist eine allgemeine PHP-Quellcode-Kompilierungs- und Installationsmethode PHP-Versionen können ähnlich kompiliert werden. In tatsächlichen Geschäftsanwendungen sind die Konfigurationsoptionen viel umfangreicher und die zu installierenden Klassenbibliotheken sind umfangreicher. In diesem Artikel wird das neue Feature JIT von PHP 8 getestet. Den Testergebnissen von Zend/bench.php zufolge ist es immer noch ein Hingucker. Bezüglich der Einführung von PHP 8 JIT empfehlen wir „

Einführung in die Verwendung von JIT, dem neuen Feature von PHP8“.

Empfohlener Artikel: „PHP8.0

Das obige ist der detaillierte Inhalt vonKompilierung und Installation des PHP 8.0-Quellcodes und JIT-Early Adopter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen