pthreads php 安裝全過程 二

2022-09-14 17:06:15 字數 3884 閱讀 4937

因為pthreads是需要開啟執行緒安全的,預設是不開啟的,所以需要重新進行編譯

首先獲取我們的configure配置

`php -i | grep configure`
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()檔案即可

wget -c 

或者git clone

進入到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

官方文件:

php7 擴充套件安裝pthread:

php版本公升級:從php7.1公升級到php7.2 :

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 -vphpinfo不一致的問題

分析:php -v是有全域性變數決定的,可以檢視/usr/local/php7.2/bin/(這是我的php版本位置),bin下有phpphpize

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都可以,現在基本上就是你想要的版本咯

參考文章: 

我感覺心態已經蹦了,總結了安裝pthreads中有個錯誤要點,我是嘗試學習php中的程序管理的, 所以才安裝他, 但是在安裝過程中,到了make的時候大多數時候報了錯誤。

盡量選擇github最新版,pthreads 3.1.6只支援php7.2, 注意。 我建議重新配置一台伺服器重新開始編譯php,並開啟程序安全, 編譯的時候增加'--enable-maintainer-zts' '--enable-pthreads'即可

當然,還是會出現各種各樣的問題,因為有些問題,以為現在的水平我無法進行定位,例如全部安裝完成,目錄引用正確,按 照官方例項一模一樣,可以使還是 `php -m`的時候沒有顯示載入, 對於這方面的原理性問題,我能力不足。

不過好處在於,重新學習了一下編譯php、nginx配置設定等等,在伺服器端之間進行操作,對個人的能力也有很大的提公升吧。 也了解到了間接的了解到了cli 、fpm等一系列的原理性問題,雖然不多,但依舊是成長。 身邊也沒有好的擅長這方面的前輩,提問也沒人回答,一切只能自己慢慢摸索了。

pthreads php 安裝全過程

pthreads 是一組允許使用者在 php 中使用多執行緒技術的物件導向的 api。它提供了建立多執行緒應用所需的全套工具。通過使用 thread,worker 以及 threaded 物件,php 應用可以建立 讀取 寫入以及執行多執行緒應用,並可以在多個執行緒之間進行同步控制。tip 建議使用...

bugzilla安裝全過程

安裝bugzilla將近搞了一天,主要問題停留在apache的設定上,是在有點冤枉.2.解開壓縮包,放在目標目錄,比如 bugzila 3.cd bugzilla perl checksetup.pl 就會有一堆的檢測資訊,告訴你什麼perl模組檢測不到,需要安裝 特別提一下,安裝perl模組一般有...

nginx 安裝 全過程

至於 nginx 是神馬東西,就不說了,直接上過程,如下 tar zxvf pcre 8.01.tar.gz cd pcre 8.01 configure make make install 解壓 tar zxvf nginx 0.8.24.tar.gz cd nginx 0.8.24 配置安裝目錄...