PHP cli 不适用于本地路径(突然)

Posted

技术标签:

【中文标题】PHP cli 不适用于本地路径(突然)【英文标题】:PHP cli not working with local path (suddenly) 【发布时间】:2016-12-31 08:57:08 【问题描述】:

几个小时后,从控制台发出的 php 命令不接受本地路径。 例如在 laravel 中我总是给出命令

php artisan

但从今晚开始,我收到了以下回复

Status: 404 Not Found
Content-type: text/html; charset=UTF-8

No input file specified

但如果我尝试 php ./artisan,它就可以工作。

服务器配置了 WHM/cPanel,最奇怪的是,没有任何改变,昨天一切正常。 此外,在今天之前没有出现 Content-type 的行。

【问题讨论】:

看来PHP解释器升级了,现在CGI版本也被错误地用作CLI。 CLI 不生成标题,只有设计用于 Web 服务器并生成网页的版本才会生成。请联系您的托管服务提供商。 @axiac 感谢您的回复。服务器由我管理,它是 OVH 的专用机器,但我从未遇到过此类错误,我真的不知道如何解决这个问题。你有什么想法吗? 正如我所说,PHP 的 CLI 版本不生成标头。您是否在奇怪行为开始之前升级了 PHP?根据您使用的 Linux 风格,PHP 的 CLI 版本可能会命名为 php-cli。或者你修改了$PATH,CGI 版本的路径出现在 CLI 之前? 我今天也遇到了同样的问题,除了 php ./artisan 给出了另一个错误消息并且仍然无法正常工作。 @AhmadTawila 看我下面的回复,有解决办法 【参考方案1】:

这里有几个小时前解决了这个问题的 cPanel 团队的回复(带有解决方案)。

感谢您在我更正此问题时的耐心等待。这是 由于 ea-php-cli 包中发生的更新而发生 昨晚与另一个案例 EA-4753 相冲突,其中 include_path 设置不正确,直到问题才可见 昨晚更新ea-php-cli。

我已更正您的问题并已提交案例 EA-5106,以便我们的 开发人员确保 EA4 不允许这种情况再次发生。这 当前的解决方法是转到首页»软件»Editor INI MultiPHP, 选择php的版本,向下滚动到include_path,然后添加 .:/path/to/php/pear 而不是 .;/path/to/php/pear 有 更正了您的问题。

编辑:我们还对包 ea-php-cli 进行了降级,因为在此版本中存在多个问题(例如,当您执行“php artisan”(或任何其他 php 文件)命令时,它会打印标题),所以命令是:

====
yum downgrade ea-php-cli-0.0.6-3.3.1
====

并且可以锁定包,以防止它在“稳定”版本发布之前自动更新。

====
yum versionlock add ea-php-cli
====

请注意,一旦发布了更正的版本,您将需要删除版本锁:

====
yum versionlock delete ea-php-cli
yum upgrade ea-php-cli
====

【讨论】:

【参考方案2】:

我的代表太低,无法投票或发表评论,但我现在遇到了这个问题,它似乎和你差不多同时开始,我也使用 OVH 的专用服务器。

【讨论】:

我实际上正在与 cPanel 支持人员联系。一旦我有一些消息,我会在这里发布它们。好像是EasyApache4的问题 太好了,我订阅了 Syslint 的服务器管理。我支持一张票,他们通常很快,所以我也会发布我得到的任何更新。

以上是关于PHP cli 不适用于本地路径(突然)的主要内容,如果未能解决你的问题,请参考以下文章

PHP:要求路径不适用于 cron 作业?

带有 Vue CLI 3 的项目的导入路径上的 WebStorm 中的 Intellisense(代码完成辅助)不适用于 Vue.js

根路径不适用于php include

File.Move 不适用于 UNC 路径

php require() 不适用于相对或完整

php SystemLoader - 一个非常简单的PHP类自动加载器。不适用于强调的类路径约定,但可以很容易地修改为