真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP8.0源碼編譯安裝以及JIT嘗鮮

奇技指南

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供仁壽網(wǎng)站建設(shè)、仁壽做網(wǎng)站、仁壽網(wǎng)站設(shè)計、仁壽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、仁壽企業(yè)網(wǎng)站模板建站服務(wù),10多年仁壽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

PHP 8.0 Alpha 1 已經(jīng)在2020年6月25號發(fā)布了,今天給大家分享一篇最簡化的 PHP 8 源碼編譯安裝方法,快速嘗鮮 PHP 8.0 的新特性 JIT。

操作系統(tǒng):CentOS Linux release 7.4.1708 (Core)

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、新建安裝目錄

由于本機(jī)有多個 PHP 版本并存,需要新建一個富有意義的目錄,一個不假思索就能知曉 PHP 版本的目錄名稱。

mkdir -p /usr/local/php80

5、configure options

這是一個精簡版配置選項,更加豐富的 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 過程中,遇到提示 configure: error,留意看下方的錯誤詳細(xì)信息。以下 列出了在配置過程中出現(xiàn)的錯誤情況之關(guān)鍵信息摘要,未列舉到的其它錯誤情況,解決方 法如出一轍:

Error #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

Error #2:

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

解決方法:

yum install sqlite-devel.x86_64

如果看到以下提示信息,說明 configure 這步已經(jīng)成功啦。

6、編譯&安裝

make

make 階段消耗的時間與機(jī)器配置有關(guān)喲,若看到以下信息,說明 make 階段已經(jīng)完成 了。

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、環(huán)境配置

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

這里省略掉了 Nginx 配置詳情,主要是為了快速測試安裝的 PHP-FPM 模式是可用的。

// index.php 
curl localhost 
string(11) "8.0.0alpha1" 
int(80000)

12、嘗鮮新特性 JIT

機(jī)器配置:8核16G,SATA盤,操作系統(tǒng):CentOS Linux release 7.4.1708 (Core)

Zend OPCache(/usr/local/php80/etc/php.ini)配置如下,[opcache] 配置項大部分都 有默認(rèn)值,為了突顯這些配置項的重要性還是列舉了出來:

; 加載 Zend OPCache 擴(kuò)展 
zend_extension=opcache 
; 啟用 Zend OPCache 
opcache.enable=1 
; 啟用 Zend OPCache,在 CLI 模式下 
opcache.enable_cli=1
 ; OPCache 共享內(nèi)存存儲大小,默認(rèn)值 128 
 opcache.memory_consumption=128 
 ; interned string 內(nèi)存大小,默認(rèn)值 8 
 opcache.interned_strings_buffer=8 
 ; 緩存腳本文件數(shù)量的上限,默認(rèn)值 10000 
 opcache.max_accelerated_files=10000 
; 10秒檢查一次文件的更新,默認(rèn)值 2s 
opcache.revalidate_freq=10 
; 刪除所有 PHPDoc 注釋,默認(rèn)值 1,表示保留注釋 
opcache.save_comments=0

這是一臺資源空閑的虛擬機(jī),重復(fù)多次開啟 JIT、關(guān)閉 JIT 測試結(jié)果觀察,結(jié)果值幾乎無什 么變化。測試結(jié)果也沒有特意去挑選其中一次最漂亮的數(shù)據(jù),實際上也沒這個必要。如下 圖所示:

13、總結(jié)

這是一個通用性 PHP 源碼編譯安裝方法,其它 PHP 版本編譯安裝方式類似,實際業(yè)務(wù)運 用中 configure options 要豐富的多,需要安裝的類庫也會更加全面。這篇文章中,測試 了 PHP 8 的新特性 JIT,依據(jù) Zend/bench.php 測試結(jié)果看,還是讓大家眼前一亮的。關(guān) 于 PHP 8 JIT 介紹,推薦《PHP8新特性JIT使用簡介》。

推薦文章:《PHP8.0》


當(dāng)前題目:PHP8.0源碼編譯安裝以及JIT嘗鮮
文章起源:http://weahome.cn/article/cpjpgg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部