(麻煩各位轉載請注明出處和地址:陶士涵的菜地 , 謝謝 --2020年6月28日)
所有操作需要在root用戶下
本機測試案例系統信息:ubuntu
安裝路徑:/usr/local/php8
解壓縮:
wget https://downloads.php.net/~pollita/php-8.0.0alpha1.tar.gz
tar -zxvf php-8.0.0alpha1.tar.gz
cd php-8.0.0alpha1/
編譯:
./configure --prefix=/usr/local/php8 \ --with-config-file-path=/usr/local/php8 \ --enable-mbstring \ --enable-ftp \ --enable-gd \ --enable-gd-jis-conv \ --enable-mysqlnd \ --enable-pdo \ --enable-sockets \ --enable-fpm \ --enable-xml \ --enable-soap \ --enable-pcntl \ --enable-cli \ --with-openssl \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-pear \ --with-zlib \ --with-iconv \ --with-curl \
make && make install
有依賴錯誤的,需要搜索解決一下
復制配置文件:
cp php.ini-production /usr/local/php8/php.ini
打開錯誤:
vim /usr/local/php8/php.ini
display_errors = On
復制fpm的啟動腳本:
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm8.0
增加執行權限
chmod +x /etc/init.d/php-fpm8.0
修改php-fpm配置文件:
cd /usr/local/php8/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
去掉 pid = run/php-fpm.pid 前面的分號
修改啟動用戶:
user = www-data
group = www-data
修改監聽端口:
listen = 127.0.0.1:9080
配置nginx:
server { listen 80; server_name test.sopans.com; access_log /var/log/nginx/test.sopans.com.access.log main; root /var/www/html/test; index index.html index.htm index.php; location ~ \.php { fastcgi_pass 127.0.0.1:9080; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # fastcgi_split_path_info ^(.+\.php)(/.*)$; # fastcgi_param PATH_INFO $fastcgi_path_info; include fastcgi_params; } }
啟動fpm
/etc/init.d/php-fpm8.0 start
訪問:
因為jit是綁定在opcache擴展里面的 , 所以需要編譯安裝opcache擴展
[PHP] php8的jit不支持32位系統WARNING: JIT not supported by host architecture
查看使用的哪一個配置文件
PHP8的JIT機制優化了zend引擎處理執行opcode的流程 , 不需要每次都解釋執行 , 直接執行opcode編譯成的機器碼