[英]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-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。
运行作曲家
然后运行/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'
php -i | grep 'Configuration File'
。
在Debian上,位置应该是/etc/php5/cli/php.ini
。
然后寻找可能会影响输出的ini指令,例如将output_buffering与hidden_flush结合使用。 默认情况下,CLI上的output_buffering是关闭的。 如果output_buffering意外打开,而hidden_flush关闭,并且您没有手动刷新缓冲区,则不会看到任何输出。
确保错误处理指令和日志记录已打开: display_errors
, display_startup_errors
, log_errors
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.