Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用OpenSSL编译PHP7.2

用OpenSSL编译PHP7.2
EN

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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
运行
AI代码解释
复制
configure: error: Cannot find OpenSSL's <evp.h>

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

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

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

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

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

票数 0
EN

Stack Overflow用户

发布于 2020-12-12 19:11:44

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

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

操作步骤:

  1. 安装OpenSSL
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
export PKG_CONFIG_PATH=/opt/openssl-1.1.1i/bin/lib/pkgconfig
  1. 编译并安装PHP。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
/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

复制
相关文章
Windows NDK 编译openssl
关于NDK 编译openssl,网上找了不少文章,比如: 《在windows上编译openssl供Android NDK使用》
10km
2021/02/04
2K0
​openssl Android编译指南
打开根目录下的build.info, 注释下面几行, 在Line:590~594, 否则会有类似错误提示 ${LDCMD:-g++} ld: unknown option: --sysroot=.
望天
2019/09/16
6.9K1
window编译libevent缺少openssl
下载地址 https://github.com/openssl/openssl 编译
sofu456
2021/02/02
2.1K0
在Windows上编译openssl
###1、下载openssl源码 https://www.openssl.org/source/ ###2、安装环境 vs2010 ActivePerl nasm(将nasm.exe所在目录加入到%PATH%中) ###3、编译 进入Visual Studio 命令提示(2010) 进入源码目录 执行perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32 执行set path=C:\Program Files (x86)\Microsoft SDKs\
drunkdream
2018/07/06
2.2K1
VC6编译OPENSSL
VC6编译方法: 1.http://www.openssl.org/source/old/0.9.x/  下载0.9.x版本  -- VC6不能完全编译最新的1.0.x,所以尽量选择0.9.x 2.安装ActivePerl 3.cmd命令运行 VC6安装目录\VC98\Bin\VCVARS32.BAT 4.以此执行下面命令
用户3519280
2023/07/06
4850
为Android编译openssl类库
本文参考了后面的参考文章对openssl进行编译,基本没有遇到什么问题,但是在使用使用编译的openssl时,遇到如下错误:
用户2930595
2018/08/23
1K0
Centos7源码编译安装PHP7.2(生产环境)
注:本文转自详解Centos7源码编译安装 php7.2之生产篇,如需转载请注明出处https://www.cnblogs.com/zhuchenglin/p/11773409.html。
lin_zone
2019/11/01
1.4K0
openssl怎么编译成动态库
Windows下编译OpenSSL动态库的方法: 1、安装ActivePerl 初始化的时候,需要使用perl 2、使用VS下的Visual Studio 20xx Command Prompt进入控制台模式 3、解压缩openssl的包,通过cd命令切换到openssl的目录 4、执行:perl configure VC-WIN32 5、执行:ms/do_ms 6、选择不同的编译结果 1) 执行:nmake -f ms/ntdll.mak 该命令生成动态库,默认使用的是MD 2) 执行:nmake -f ms/nt.mak 该命令生成静态库,默认使用的是MT 3) 想生成使用静态链接运行时库的动态库则采用下面方法 复制一个ntdll.mak并命名为ntdll_mt.mak,修改里面的 “CFLAG= /MD /Ox ..............” 为/MT ,然后重新编译,执行 nmake -f ms/ntdll_mt.mak 4) 想生成使用动态链接运行时库的静态库则采用下面方法 复制一个nt.mak并命名为nt_md.mak,修改里面的 “CFLAG= /MT /Ox ..............” 为/MD ,然后重新编译 ,执行 nmake -f ms/nt_md.mak 7.其它命令: nmake -f ms/ntdll.mak clean // 清除编译的中间文件 nmake -f ms/ntdll.mak install // 安装 ,主要是linux下面会自动放到程序目录中 。
用户3519280
2023/07/06
8080
重新编译安装swoole支持OpenSSL
1、下载:wget http://pecl.php.net/get/swoole-1.9.22.tgz 2、解压:tar zxvf swoole-1.9.22.tgz 3、扩展模块:cd swoole-1.9.22 && phpize 4、编译安装:./configure --enable-openssl --with-php-config=/usr/local/php/bin/php-config && make && make install 这里需要说明一下的就是这个php-config不一定是这个目
一夕如环
2018/04/03
2.2K0
重新编译安装swoole支持OpenSSL
arm-xm-linux交叉编译openssl
编译环境 Ubuntu 16.04 x86_64 arm-xm-linux.tar.gz 下载openssl源码 $ wget https://www.openssl.org/source/openssl-1.1.0d.tar.gz 解压源码 $ tar xvf openssl-1.1.0d.tar.gz 执行Configure脚本 $ cd openssl $ ./Configure linux-generic32 \ no-shared \ no-asm \ no-async \ --pre
10km
2022/04/13
4.5K0
OpenSSL交叉编译不修改Makefile的方法
利用arm-none-linux-gnueabi-gcc交叉编译openssl,生成静态库文件libcrypto.a ,libssl.a
知忆
2021/06/23
1.4K0
Linux下OpenSSL静态库编译及使用
源码地址为:https://www.openssl.org/source/old/;当前最新版本为 1.1.0f,https://www.openssl.org/source/old/1.1.0/openssl-1.1.0f.tar.gz
用户8710806
2021/06/08
12.5K0
君正X2000交叉编译openssl
编译环境 Ubuntu 16.04 x86_64 ingenic X2000 编译工具链 从君正官网下载 : http://www.ingenic.com.cn/?product/id/34/lm
10km
2022/04/13
3940
openssl源码打包编译成rpm包
环境# iSoftserver-v4.2(Centos-7) openssl version:1.0.2k 编译# 从github上看到的编译脚本,本地修改后: #!/bin/bash set -e set -v mkdir ~/openssl && cd ~/openssl yum -y install \ curl \ which \ make \ gcc \ perl \ perl-WWW-Curl \ rpm-build # Get open
Amadeus
2022/10/25
1.7K0
openssl源码打包编译成rpm包
用openssl库RSA加密解密
1 #include <stdio.h> 2 #include <openssl/rsa.h> 3 #include <openssl/pem.h> 4 #include <openssl/err.h> 5 6 //加密 7 int my_encrypt(const char *input, int input_len, char *output, int *output_len, const char *pri_key_fn) 8 { 9 RSA *p_rsa =
窗户
2018/02/07
3.6K0
海思 himix200交叉编译openssl
编译环境 Ubuntu 16.04 x86_64 himix2000 编译工具链 下载openssl源码 wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz 解压源码 tar xvf openssl-1.1.1d.tar.gz 执行Configure脚本 ./Configure linux-generic32 \ no-shared \ no-asm \ --prefix=/ilock/dist/himix200_openssl_11
10km
2022/01/10
1.6K0
已经安装openssl,编译redis还是提示找不到<openssl/ssl.h>
发现没有头文件,后来找了下资料发现需要安装libssl-dev,使用下面命令安装之后就好了。
zeekling
2022/07/31
1.9K0
keepalived 编译报错undefined reference to `OPENSSL_init_crypto'
查看check_ssl.c 发现应该是识别到 1.1.0的版本了, 但使用的库的信息是1.0.0的
大大刺猬
2023/07/13
1.2K0
centos7.3编译安装OpenSSL1.1.1b
OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
阿dai学长
2019/03/26
7.7K0
centos7.3编译安装OpenSSL1.1.1b
点击加载更多

相似问题

用“共享”选项编译OpenSSL?

58

用openssl静态编译FFmpeg

15

分别编译libcurl和OpenSSL,与用OpenSSL编译libcurl相同吗?

15

用OpenSSL编译Qt中的错误OpenSSL (Windows)

26

用openSSL错误编译静态Qt

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文