我在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但没有成功。拜托,你能帮帮我吗?
答案 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.phar
或php -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 --ini
或php -i | grep 'Configuration File'
。
在Debian上,位置应为/etc/php5/cli/php.ini
。
然后查找可能影响输出的ini指令,例如output_buffering与implicit_flush的组合。默认情况下,CLI上的output_buffering处于关闭状态。如果output_buffering被意外打开,而implicit_flush关闭,并且您没有手动刷新缓冲区,则您不会看到任何输出。
确保启用错误处理指令和日志记录:display_errors
,display_startup_errors
,log_errors
。