在一次使用composer安裝laravel框架時,系統提示沒有開啓openssl支持,
以後再php.ini中開啓了openssl可是仍是不行,後來運行phpinfo()才發現
根本就沒有安裝openssl擴展,使用php -i查看編譯php時的選項,確實沒有
添加--with-openssl,若是從新編譯php又以爲很麻煩,後來網上找資料,發現
能夠不用從新編譯php也能添加擴展模塊。php
如下就是此次爲php添加openssl模塊的筆記,以爲這個方法確實很方便,因此有必要
記錄一下laravel
系統環境:
php 7.1.9apache
php安裝路徑:
/usr/local/phpvim
第一步:找到與已安裝php版本相同的源代碼包,(使用php --version查看php版本)
若是以前有源代碼包,直接解壓,沒有網上下載相同版本後再解壓。
使用命令:tar -zxvf xxxx.tar.gzcomposer
第二步:進入解壓後的目錄,會看到一個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文件,以下圖spa
接着執行以下命令便可:debug
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文件3d
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,測試以下圖所示表示成功