繁体   English   中英

PHP cli仅适用于“ -n”

[英]PHP cli only works with “-n”

我在PHP CLI问题上呆了几天:

我没有输入,只有空白行,并且光标在运行时等待指示:

php -r "echo 1;"

但是,当我使用-n运行此行时(将不使用php.ini文件),一切正常:

php -nr "echo 1;"

我的真正问题是我的composer快捷方式(/ bin / composer)不再起作用,我现在每次必须编写php -n /bin/composer

我使用Debian Wheezy,并且我的PHP版本是最新的(5.4.4-14)。

我多次重新安装了php,但未成功。 拜托,你能帮我吗?

重新安装php5-cliphp5-common软件包以及您需要的任何其他依赖项, 例如上述的libssh2-php

sudo apt-get install --reinstall php5-common php5-cli

1.作曲家

请尝试将Composer重新安装到您的/ bin文件夹中。

将Composer全局安装到/ bin / composer

curl -sS https://getcomposer.org/installer | php

mv composer.phar /bin/composer

如果移动失败,请使用sudo。

运行作曲家

然后运行/bin/composer ,而不是php composer.pharphp -n /bin/composer

如果无法执行,请chmod +x /bin/composer查看文档以获取更多信息


2. PHP CLI

php -r "echo 1;" 应该在换行符上返回“ 1”。

如果这没有发生,那么您可能想要查看CLI的PHP.ini文件。

当使用-n (不使用ini +使用默认设置)开始起作用时,表明配置已混乱。

要获取已加载ini的路径: php --iniphp -i | grep 'Configuration File' php -i | grep 'Configuration File'

在Debian上,位置应该是/etc/php5/cli/php.ini

然后寻找可能会影响输出的ini指令,例如将output_buffering与hidden_​​flush结合使用。 默认情况下,CLI上的output_buffering是关闭的。 如果output_buffering意外打开,而hidden_​​flush关闭,并且您没有手动刷新缓冲区,则不会看到任何输出。

确保错误处理指令和日志记录已打开: display_errorsdisplay_startup_errorslog_errors

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM