【发布时间】:2026-01-16 05:35:01
【问题描述】:
在我的专用 CentOS linux 服务器上,我的 PHP CLI 已停止工作。我有一个需要 CLI 的开发人员编写的脚本,这些脚本一直工作到昨天。同时发生的另一个奇怪的事情是 /usr/local/bin/ 到 php 的符号链接丢失了。我重新创建了它,但它仍然无法正常工作。
我的开发人员说它不起作用,因为当我们从命令行运行此脚本时;
<?php
echo 'php_sapi_name()='. php_sapi_name() .'<br />';
if(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])) {
echo "ENVIRONMENT IS CLI";
} ELSE {
echo "ENVIRONMENT IS NOT CLI";
}
//echo phpinfo();
从命令行返回的是
php_sapi_name()=cgi-fcgi<br />ENVIRONMENT IS NOT CLI
运行 php -v 会得到以下输出
PHP 5.3.8 (cgi-fcgi) (built: Feb 2 2012 14:48:13)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
最终改变了我们的脚本来解决这个问题,但它是如何改变的仍然很奇怪
【问题讨论】:
-
有人更新/重新安装了你的 php ;-) 而且,不,我们不相信没有人改变任何东西 :-)
-
尝试使用命令行 php 的完整路径运行脚本。即
/usr/local/bin/php myscript.php并分享结果。 -
我确实用完整路径运行了脚本,得到了上面的结果
-
可能
$_SERVER['REMOTE_ADDR']是环境设置的…… -
对不起,你失去了我 :)
标签: php