本篇內(nèi)容主要講解“l(fā)inux如何安裝php thread擴(kuò)展”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“l(fā)inux如何安裝php thread擴(kuò)展”吧!
創(chuàng)新互聯(lián)公司2013年至今,先為彭州等服務(wù)建站,彭州等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為彭州企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
linux安裝php thread擴(kuò)展的方法:1、在lnmp安裝目錄中找到lnmp.conf文件;2、在“PHP_Modules_Options”里添加“--enable-maintainer-zts”;3、編譯pthreads即可。
本文操作環(huán)境:Ubuntu 16.04系統(tǒng)、PHP7.1版、DELL G3電腦
linux怎么安裝php thread擴(kuò)展?
Ubuntu 下 PHP 安裝 pthreads 擴(kuò)展:
pthreads 是一個(gè)PHP使用多線程的擴(kuò)展。這里就不再過(guò)多介紹了,相信既然都已經(jīng)做過(guò)了解,不了解直接看文檔吧。
文檔地址:https://www.php.net/manual/zh/book.pthreads.php
這里就講講安裝過(guò)程吧,有些曲折,也查閱了很多資料,才正式安裝上。寫(xiě)出來(lái)自己做個(gè)記錄,也給后來(lái)的朋友一個(gè)參考少踩一些坑。
Ubuntu 16.04 LTS
Lnmp 1.4 - - 相信很多人都在用這個(gè)
pthreads 源碼
這里需要注意,這個(gè)擴(kuò)展通過(guò) pecl install pthreads 是安裝不成功的。需要自己下載源碼編譯安裝并且,只能從 GitHub 主干分支上下載。其它的源碼貌似都有問(wèn)題,我就最開(kāi)始就是從 http://pecl.php.net 下載,但是編譯老是失敗。后來(lái)查詢資料說(shuō)是有問(wèn)題。需要從 GitHub 下載才行。
GitHub: https://github.com/krakjoe/pthreads
默認(rèn)大家都是已經(jīng)將 lnmp 環(huán)境安裝好的,還沒(méi)安裝好的話,請(qǐng)出門(mén)左轉(zhuǎn) Google 一下。
因 pthreads 需要PHP已線程安全的方式運(yùn)行,所以在編譯PHP的時(shí)候需要加上 --enable-maintainer-zts 但是 lnmp 集成包默認(rèn)是線程不安全的。
這里到你的 lnmp 安裝目錄,找到一個(gè) lnmp.conf 文件
在 PHP_Modules_Options 里添加 --enable-maintainer-zts 就是我截圖一樣。
新裝環(huán)境,直接按照 lnmp 的按照流程一步步按照就好。安裝完成之后php 就是線程安全的了。
已安裝好的lnmp 環(huán)境這里我們可以使用 lnmp 提供的升級(jí)腳本,將php升級(jí)一下(PS:腳本沒(méi)有檢測(cè)當(dāng)前版本號(hào),如果我們輸入當(dāng)前的版本號(hào),就是重新安裝PHP)操作完成。
** 手動(dòng)編譯PHP ** 進(jìn)入 lnmp1.4-full/src 目錄(根據(jù)自己的實(shí)際情況),我的目錄在 /home/src/lnmp1.4-full/src 看看有沒(méi)有php 的壓縮包,如果沒(méi)有自己下載一個(gè)
sudo wget http://cn2.php.net/distributions/php-7.0.20.tar.bz2 tar -jxvf php-7.0.20.tar.bz2
注:地址可以自己去php官網(wǎng)獲取,我這里給出的,是當(dāng)前可用的。
繼續(xù):
./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 里面摘出來(lái)的,大家可以自己去研究一下。
打開(kāi)phpinfo();
確認(rèn) Thread Safety 是 enabled 狀態(tài).
將 pthreads 源碼包放到 php 源碼的 ext 目錄,我的目錄在:lnmp1.4-full\src\php-7.0.19\ext [根據(jù)自己情況調(diào)整]
進(jìn)入 pthreads 目錄
phpize ./configure --with-php-config=/usr/local/php/bin/php-config make sudo make install
php-config 路徑根據(jù)自身情況調(diào)整。如果用的是 lnmp 默認(rèn)的話,就是這了
執(zhí)行到這里就應(yīng)該會(huì)出現(xiàn) 提示 pthreads.so 編譯成功的提示。如果沒(méi)有,請(qǐng)檢查之前的步驟。
網(wǎng)上一般的教程到此處之后就會(huì)說(shuō):將 pthreads.so 加入php.ini 文件重啟 php-fpm 就完事了。
此處是一坑。你如果直接加入 php.ini 會(huì)發(fā)現(xiàn)php-fpm 啟動(dòng)不了了,提示無(wú)法加載 pthreads.so
正確的姿勢(shì):
將 php.ini 復(fù)制一份 命名 php-cli.ini
將 pthreads.so 放到 php.cli.ini 里面
然后 php -m | grep pthreads 看看是不是已經(jīng)出現(xiàn)了。
到這里才能算是完成了。
注意: pthreads不要在生產(chǎn)環(huán)境用有bug,自己玩玩,跑跑命令行任務(wù)可以。通過(guò)最后的安裝你也發(fā)現(xiàn)了,只能通過(guò) cli 方式運(yùn)行。哈哈哈哈。
最后提示一下,windows 安裝 pthreads 包里面有很多 demo 可以看。
到此,相信大家對(duì)“l(fā)inux如何安裝php thread擴(kuò)展”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!