php添加openssl擴展


在一次使用composer安裝laravel框架時,系統提示沒有開啟openssl支持,
之后再php.ini中開啟了openssl但是還是不行,后來運行phpinfo()才發現
根本就沒有安裝openssl擴展,使用php -i查看編譯php時的選項,確實沒有
添加--with-openssl,如果重新編譯php又覺得很麻煩,后來網上找資料,發現
可以不用重新編譯php也能添加擴展模塊。

以下就是這次為php添加openssl模塊的筆記,覺得這個方法確實很方便,所以有必要
記錄一下

系統環境:
php 7.1.9

php安裝路徑:
/usr/local/php


第一步:找到與已安裝php版本相同的源代碼包,(使用php --version查看php版本)
如果之前有源代碼包,直接解壓,沒有網上下載相同版本后再解壓。
使用命令:tar -zxvf xxxx.tar.gz

第二步:進入解壓后的目錄,會看到一個ext的目錄,進入該目錄,其中有一個openssl目錄,如下圖所示

第三步:進入openssl目錄,執行如下命令

 1 [root@localhost openssl]# /usr/local/php/bin/phpize   //視自己的安裝環境而定,找到自己已安裝php中的phpize
 2 Cannot find config.m4.                               //提示找不到config.m4文件,執行如下mv操作
 3 Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
 4 
 5 [root@localhost openssl]# ls
 6 config0.m4  config.w32  CREDITS  openssl.c  openssl.mak  php_openssl.h  README  tests  xp_ssl.c
 7 [root@localhost openssl]# mv config0.m4 config.m4       //將目錄中的config0.m4直接改名為config.m4
 8 [root@localhost openssl]# /usr/local/php/bin/phpize     //再執行一次
 9 Configuring for:
10 PHP Api Version:         20160303
11 Zend Module Api No:      20160303
12 Zend Extension Api No:   320160303

第四步:執行完上面的步驟后,會看到openssl目錄中生成了configure文件,如下圖

接着執行如下命令即可:

 1 [root@localhost openssl]# ./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
 2 checking for grep that handles long lines and -e... /bin/grep
 3 checking for egrep... /bin/grep -E
 4 checking for a sed that does not truncate output... /bin/sed
 5 checking for cc... cc
 6 checking for C compiler default output file name... a.out
 7 ...
 8 ...     //此處省略部分執行過程
 9 
10 
11 //configure完后,接着make編譯,部分代碼如下:
12 [root@localhost openssl]# make
13 /bin/sh /usr/src/lamp/php-7.1.9/ext/openssl/libtool --mode=compile cc  -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DPHP_ATOM_INC -I/usr/src/lamp/php-7.1.9/ext/openssl/include -I/usr/src/lamp/php-7.1.9/ext/openssl/main -I/usr/src/lamp/php-7.1.9/ext/openssl -I/usr/local/php/include/php -I/usr/local/php/include/php/main -I/usr/local/php/include/php/TSRM -I/usr/local/php/include/php/Zend -I/usr/local/php/include/php/ext -I/usr/local/php/include/php/ext/date/lib  -DHAVE_CONFIG_H  -g -O2   -c /usr/src/lamp/php-7.1.9/ext/openssl/openssl.c -o openssl.lo
14 mkdir .libs
15  cc -I. -I/usr/src/lamp/php-7.1.9/ext/openssl -DP
16 ...
17 ...    //此處省略部分執行過程
18 
19 //make編譯過程完后,執行make install 安裝過程
20 [root@localhost openssl]# make install
21 Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20160303/    //生成的openssl.so文件的目錄位置,視自己php環境而定

第五步:編輯php.ini文件

vim /usr/local/php/etc/php.ini
//開啟extension_dir選項,並指定擴展文件存放目錄
//配置文件中默認如下所示
;extension_dir='./'
//開啟並配置如下所示
extension_dir='/usr/local/php/etc/extension'   //自己指定

如下圖所示

第六步:將第四步中openssl.so文件拷貝到第五步中extension_dir指定的目錄中,如下圖所示

第七步:編輯php.ini文件,開啟openssl擴展,在php.ini文件末尾添加如下代碼

1 extension=openssl.so

保存並退出,重啟apache,測試如下圖所示表示成功


免責聲明!

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



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