"bad prefix" when i was compiling libcurl with openssl

本文讲述了在使用curl配置过程中遇到的--with-ssl参数错误,并成功通过更改参数为--with-libssl-prefix解决问题的过程。

I tried "./configure --disable-shared --enable-static --prefix=/home/libinterphone_manger/curlout --with-ssl=/lib64" with libssl.so in "/lib64".

However it comes out with "configure: error: /lib64 is a bad --with-ssl prefix!".

I changed "--with-ssl=/lib64" to "--with-libssl-prefix=/lib64", success.

I guess the "-libssl" suffix makes it find the file name "libssl.so", and "-prefix=" represents it's a path where you can find the file after the equal sign.

在 macOS M2 平台上编译 Swoole 时启用 OpenSSL 支持,确保 Swoole 能够处理 SSL/TLS 连接,是开发中常见的需求。PHP 8.0.26 的编译配置中,`--enable-openssl` 用于启用 OpenSSL 扩展支持,但这仅确保了 PHP 层面的 OpenSSL 支持,并不直接作用于 Swoole 的 SSL 功能启用。Swoole 的 SSL 支持依赖于其自身的编译配置和运行时设置。 ### 启用 Swoole 的 OpenSSL 支持 要确保 Swoole 在 macOS M2 上支持 SSL 连接,需要在编译 Swoole 时指定启用 OpenSSL 支持的选项。可以通过以下步骤完成: 1. **安装 OpenSSL 库** macOS M2 上默认可能没有安装 OpenSSL 开发库,需要使用 Homebrew 安装: ```bash brew install openssl@1.1 ``` 安装完成后,设置环境变量以确保编译时能找到 OpenSSL: ```bash export OPENSSL_INCLUDE_DIR=$(brew --prefix openssl@1.1)/include export OPENSSL_LIB_DIR=$(brew --prefix openssl@1.1)/lib ``` 2. **配置 PHP 编译选项** 在编译 PHP 时,确保启用了 OpenSSL 模块: ```bash ./configure --enable-openssl ... ``` 3. **配置 Swoole 编译选项** 在编译 Swoole 时,需要启用 `--enable-openssl` 参数以确保 Swoole 支持 SSL/TLS 协议: ```bash phpize ./configure --with-php-config=/path/to/php-config --enable-openssl make && make install ``` 4. **验证扩展安装** 确保 `php.ini` 中包含以下行以启用 Swoole 和 OpenSSL 扩展: ```ini extension=swoole.so extension=openssl.so ``` ### 使用 SSL/TLS 连接的示例 以下是一个使用 Swoole 启动 HTTPS 服务器的示例代码: ```php <?php $server = new Swoole\Http\Server("0.0.0.0", 9501, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $server->set([ 'ssl_cert_file' => '/path/to/fullchain.pem', 'ssl_key_file' => '/path/to/privkey.pem', ]); $server->on('Request', function ($request, $response) { $response->header('Content-Type', 'text/plain'); $response->end("Hello, SSL World!"); }); $server->start(); ``` 在上述代码中,通过 `SWOOLE_SSL` 标志启用 SSL 支持,并通过 `ssl_cert_file` 和 `ssl_key_file` 指定证书和私钥路径,从而实现 HTTPS 服务。 ### requestId 相关问题处理 如果在处理 SSL 连接时遇到 `requestId` 相关错误,通常与请求标识符的生成或传递有关。这可能是由于客户端与服务端在 SSL 握手过程中未能正确交换信息,或者服务端未正确解析请求标识符。建议检查以下几点: - 确认客户端发送的请求是否包含正确的 `requestId`,并且格式符合预期。 - 检查服务端是否在 SSL 握手完成后正确读取请求数据。 - 在日志中记录 `requestId`,以便排查问题来源。 ### 总结 在 macOS M2 上编译 Swoole 并启用 OpenSSL 支持,需要确保 PHP 和 Swoole 的编译配置中均启用了 OpenSSL,并正确安装 OpenSSL 库。同时,处理 SSL 连接时的 `requestId` 错误应从请求标识符的生成、传递和解析等环节入手排查。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值