linux安裝php thread擴充的方法:1、在lnmp安裝目錄中找到lnmp.conf檔;2、在「PHP_Modules_Options」裡加入「--enable-maintainer-zts」;3、編譯pthreads即可。
本文操作環境:Ubuntu 16.04系統、PHP7.1版、DELL G3電腦
linux怎麼安裝php thread擴充?
Ubuntu 下 PHP 安裝 pthreads 擴充功能:
pthreads 是一個PHP使用多執行緒的擴充功能。這裡就不再太多介紹了,相信既然都已經做過了解,不了解直接看文件吧。
文件網址:https://www.php.net/manual/zh/book.pthreads.php
這裡就講安裝過程吧,有些曲折,也查閱了很多資料,才正式安裝上。寫出來自己做記錄,也給後來的朋友一個參考少踩一些坑。
這裡要注意,這個擴充功能透過pecl install pthreads 是安裝不成功的。需要自行下載原始碼編譯安裝並且,只能從 GitHub 主幹分支下載。其它的原始碼似乎都有問題,我就最開始就是從 http://pecl.php.net 下載,但編譯老是失敗。後來查詢資料說有問題。需要從 GitHub 下載才行。
GitHub: https://github.com/krakjoe/pthreads
預設大家都是已經將lnmp 環境安裝好的,還沒安裝好的話,請出門左轉Google 一下。
因 pthreads 需要PHP已執行緒安全的方式運行,所以在編譯PHP的時候需要加上 --enable-maintainer-zts 但是 lnmp 整合包預設是執行緒不安全的。
這裡到你的lnmp 安裝目錄,找到一個lnmp.conf 檔案
在PHP_Modules_Options 裡加入 --enable-maintainer-zts 就是我截圖一樣。
sudo wget http://cn2.php.net/distributions/php-7.0.20.tar.bz2 tar -jxvf php-7.0.20.tar.bz2
註:地址可以自己去php官網獲取,我這裡給出的,是目前可用的。
繼續:
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl --enable-maintainer-zts make sudo make install
這段程式碼是從 lnmp1.4-full/include/php.sh 裡面摘出來的,大家可以自己去研究一下。
開啟phpinfo();
確認Thread Safety 是enabled 狀態.
#將pthreads原始碼包放到php 原始碼的ext 目錄,我的目錄在:lnmp1.4-full\src\php-7.0.19\ext [根據自己狀況調整]
進入pthreads 目錄
phpize ./configure --with-php-config=/usr/local/php/bin/php-config make sudo make install
php-config 路徑依自身狀況調整。如果用的是 lnmp 預設的話,就是這了
執行到這裡就應該會出現 提示 pthreads.so 編譯成功的提示。如果沒有,請檢查先前的步驟。
網路上一般的教學到這裡之後就會說:將 pthreads.so 加入php.ini 檔案重新啟動 php-fpm 就完事了。
此處是一坑。你如果直接加入php.ini 會發現php-fpm 啟動不了了,提示無法載入pthreads.so
正確的姿勢:
將php.ini 複製一份命名php-cli.ini
將pthreads.so 放到php.cli.ini 裡面
然後php -m | grep pthreads 看看是不是已經出現了。
到這裡才能算是完成了。
注意: pthreads不要在生產環境用 有bug,自己玩玩,跑跑命令列任務可以。透過最後的安裝你也發現了,只能透過 cli 方式運作。哈哈哈哈。
最後提示一下,windows 安裝 pthreads 套件裡面有很多 demo 可以看。
windows 版本下載網址:https://windows.php.net/downloads/pecl/releases/pthreads/
建議學習:《PHP影片教學》
以上是linux怎麼安裝php thread擴充的詳細內容。更多資訊請關注PHP中文網其他相關文章!