Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
";“问题”;购电协议后:ondrej/php5折旧_Php_Wordpress_Nginx_Ssh - Fatal编程技术网

";“问题”;购电协议后:ondrej/php5折旧

";“问题”;购电协议后:ondrej/php5折旧,php,wordpress,nginx,ssh,Php,Wordpress,Nginx,Ssh,今天我正在将我的LEMP堆栈上的PHP5.5升级到版本5.5.35。升级后,我收到一条屏幕消息,说repoppa:ondrej/php5已被弃用,如果我想继续接收php更新,我应该转到ppa:ondrej/php,它现在在中包括php5.5、php5.6和PHP7.0。以前,这些版本在不同的回购协议中 我听从了翁德杰的建议,我跑了: sudo add-apt-repository ppa:ondrej/php 然后: sudo apt-get update sudo apt-get upgra

今天我正在将我的LEMP堆栈上的PHP5.5升级到版本5.5.35。升级后,我收到一条屏幕消息,说repoppa:ondrej/php5已被弃用,如果我想继续接收php更新,我应该转到ppa:ondrej/php,它现在在中包括php5.5、php5.6和PHP7.0。以前,这些版本在不同的回购协议中

我听从了翁德杰的建议,我跑了:

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
我立刻觉得这里有点不对劲。为什么我在运行PHP5.5时需要PHP7.0包?不过我选择了是的,显然一切都很顺利。服务器正在运行,据我所知,没有错误或冲突。然后我很好奇,我检查了我运行的是什么版本的PHP

php -v
结果是:

PHP 7.0.6-1+donate.sury.org~trusty...
这里到底发生了什么?我是如何安装PHP7.0的?为什么服务器/站点没有崩溃?由于我将nginx与php fpm一起使用,通过检查nginx.conf,我可以清楚地看到nginx指向php5-fpm.sock,所以我肯定在这里运行php5 fpm。另外,该站点已启动,并且日志中没有PHP错误

我也去了,我上传了一个phpinfo文件。该文件显示我正在使用PHP5.5.35。因此,有两条相互冲突的消息,其中通过ssh的命令显示PHP版本为7.0.6,而phpinfo文件显示服务器正在使用PHP5.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可用文件夹中有mods


有人能给我解释一下这里发生了什么,我该怎么办?php5和php7.0是否同时在服务器上运行?我需要保留在LEMP+Wordpress堆栈中的那两个包吗?

php-pear
pkg-php-tools
必须依赖php CLI作为默认php版本,这就是php 7.0。安装
php-cli
拉取将安装
/usr/bin/php7.0
php7.0-cli
,并以最高(
70
)优先级将其注册为备选方案,以提供
/usr/bin/php

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

  • 重写这些脚本以指定所需版本,例如将
    php
    更改为
    php5.6
    ,或
  • 使用
    updatealternations
    /usr/bin/php
    切换到所需的php版本:a)切换到特定版本
    updatealternations--set php/usr/bin/php5.6
    或b)
    更新alternations--config php
    手动配置版本
  • 更全面的迁移指南版本位于

    要使用新的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

    最有可能的
    /usr/bin/php
    指向我的debian服务器上的php7.0-cliOn
    /usr/bin/php
    指向
    /etc/alternations/php
    ,它指向
    /usr/bin/php7.0
    (是的,我同时运行PHP5.6和7.0)。服务器上的符号链接可能相同。我使用Ubuntu和
    /etc/alternations/php
    指向
    /usr/bin/php5
    。这意味着cli版本已更新,但
    php fpm
    版本未更改。cli和fpm-包具有不同的可执行文件。它们不会同时运行,很简单,有两个不同的包。是的,对,我想是这样,但是:1。怎么可能呢?2.为什么phpinfo文件和ssh命令显示不同的输出?3.为什么还有一个包含模块的
    /etc/php/7.0
    文件夹?4.
    php-pear
    pkg-php-tools
    包是LEMP+Wordress堆栈必不可少的吗?谢谢。然而,我已经彻底清除了PHP,并安装了全新的PHP7.0。无论如何,我很快就要升级了,所以我去跳了。