【发布时间】:2017-08-02 16:15:28
【问题描述】:
在我遇到 Jenkins 的问题后,部署挂起,需要在命令行上执行 PHP(pdepend、phpmd、phpcpd 等),并注意到,我也无法在命令行上重新安装 Composer 或运行 PHPLoc 之类的工具,我创建了一个 PHP 文件
<?php
print_r(get_defined_constants());
并尝试在命令行上执行它:
php phptest.php
但它没有用。当我这样做时,什么都不会发生。没有错误。什么都没有:
环境是 PHP 7.0.3 和 Ubuntu 14.04.3(在 VirtualBox VM 中)。顺便提一句。在命令行上执行的php -v 或php -i 仍然有效。
什么可能导致此问题以及如何解决?
编辑
权限似乎是正确的:
root@ubuntuvm:~/Desktop# ls -lia | grep "phptest.php"
132234 -rw-r--r-- 1 root root 40 Aug 2 17:29 phptest.php
777 也不起作用:
root@ubuntuvm:~/Desktop# chmod 777 ./phptest.php
root@ubuntuvm:~/Desktop# php phptest.php
^C
报错设置:
/etc/php/7.0/cli
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /var/log/php_errors.log
【问题讨论】:
-
根本没有输出吗?脚本是挂起还是完成执行但没有输出?
-
脚本挂起,没有完成执行。没有输出,只有一个换行符(由操作系统生成——所以 PHP 脚本绝对没有输出)。看截图,我刚刚添加到问题中。
-
这很奇怪。您的 php 文件的权限是否正确?它是否只锁定了 www-data 用户?权限也正确吗?通常为 644 (rw-rw-r--)
-
一切都恢复正常了!我真的没有在系统上改变任何东西!刚刚重启了虚拟机。我不知道,为什么它现在可以工作......我只是安装了另一个虚拟机,而旧的虚拟机获得了另一个 IP。但仅此而已 - 它不会影响 PHP 的行为!..
-
@ThinkingMedia 完全正确——微软的错误和 Linux VM 上的 Windows 问题... :)
标签: php command-line ubuntu-14.04 command-line-interface php-7