首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用OpenSSL编译PHP7.2

用OpenSSL编译PHP7.2
EN

Stack Overflow用户
提问于 2018-04-26 21:49:57
回答 2查看 2.8K关注 0票数 3

我正在尝试在PHP 7.2.5操作系统上编译RedHat。我已经在我自己的OpenSSL 1.1.0h目录中自己编译了/home/user/openssl-1.1。以下是我编译OpenSSL的代码行

代码语言:javascript
代码运行次数:0
运行
复制
TARGET_DIR=/home/usr/openssl-1.1
# ...
./config no-shared --prefix=${TARGET_DIR} --openssldir=${TARGET_DIR}/conf
make INSTALL_PREFIX=${TARGET_DIR}
make install

现在,我希望将PHP 7.2.5与已编译的OpenSSL版本一起编译。我用这些台词来做:

代码语言:javascript
代码运行次数:0
运行
复制
PHP_PREFIX=/home/user/php-7.2
export OPENSSL_INCLUDE_DIR=/home/user/openssl-1.1/include/openssl
# ...
./buildconf --force
./configure --prefix="$PHP_PREFIX" \
        --enable-sockets \
        --enable-embed \
        --enable-com-dotnet \
        --enable-ctype \
        --with-curl \
        --enable-mbstring=static \
        --with-gd \
        --enable-soap \
        --enable-pdo=static \
        --with-mp \
        --with-curl=static \
        --with-openssl=static \
        --with-openssl-dir="/home/user/openssl-1.1"

但在某种程度上,我得到了这样的错误信息:

代码语言:javascript
代码运行次数:0
运行
复制
configure: error: Cannot find OpenSSL's <evp.h>

此文件evp.h存在于/home/user/openssl-1.1/include/openssl目录中。

有人知道如何解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-01 20:48:55

我为这个问题找到了一个解决方案:一个必须将两个参数--with-openssl--with-libdir更改为如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
./buildconf --force
./configure --prefix="$PHP_PREFIX" \
# ...
    --with-openssl=/home/user/openssl-1.1 \
    --with-libdir=lib64

如我所知,这里不需要其他环境变量。

票数 0
EN

Stack Overflow用户

发布于 2020-12-13 03:11:44

我用PHP7.2和7.4进行了测试

如果您在非标准前缀中安装了软件,请考虑调整PKG_CONFIG_PATH环境变量,将其指向OpenSSL的pkgconfig目录。

操作步骤:

  1. 安装OpenSSL
代码语言:javascript
代码运行次数:0
运行
复制
wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz
tar xzf /root/tmp/openssl/openssl-1.1.1i.tar.gz
cd openssl-1.1.1i
./Configure --prefix=/opt/openssl-1.1.1i/bin -fPIC -shared linux-x86_64
make -j 8 
make install
  1. 导出变量PKG_CONFIG_PATH以指向pkgconfig目录
代码语言:javascript
代码运行次数:0
运行
复制
export PKG_CONFIG_PATH=/opt/openssl-1.1.1i/bin/lib/pkgconfig
  1. 编译并安装PHP。
代码语言:javascript
代码运行次数:0
运行
复制
tar xzf php-7.4.13.tar.gz
cd  php-7.4.13

./configure --prefix=/opt/php-7.4.13 --with-curl --enable-exif \
 --with-mhash --enable-mbstring --with-mysqli --enable-mysqlnd \
--with-zlib --with-bz2 --enable-fpm --with-pear -enable-gd\
--with-apxs2=/opt/httpd-2.4.46/bin/apxs - --with-webp \
 --with-jpeg --with-xpm --with-freetype --enable-intl \
--disable-ipv6 --with-pgsql --without-sqlite3 --without-pdo-sqlite \
 --disable-cgi --enable-soap --without-imap --without-imap-ssl \
--with-openssl=/opt/openssl-1.1.1i/bin \
--with-openssl-dir=/opt/openssl-1.1.1i/bin

make -j 8 
make install
  1. 测试OpenSSL版本
代码语言:javascript
代码运行次数:0
运行
复制
/opt/php-7.4.13/bin/php -i | grep -i openssl


OpenSSL support => enabled
OpenSSL Library Version => OpenSSL 1.1.1i  8 Dec 2020
OpenSSL Header Version => OpenSSL 1.1.1i  8 Dec 2020
Openssl default config => /opt/openssl-1.1.1i/bin/ssl/openssl.cnf
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50052339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档