我被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-cli
和php5-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。
运行Composer
然后运行/bin/composer
,而不是php composer.phar
或php -n /bin/composer
。
如果不能执行,chmod +x /bin/composer
请参阅文档以获取更多信息。
2.PHP CLI
php -r "echo 1;"
应在新行中返回"1"。
如果没有发生这种情况,那么您可能需要查看CLI的PHP.ini文件。
当应用-n
(未使用ini+使用默认设置)时,就表明配置混乱。
获取加载的ini的路径:php --ini
或php -i | grep 'Configuration File'
。
在Debian上,位置应该是/etc/php5/cli/php.ini
。
然后寻找可能影响输出的ini指令,比如output_braining与implicit_flash的组合。CLI上的output_braining在默认情况下处于关闭状态。如果outputbuffering被意外打开,而implicitflush被关闭,并且您没有手动刷新缓冲区,那么您将看不到任何输出。
确保打开错误处理指令和日志记录:display_errors
、display_startup_errors
、log_errors
。