openssl編譯linux
① 在Linux的LEMP環境下配置OpenSSL的教程
今天,給大家分享一下解決源碼包編譯安裝 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
耐心等候,安裝完成後,會在當前的moles目錄下面多出一個openssl.so文件;然後在php.ini配置文件最後面加上如下一行內容:
復制代碼代碼如下:extension=openssl.so然後,重啟nginx服務和php-fpm,就可以了!
至此,在源碼編譯安裝LNMP環境下開啟openssl功能成功解決!
② Linux中安裝SSL協議依賴庫OpenSSL的教程
0.由一個錯誤引入
復制代碼
代碼如下:
fatal error: openssl/aes.h: No such file or directory如果你在編譯時遇到這個錯誤,這可能是下面的原因:你嘗試編譯的程序使用OpenSSL,但是需要和OpenSSL鏈接的文件(庫和頭文件)在你Linux平台上缺少。
要解決這個問題,你需要安裝OpenSSL 開發包,這在所有的現代Linux發行版的標准軟體倉庫中都有。
要在Debian、Ubuntu或者其他衍生版上安裝OpenSSL:
復制代碼
代碼如下:
$ sudo apt-get install libssl-dev要在Fedora、CentOS或者RHEL上安裝OpenSSL開發包:
復制代碼
代碼如下:
$ sudo yum install openssl-devel下面我們再來看一下下載壓縮包自己安裝的方式:
1. 下載
復制代碼
代碼如下:
# wget ftp://ftp.openssl.org/source/openssl-1.0.1g.tar.gz# tar openssl-1.0.1g.tar.gz
# cd openssl-1.0.1g
2. 確認和安裝
復制代碼
代碼如下:
# ./config shared zlib# make
# make install
3. 連接
復制代碼
代碼如下:
# mv /usr/bin/openssl /usr/bin/openssl.OFF# mv /usr/include/openssl /usr/include/openssl.OFF
# ln s /usr/local/ssl/bin/openssl /usr/bin/openssl
# ln s /usr/local/ssl/include/openssl /usr/include/openssl
# echo "/usr/local/ssl/lib" /etc/ld.so.conf
# ldconfig -v
4. 驗證
復制代碼
代碼如下:
openssl version