gpt4 book ai didi

php - ppa :ondrej/php5 deprecation 之后的 "issue"

转载 作者:可可西里 更新时间:2023-10-31 23:37:52 29 4
gpt4 key购买 nike

今天,我将 LEMP 堆栈上的 PHP 5.5 升级到 5.5.35 版。升级后,我收到一条屏幕消息,指出 repo ppa:ondrej/php5 已弃用,如果我想继续接收 php 更新,我应该转到 ppa:ondrej/php 现在在 one place 中包含 PHP 5.5、PHP 5.6 和 PHP 7.0 .以前这些版本位于不同的存储库中。

我听从了 Ondřej 的建议,然后运行:

sudo add-apt-repository ppa:ondrej/php

然后:

sudo apt-get update
sudo apt-get upgrade --show-upgraded

一切顺利,除了两个包被阻止:php-pearpkg-php-tools。当包依赖性发生变化时,这当然会不时发生,所以我运行:

sudo apt-get install php-pear pkg-php-tools

然后,我收到一条消息,将额外安装以下软件包:

php-cli php-common php-xml php7.0-cli php7.0-common php7.0-json php7.0-opcache php7.0-readline php7.0-xml

顿时觉得这里不对劲。为什么我在运行 PHP 5.5 时需要 PHP 7.0 包?但是我选择了 YES 选项,显然一切顺利。服务器正在运行,没有我所知道的错误或冲突。然后我很好奇,我检查了我运行的是什么版本的 PHP?

php -v

输出是:

PHP 7.0.6-1+donate.sury.org~trusty...

这到底是怎么回事?我是如何最终安装 PHP 7.0 的?为什么服务器/站点没有崩溃?由于我将 nginx 与 php-fpm 一起使用,通过检查 nginx.conf 我可以清楚地看到 nginx 指向 php5-fpm.sock 所以我肯定在这里运行 php5-fpm。此外,该站点已启动,并且日志中没有 PHP 错误。

我也去了,我上传了一个phpinfo文件。该文件显示我使用的是 PHP 5.5.35。因此,有两条相互冲突的消息,其中通过 ssh 的命令显示 PHP 版本为 7.0.6,而 phpinfo 文件显示服务器正在使用 PHP 5.5.35。

所以我跑:

sudo apt-get remove php7.0-common

所有以前添加的 php7.0 包都被删除了,还有两个最初被阻止的包。

现在,在通过 SSH 检查 PHP 版本后,它正确显示 5.5.35。当这一切发生时,服务器没有任何问题。目前的状态是我没有php-pearpkg-php-tools 包,但是如果我尝试安装它们所有那些php7.0 包也必须安装。

我还检查了 /etc/php5/etc/php 文件夹。在这第二个文件夹中有 7.0 文件夹,其中包含 climods-available 文件夹,里面有模组。

有人可以向我解释这里发生了什么以及我应该怎么做吗?服务器上是否同时运行php5和php7.0?我是否需要 LEMP + Wordpress 堆栈中保留的那两个包?

最佳答案

php-pearpkg-php-tools默认 PHP 版本必须依赖 PHP CLI,即 PHP 7.0。安装 php-cliphp7.0-cli这将安装 /usr/bin/php7.0并将其注册为具有最高( 70 )优先级的替代方案以提供 /usr/bin/php .

除非您需要使用命令行在本地运行 PHP 脚本,否则安装 PHP CLI 二进制文件基本上是无害的。我可以推荐两种方法:

  1. 重写这些脚本以指定所需的版本,例如改变 php <script>php5.6 <script> , 或
  2. 使用update-alternatives切换/usr/bin/php到您想要的 PHP 版本:a) 切换到特定版本 update-alternatives --set php /usr/bin/php5.6或 b) update-alternatives --config php手动配置版本

迁移指南的更详尽版本位于 DEB.SURY.ORG Wiki .

要使用新的 PHP FPM 包,您需要安装:

sudo apt-get install php5.5-fpm # for PHP 5.5
sudo apt-get install php5.6-fpm # for PHP 5.6
sudo apt-get install php7.0-fpm # for PHP 7.0

并相应地调整套接字,查看默认的 FPM 配置:

sudo editor /etc/php/X.Y/fpm/pool.d/www.conf

用于套接字位置(默认为 /run/php/phpX.Y-fpm.sock)。

关于php - ppa :ondrej/php5 deprecation 之后的 "issue",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37197539/

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