gpt4 book ai didi

php - 在 Alpine Linux 中运行多个 PHP 版本

转载 作者:行者123 更新时间:2023-12-04 13:32:55 28 4
gpt4 key购买 nike

是否可以在 Alpine Linux 系统中直接运行多个版本的 PHP?喜欢同时使用 php 5.6、7.0 和 7.4 吗?
在 ubuntu 中,这工作得很好,没有任何问题。例如,这可以通过使用 ppa 存储库来完成。之后,可以通过 apt 包管理器轻松安装不同的 PHP 版本。

add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php5.6
apt-get install php7.0
apt-get install php7.4

有没有办法在 Alpine 上做到这一点?

最佳答案

在 Alpine Linux 存储库上,只有每个包的最新版本可用。旧的软件包版本被丢弃,一旦丢弃,就不能再使用 apk 安装它们。 .因此,与 Ubuntu 不同,Alpine 存储库中的每个主要 PHP 版本(5、7、8)不超过一个 PHP 版本。
但是,您可以轻松地混合使用 PHP 5、7 和 8(如果您不介意特定的次要版本)。
在 Alpine 3.13 上,包 php7 php8 可用(在撰写本文时版本为 7.4.15-r0 和 8.0.2-r0)。它们可以安装在:

apk --update --no-cache add php7 php8
此外, php5 软件包在 Alpine 3.13 中不可用,但您可以尝试从 Alpine 3.8 安装,它仍然可用(版本 5.6.40-r0):
apk add --update --no-cache php5 libressl2.7-libcrypto --repository=http://dl-cdn.alpinelinux.org/alpine/v3.8/community --repository=http://dl-cdn.alpinelinux.org/alpine/v3.8/main
( libressl2.7-libcrypto php5 的要求,可在 v3.8/main 存储库中找到)。
将它们放在一起,使用 PHP 5、7 和 8 的 Alpine 3.13 图像:
$ sudo docker run -it alpine:3.13
/ # apk --update --no-cache add php7 php8
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/11) Installing php7-common (7.4.15-r0)
(2/11) Installing argon2-libs (20190702-r1)
(3/11) Installing ncurses-terminfo-base (6.2_p20210109-r0)
(4/11) Installing ncurses-libs (6.2_p20210109-r0)
(5/11) Installing libedit (20191231.3.1-r1)
(6/11) Installing pcre2 (10.36-r0)
(7/11) Installing xz-libs (5.2.5-r0)
(8/11) Installing libxml2 (2.9.10-r6)
(9/11) Installing php7 (7.4.15-r0)
(10/11) Installing php8-common (8.0.2-r0)
(11/11) Installing php8 (8.0.2-r0)
Executing busybox-1.32.1-r0.trigger
OK: 18 MiB in 25 packages
/ #
/ # apk add --update --no-cache php5 libressl2.7-libcrypto --repository=http://dl-cdn.alpinelinux.org/alpine/v3.8/commun
ity --repository=http://dl-cdn.alpinelinux.org/alpine/v3.8/main
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.8/community/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/6) Installing libressl2.7-libcrypto (2.7.5-r0)
(2/6) Installing php5-common (5.6.40-r0)
(3/6) Installing pcre (8.44-r0)
(4/6) Installing readline (7.0.003-r0)
(5/6) Installing php5-cli (5.6.40-r0)
(6/6) Installing php5 (5.6.40-r0)
Executing busybox-1.32.1-r0.trigger
OK: 29 MiB in 31 packages
/ #
/ # php5 --version
PHP 5.6.40 (cli) (built: Jan 16 2019 23:59:17)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
/ #
/ # php7 --version
PHP 7.4.15 (cli) (built: Feb 4 2021 20:58:13) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
/ #
/ # php8 --version
PHP 8.0.2 (cli) (built: Feb 5 2021 00:39:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.2, Copyright (c) Zend Technologies
正如所建议的那样,可以从源代码构建 PHP,但这是一个困难而漫长的过程,如果构建或环境配置不正确,您最终可能会得到不可靠的二进制文件。作为引用,您可以在此处找到在 Ubuntu 上构建 PHP 7.4 的说明:
https://github.com/gitKearney/php7-from-scratch .

关于php - 在 Alpine Linux 中运行多个 PHP 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64005202/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com