PHP cli仅适用于" -n"

时间:2014-10-10 22:59:49

标签: php linux composer-php

我在PHP CLI问题上困扰了几天:

我没有ouptut,只是一个空行,光标在我跑步时等待指示:

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但没有成功。拜托,你能帮帮我吗?

2 个答案:

答案 0 :(得分:3)

重新安装 php5-cli php5-common 软件包以及您需要的任何其他依赖项,例如libssh2-php as你在上面提到

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

答案 1 :(得分:0)

<强> 1。作曲家

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

将Composer全局安装到/ bin / composer

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

mv composer.phar /bin/composer

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

运行Composer

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

如果您无法执行,chmod +x /bin/composer请参阅the documentation for more information


<强> 2。 PHP CLI

php -r "echo 1;"应返回&#34; 1&#34;在新线上。

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

如果某些内容开始使用-n已应用(未使用ini +使用默认设置),则表明配置已搞砸。

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

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

然后查找可能影响输出的ini指令,例如output_buffering与implicit_flush的组合。默认情况下,CLI上的output_buffering处于关闭状态。如果output_buffering被意外打开,而implicit_flush关闭,并且您没有手动刷新缓冲区,则您不会看到任何输出。

确保启用错误处理指令和日志记录:display_errorsdisplay_startup_errorslog_errors