您好我的apache服务器正常运行php。但是,当从命令行执行php脚本(如/usr/bin/php file.php
)时,它只会回复我的脚本的源代码,即使在Web目录中执行PHP时也是如此。有谁知道如何解决这个问题?
答案 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 文件现在可以正常显示:
但以下均无效:
我在:
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