今天,给大家分享一下解决源码包编译安装 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功能成功解决!