asdf安装php7.4

1. 准备 OpenSSL 1.1.1

PHP 7.4 编译时链接不了系统自带的 OpenSSL 3.x,需要先单独编译一份 OpenSSL 1.1.1。注意:老教程里 https://www.openssl.org/source/openssl-1.1.1i.tar.gz 这种直链已经 404,1.1.1 系列源码包统一归档在 source/old/1.1.1/ 目录下,直接用该系列的最终版本 1.1.1w 即可。整棵目录树统一放在 /usr/local/openssl-1.1.1w,后面 PHP 编译和 Composer 证书都复用它。

cd $HOME
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
tar xzf $HOME/openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
1. --prefix 与 --openssldir 指向同一棵目录树
./Configure --prefix=/usr/local/openssl-1.1.1w --openssldir=/usr/local/openssl-1.1.1w/ssl -fPIC -shared linux-x86_64
make -j 8
sudo make install

2. 安装 PHP 7.4

让 asdf 编译 PHP 时通过 PKG_CONFIG_PATH 链接上面这份 OpenSSL,再设置全局版本:

export PKG_CONFIG_PATH=/usr/local/openssl-1.1.1w/lib/pkgconfig

asdf install php 7.4.33
asdf global php 7.4.33

php -v

装好 PHP 7.4.33 之后,Composer 访问 HTTPS 源会报证书错误,还需要补一步 CA 证书配置。

3. 修复 Composer 证书

下载 curl 官方的 CA 证书包,放进上面那棵 OpenSSL 目录树,并在 php.ini 中显式指定:

# 证书下载地址 https://curl.se/ca/cacert.pem
wget https://curl.se/ca/cacert.pem
1. 也可以在本机下载后手动上传到 Linux
mkdir -p /usr/local/openssl-1.1.1w/ssl/certs/
mv cacert.pem /usr/local/openssl-1.1.1w/ssl/certs/cacert.pem
echo "openssl.cafile=/usr/local/openssl-1.1.1w/ssl/certs/cacert.pem" >> $(asdf where php)/conf.d/php.ini

1. 再按官方安装器流程手动安装 Composer
bin_path=$(asdf where php)/bin
expected_signature=$(curl -sL https://composer.github.io/installer.sig)
$bin_path/php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$bin_path/php -r "if (hash_file('sha384', 'composer-setup.php') === '${expected_signature}') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$bin_path/php composer-setup.php --install-dir=$bin_path --filename=composer
$bin_path/php -r "unlink('composer-setup.php');"
$bin_path/composer --version

1. Composer 是手动装进 PHP 目录的,需要刷新 shims 让 asdf 识别
asdf reshim

到这里,asdf 下的 PHP 7.4 和 Composer 就都配置好了。

延伸阅读


相关文章


asdf 系列

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇