PHP不在命令行上执行

时间:2014-04-11 16:22:42

标签: php

您好我的apache服务器正常运行php。但是,当从命令行执行php脚本(如/usr/bin/php file.php)时,它只会回复我的脚本的源代码,即使在Web目录中执行PHP时也是如此。有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

命令行脚本STILL至少需要<?php才能切换到PHP模式。请记住,确实没有PHP脚本这样的东西。只有文件中包含<?php ... ?>个代码块。

所以,像

#!/usr/bin/php

echo 'hello world!';

实际输出

echo 'hello world!';

因为那里没有真正的PHP代码。只有一些文本看起来像PHP代码。你需要

#!/usr/bin/php
<?php

echo 'hello world!';

然后你会得到预期的

hello world!

作为输出。如果没有<?php,php解释器将永远不会“切换”到实际的PHP模式,只需将文件中的所有文本视为普通输出。

答案 1 :(得分:0)

在您过去的问题中,您似乎更喜欢使用短开标签(<?),因此这可能就是问题所在。请尝试运行此代码:

/usr/bin/php -d short_open_tag=yes file.php

如果这样可行,那么您当前的配置已禁用short_open_tag。您必须编辑CLI配置文件才能更改此设置。您可以使用以下命令找到配置文件的位置:

/usr/bin/php -i | grep php.ini

您应该看到:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

编辑&#34;加载配置文件&#34;列出的文件。该行:

short_open_tag = Off

应设为On

答案 2 :(得分:0)

我已经解决这个问题超过 4 个月了,但没有找到任何可以解决的方法。

当我安装了一个新的 3T 驱动器,然后将我的所有项目从默认的 1.5T 驱动器移开时,我的问题就开始了。从那以后,永远无法在“本地主机”中正常工作。也无法在我创建的 2 个虚拟主机中使用别名,但它们的 index.html 文件现在可以正常显示:

  1. projects.com
  2. tbnk-svr.com

但以下均无效:

  1. 本地主机/phpmyadmin,
  2. 本地主机/seopanel,
  3. localhost/test.php,
  4. localhost/info.php,
  5. 命令行中的 php。

我在:

https://www.linuxquestions.org/questions/newreply.php?do=newreply&noquote=1&p=6214546

并且由于我在任何错误日志中都没有收到错误,因此无法弄清楚是什么导致 localhost 和 cmd 行无法工作。测试:

php <<< "<?php echo 1;"
php -v

两者都有效,所以不知道为什么它只像“cat file”那样回显文件内容。

必须以某种方式处理它而不呈现“localhost”

干杯!

TBNK