Centos7 下 PHP 添加缺少的組件 sockets 和 openssl


環境是 centos7 + nginx 1.14 + php 7.2.18,由於新增郵件發送功能,使用的是 socket 通訊的方式,需要開啟 php 的 sockes 和 openssl 擴展

安裝 sockets 組件

進入源碼目錄中待操作的組件子目錄,並執行 phpize 工具

不刪解壓后的源碼是個好事!使用 cd 命令進入源碼目錄/ext/sockets 目錄,在該目錄下運行命令

$ /usr/local/php/bin/phpize

注:/usr/local/php/bin 是php的安裝目錄,在該目錄下應該有 phpize 可執行文件存在

錯誤應對

如果出現 "Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment vari",則執行以下命令補齊缺失的功能

$ yum install m4
$ yum install autoconf

如果出現 "Cannot find config.m4." ,則將該目錄下的 config0.m4 復制並改名到同目錄內

$ cp config0.m4 config.m4

再重新運行 phpize

使用 ./configure 進行具體配置

使用命令對要安裝的插件進行具體配置,以 sockets 安裝為例,運行以下命令

$ ./configure --prefix=/usr/local/php --with-php-config=/usr/local/php/bin/php-config --enable-sockets

注:/usr/local/php是 PHP 安裝后的默認目錄,/usr/local/php/bin/php-config 也是默認

運行 make && make install

如無錯誤,繼續運行

$ make && make install

如無錯誤,以下是部分輸出結果

Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files:          /usr/local/php/include/php/

說明 sockets 擴展源碼經過編譯編程擴展后,安裝在了第一行的目錄內

修改 PHP.ini 配置,啟用擴展

修改 php.ini,默認可以不更改 extension_dir='./' 的值,而只是去掉 extension=sockets 前面的分號注釋,使其生效。保存后,重新啟動 php-fpm (假設php-fpm在安裝后的默認路徑下)

$ /etc/init.d/php-fpm reload

查看結果

運行 phpinfo() 函數,在輸出頁面查看是否有 sockets 的獨立顯示,並且 Sockets Support 的值為 enabled

安裝 Openssl 組件

與安裝 sockets 步驟相同,區別是在使用 ./configure 時的語句,不完全一樣,使用

$ ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config

其它步驟相同


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM