pthreads php 安裝全過程(二)
編譯php

因為?pthreads?是需要開啟線程安全的,默認是不開啟的,所以需要重新進行編譯
首先獲取我們的configure配置
`php -i | grep configure`
下載 php :?https://www.php.net/downloads.php
tar -zxvf php7.2.tar.gz
cd php7.2
添加配置項開啟多進程安全?'--enable-maintainer-zts' '--enable-pthreads'
執行
./configure '--prefix=/usr/local/php7.2' '--with-config-file-path=/usr/local/php7.2' '--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' '--with-curl=/usr/local/curl' '--enable-mbregex' '--enable-mbstring' '--enable-intl' '--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' '--enable-maintainer-zts' '--enable-pthreads'
make
make install
配置php全局
cp /usr/local/php7.2/bin/php* /usr/bin
php -v 查看 php 版本
php -m 查看php配置加載項
php-fpm配置全局
cp /usr/local/php7.2/sbin/php-fpm /usr/local/sbin/php-fpm
開啟php-fpm
`systemctl satrt php-fpm.service` 或者 `service start php-fpm` 獲取 `sudo /usr/local/php7.2/sbin/php-fpm`
chkconfig php-fpm on // 設置開機自啟
: 域名站點自己配置, 建立一個輸出phpinfo()文件即可
pthreads 下載
wget -c https://github.com/krakjoe/pthreads/archive/master.zip
或者
git clone https://github.com/krakjoe/pthread
進入到 pthreads 中后進行編譯
`--with-php-config=/usr/local/php7.1/bin/php-config` 這是關聯的php版本編譯
phpize
./configure --with-php-config=/usr/local/php7.1/bin/php-config
make
make install
echo "extension=pthreads.so" >> /etc/php.ini 或者
echo "extension=pthreads.so" >> /usr/local/php7.2/php.ini
保持 /usr/local/php7.2/php.ini 和 /etc/php.ini 同步即可
存放?pthreads.so?我嘗試過很多種方法,不止上面兩種, 自己摸索一下也好
然后查看?php -m?是否加載?pthreads
官方文檔: https://www.php.net/manual/zh/book.pthreads.php
相關的文章
php7 擴展安裝pthread:?https://blog.51cto.com/quietnight/1765370
PHP版本升級:從php7.1升級到php7.2 :?https://my.oschina.net/wangyongtao/blog/1790863
相關的命令
systemctl restart php-fpm.service - 重啟php-fpm
systemctl restart nginx.service - 重啟nginx
netstat -nlpt | grep php-fpm - 查看php-fpm經常
php -i | grep configure - 獲取相關的配置加載項
ssh root@ip 鏈接服務器
版本不一致問題的解決
在使用是發現?php -v?和?phpinfo?不一致的問題
分析:?php -v?是有全局變量決定的,可以查看?/usr/local/php7.2/bin/?(這是我的php版本位置),?bin下有?php?和?phpize
phpinfo是由php-fpm決定的,位置在?/usr/local/php7.2/sbin/php-fpm
要解決版本不一致,我們首先?find / -name php-fpm?(尋找php-fpm的位置)
默認加載的php-fpm一般位于?/usr/local/sbin?目錄下,
我們執行當前版本的覆蓋老版本, cp?/usr/local/php7.2/sbin/php-fpm /usr/local/sbin/php-fpm
輸入?php -ef | grep php
kill -9進程號
然后?systemctl satrt php-fpm.service?或者?service start php-fpm?獲取?sudo /usr/local/sbin/php-fpm?都可以,現在基本上就是你想要的版本咯
參考文章:?https://blog.csdn.net/haif_city/article/details/81315372
總結
我感覺心態已經蹦了,總結了安裝pthreads中有個錯誤要點,我是嘗試學習php中的進程管理的, 所以才安裝他, 但是在安裝過程中,到了make的時候大多數時候報了錯誤。
盡量選擇github最新版,pthreads 3.1.6 只支持 php7.2, 注意。 我建議重新配置一臺服務器重新開始編譯php,并開啟進程安全, 編譯的時候增加 '--enable-maintainer-zts' '--enable-pthreads'?即可
當然,還是會出現各種各樣的問題,因為有些問題,以為現在的水平我無法進行定位,例如全部安裝完成,目錄引用正確,按 照官方實例一模一樣,可以使還是 `php -m`的時候沒有顯示加載, 對于這方面的原理性問題,我能力不足。
不過好處在于,重新學習了一下編譯php、nginx配置設置等等,在服務器端之間進行操作,對個人的能力也有很大的提升吧。 也了解到了間接的了解到了cli 、fpm等一系列的原理性問題,雖然不多,但依舊是成長。 身邊也沒有好的擅長這方面的前輩,提問也沒人回答,一切只能自己慢慢摸索了。
PHP 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。