【问题标题】:<? and <?php both fail, what should work?<?和 <?php 都失败了,应该怎么做?
【发布时间】:2015-07-10 04:43:31
【问题描述】:

在 ubuntu 14.04.2 LTS 服务器 x86_64 下的 apache2.4 上运行 php5.5.9 我的旧 php 代码中间有 &lt;? 从 HTML 切换回 php,但它不再起作用,&lt;? 只是输出好像它是 HTML。如果我将其更改为&lt;?php,则整个页面将变为空白。 curl 在这种情况下显示服务器不输出任何内容。这是我试图输出客户端 IP 地址的地方。

网页:http://linuxhomepage.com/ 或:http://linuxhomepage.com/index.php

您可以在此处查看原始 php 代码:http://linuxhomepage.com/index.txt

如果您获得 IPv6 地址,这些地址将不起作用,因为 apache 不允许我绑定它,但(我仍在以较低的优先级深入研究)。

&lt;?&lt;?php 都以不同的方式失败。那么我怎样才能完成这项工作?

编辑: IPv6 现在正在 Apache 上工作,接下来是在 IPv6 上获得 DNS。

【问题讨论】:

  • 听起来您可能没有启用mod_php
  • php 基本上可以工作了......如果mod_php 不工作,它将如何工作?
  • 你检查过你的 apache error_log 了吗?
  • 好答案...我尝试了我第一次看到的那个,它起作用了。其他人可能也有。

标签: php apache php-5.5 apache2.4


【解决方案1】:

&lt;? 可能会失败,因为它已被弃用。

&lt;?php 可能没有失败,但您的代码中可能存在错误,并且您的服务器上的错误报告已关闭,因此您只会看到一个空白屏幕。

为了确保是这种情况,请尝试以下简单的操作:

<?php 
    echo 'test';
?>

并确保它有效。

【讨论】:

  • 适用于test.linuxhomepage.com ...所以接下来要弄清楚为什么我的旧代码不适用于&lt;?php,但在PHP5.5.9下适用于&lt;? ...首先猜测是&lt;? 使用兼容模式。启用日志(我认为)。必须寻找日志。
【解决方案2】:

类似问题:PHP 5.5 short_open_tag=on Security Hole?

您应该将 php ini 中的短打开标记更改为: short_open_tag=on

【讨论】:

  • 这行得通……现在来弄清楚为什么&lt;?php 不行
【解决方案3】:

&lt;? 只是像 HTML 一样输出。

这是因为默认情况下不推荐和禁用short_tags

PHP 还允许使用短打开标记 &lt;?(不鼓励这样做,因为它仅在使用 short_open_tag php.ini 配置文件指令启用,或者 PHP 配置了 --enable-short-tags 选项时才可用) .

如果我将其更改为 &lt;?php,则整个页面将变为空白。

这可能是因为你的 PHP 页面有错误(特别是如果你在新的 PHP 版本中运行旧代码)

请启用错误报告 - php.ini 指令 error_reportingdisplay_errors

【讨论】:

  • 我将short_open_tag 更改为on 并且页面正常工作......也许是一个更复杂的错误?
  • @Skaperen 首先启用错误报告。没有它,没有人可以帮助你
【解决方案4】:

请尝试删除导致问题的部分。

你的文本文件应该是

<?
echo $_SERVER['REMOTE_ADDR']
?>

如果不加试试就行了

<?php echo "TEST"; ?>

如果这也有效,您可以将 "TEST" 替换为 $_SERVER['REMOTE_ADDR'] 并查看它是否有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多