使用开放 SSL 构建 PHP 8.1.8,无法找到包。Lambda 层

使用开放 SSL 构建 PHP 8.1.8,无法找到包。Lambda 层

我正在尝试构建一个 PHP8.1.8 lambda 层,但是我遵循https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/

并且只使用正确的版本,所以我做的第一件事是在控制台中启动 Node.JS Lambda 并输出 process.versions,以识别要使用的正确 OpenSSL 版本,openssl: '1.1.1n+quic'因此我将他们提供的示例更改为

curl -sL https://www.openssl.org/source/openssl-1.1.1q.tar.gz | tar -xvz
cd openssl-1.1.1q
./config && make && sudo make install
cd ~

这似乎有效,除了当我运行时openssl version我收到有关缺少 libssl.so.1.1 的错误所以我运行

sudo ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
sudo ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

如果我现在运行openssl version我会得到正确的报告1.1.1q

然后我再次将博客中的脚本改为使用 PHP8.1.8 而不是 7,然后运行下面的代码,没有任何问题

mkdir ~/php-8-bin
curl -sL https://www.php.net/distributions/php-8.1.8.tar.gz | tar -xvz
cd php-8.1.8

./buildconf --force

然而我的问题是当我尝试运行时./configure --prefix=/home/ec2-user/php-8-bin/ --with-openssl=/usr/local/ssl --with-curl --with-zlib出现错误No package 'openssl' found并且我完全不知道如何解决它。

答案1

因此,经过几个小时的讨论,在 Libera IRC 中的 #linux 频道中讨论如何解决这个问题,即在构建 PHP 时覆盖 PKG_CONFIG_PATH 以包含 lib64 目录。

PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:${PKG_CONFIG_PATH} ./configure --prefix=/home/ec2-user/php-8-bin --with-curl --with-zlib

相关内容