<?和 <?php 都失败了,应该怎么办?

<? and <?php both fail, what should work?

运行 php5.5.9 on apache2.4 under ubuntu 14.04.2 LTS server x86_64 我的旧 php 代码有 <? 在中间从 HTML 切换回 php 但它不再有效并且 <? 就像 HTML 一样输出。如果我将其更改为 <?php,则整个页面变为空白。在这种情况下,curl 显示服务器不输出任何内容。这是我尝试输出客户端 IP 地址的地方。

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

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

如果你得到一个 IPv6 地址,这些将无法工作,因为 apache 不允许我绑定它,但是(我仍在以较低的优先级挖掘它)。

<?<?php 都以不同的方式失败。所以 我怎样才能使它工作?

编辑: IPv6 现在正在 Apache 上运行,接下来是在 IPv6 上获取 DNS。

<? 可能会失败,因为它已被弃用。

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

为确保是这种情况,请尝试一些简单的操作,例如:

<?php 
    echo 'test';
?>

并确保一切正常。

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

您应该将 php 中的短开放标签更改为: short_open_tag=on

<? 就像 HTML 一样输出。

因为short_tags不推荐,默认禁用

PHP also allows for short open tag <? (which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).

如果我将其更改为<?php,那么整个页面都会变成空白。

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

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

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

根据您的文本文件,它将是

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

如果不尝试添加就可以工作

<?php echo "TEST"; ?>

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