今天,給大家分享一下解決源碼包編譯安裝 LEMP 環境下開啟 OpenSSL 功能問題的過程。前幾天,在訪問頁面時,突然報錯,要求開啟 openssl 功能。那怎么辦呢,首先想到的是 yum 安裝,但是,安裝后還是沒解決,因為 LEMP 的環境是源碼包編譯安裝的,所以,還需要編譯安裝 openssl。
經過邪惡不懈的努力,終于找到了解決辦法,而且真的成功了,下面就給大家分享一下!
首先,要確保 LEMP 環境是源碼包編譯安裝的,并且要清楚 PHP 的安裝目錄在哪里。
其次,可以通過 yum 源的方式或者源碼包編譯安裝 OpenSSL、OpenSSL-devel 兩個包。
然后,進入到 PHP 解壓出來的目錄里面,我這里的目錄是 PHP-5.4.24。在 PHP 目錄下,會有一個 ext 的擴展目錄,進入里面,找到并進入 openssl 的目錄。這時,我們所在的目錄是:/root/php-5.4.24/ext/openssl
這個目錄下會有如下文件,看圖:

然后,執行 /usr/local/php5/bin/phpize 命令(在執行前要確保已安裝 m4 和 autoconf 兩個工具,否則會報錯)。
注意:這里是我的phpize路徑,根據自己的安裝路徑執行;如果找不到,使用 whereis phpize 查找。如果執行時報錯無法找到 config.m4 文件,那么就把目錄下面的 config0.m4 重命名 config.m4,因為 config0.m4就是config.m4 的模版。
如果命令成功執行完畢,那么目錄下面就會自動多出個 configure 文件,這時,只需要編譯安裝就行了。過程如下:
# ./configure --with-openssl --with-php-config=/usr/local/php5/bin/php-config
# make make install
耐心等候,安裝完成后,會在當前的modules目錄下面多出一個openssl.so文件;然后在php.ini配置文件最后面加上如下一行內容:
extension=openssl.so
然后,重啟nginx服務和php-fpm,就可以了!
至此,在源碼編譯安裝LNMP環境下開啟openssl功能成功解決!