PHP 8.0 ソース コードのコンパイルとインストール、および JIT の早期採用者

Guanhui
リリース: 2023-02-17 11:28:01
転載
6050 人が閲覧しました

スペシャル スキル ガイド

PHP 8.0 Alpha 1 は、2020 年 6 月 25 日にリリースされました。今日は、最も単純化された PHP 8 ソース コードを共有します。 PHP 8.0 の新機能 JIT をすぐに試すためのコンパイルおよびインストール方法。

  • オペレーティング システム: CentOS Linux リリース 7.4.1708 (コア)

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

  • PHP バージョン: php-8.0.0alpha1

1. ダウンロード ページ

https://downloads.php.net/~pollita/
ログイン後にコピー

2. PHP 8.0

wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz
ログイン後にコピー

3. 解凍します

tar -zxvf php-8.0.0alpha1.tar.gz
ログイン後にコピー

4. 新しいインストール ディレクトリを作成します

本マシン上では複数のPHPバージョンが混在しているため、PHPのバージョンを意識せずに分かるディレクトリ名という意味のあるディレクトリを作成する必要があります。

 mkdir -p /usr/local/php80
ログイン後にコピー

5. オプションの設定

これは、設定オプションの簡略化されたバージョンであり、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/
ログイン後にコピー

構成プロセス中にプロンプ​​ト「configure:」エラーが発生した場合は、以下のエラーの詳細に注意してください。以下に、構成プロセス中に発生するエラー状態に関する重要な情報の概要を示します。リストされていない他のエラー状態についても、解決策は同じです:

エラー #1:

configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: 
No package 'libxml-2.0' found
ログイン後にコピー

解決策:

yum install libxml2-devel.x86_64
ログイン後にコピー

エラー #2:

configure: error: Package requirements (sqlite3 > 3.7.4) were not met: 
No package 'sqlite3' found
ログイン後にコピー

解決策:

yum install sqlite-devel.x86_64
ログイン後にコピー

次のプロンプト メッセージが表示された場合は、構成手順が成功したことを意味します。

PHP 8.0 ソース コードのコンパイルとインストール、および JIT の早期採用者

6. コンパイルとインストール

 make
ログイン後にコピー

make フェーズで消費される時間は、マシンの構成に関連しています。次の情報は、作成フェーズが完了したことを示します。

Build complete. 
Don't forget to run 'make test'.
ログイン後にコピー

make test これは早期導入者であるため、この手順は省略されます。

 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. 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. 環境設定

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. 設定パスを確認します

カスタマイズされた構成項目が有効かどうかを確認します: --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)
ログイン後にコピー

10、 FPM

/etc/init.d/php80-fpm 
start Starting php-fpm  done
ログイン後にコピー

11 を開始します。 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
ログイン後にコピー

を確認します。主に、インストールされている PHP-FPM モードが利用可能かどうかを簡単にテストするために、Nginx 構成の詳細はここでは省略されています。の。

// index.php 
<?php 
var_dump(PHP_VERSION); 
var_dump(PHP_VERSION_ID);
ログイン後にコピー
curl localhost 
string(11) "8.0.0alpha1" 
int(80000)
ログイン後にコピー

12. 新機能をお試しください JIT

マシン構成: 8 コア 16G、SATA ディスク、オペレーティング システム: CentOS Linux リリース 7.4.1708 (コア)

Zend OPCache (/usr/local/php80/etc/php.ini) は次のように設定されています。ほとんどの [opcache] 設定項目にはデフォルト値があります。これらの設定項目の重要性を強調するために、それらは次のように設定されています。リスト:

; 加载 Zend OPCache 扩展 
zend_extension=opcache 
; 启用 Zend OPCache 
opcache.enable=1 
; 启用 Zend OPCache,在 CLI 模式下 
opcache.enable_cli=1
 ; OPCache 共享内存存储大小,默认值 128 
 opcache.memory_consumption=128 
 ; interned string 内存大小,默认值 8 
 opcache.interned_strings_buffer=8 
 ; 缓存脚本文件数量的上限,默认值 10000 
 opcache.max_accelerated_files=10000 
; 10秒检查一次文件的更新,默认值 2s 
opcache.revalidate_freq=10 
; 删除所有 PHPDoc 注释,默认值 1,表示保留注释 
opcache.save_comments=0
ログイン後にコピー

This is a virtual machine with idle resource. JIT のオンとオフを何度も繰り返した後のテスト結果は、結果の値にほとんど変化がないことを示しています。テスト結果は特に最も美しいデータを選択したわけではありません。以下の図に示すように:

PHP 8.0 ソース コードのコンパイルとインストール、および JIT の早期採用者

13. 概要

これは、一般的な PHP ソース コードのコンパイルとインストール方法です。 PHP バージョンはコンパイル可能 インストール方法は同様ですが、実際のビジネス アプリケーションでは設定オプションがさらに豊富になり、インストールする必要があるクラス ライブラリもより包括的になります。この記事では、PHP 8 の新機能 JIT をテストしますが、Zend/bench.php のテスト結果によると、依然として注目を集めています。 PHP 8 JIT の入門には、「PHP8 新機能 JIT の使い方入門 」をお勧めします。

おすすめ記事:「PHP8.0

以上がPHP 8.0 ソース コードのコンパイルとインストール、および JIT の早期採用者の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート