我不确定这是编程问题还是服务器问题,但我更倾向于服务器问题。我一直在将网页(由 MySQL 数据库支持的基本 php)从 Ubuntu 服务器移动到 OSX 服务器。我在 apache 配置(httpd.conf)中启用了 php 模块,并在 /etc 中创建了一个 php.ini 文件,php 似乎可以正常工作 - 只是不能用于旧网页。
基本上,我为了测试目的在本地子网上设置了网页(托管在 10.xxx),并将 Web 服务器指向一个目录,我从另一个服务器复制了所有文件。当我将 Safari 指向地址 10.xxx 时,它会正确找到并显示 index.php,但它不会执行脚本,而只是将内容转储到浏览器。
那时我以为我错误地设置了 php,所以我创建了经典的 info.php,只包含
<?
phpinfo();
?>
令我惊讶的是它运行正确(从 10.xxx/info.php)。
这让我觉得代码本身肯定有问题。由于代码目前在 Ubuntu 服务器上运行,并且没有任何变化,所以我检查了 php 的版本。旧服务器使用的是 5.2,而 OSX 服务器运行的是 5.3。这可能是问题所在,但这没有多大意义,因为我认为变化不大,而且这个网站的 php 非常基础。进一步证明这是代码问题的证据是,当我通过 php 和 直接执行 index.php 和 info.php 时,我从命令行得到了相同的index.php
行为info.php
。
但是,我仍然倾向于认为问题出在 OSX 服务器上而不是编程上,因为如果是 php 的问题(由于版本或某些语法错误)那么在尝试执行脚本时我会不会收到错误消息而不是将文件仅仅视为文本?
您觉得发生了什么事?我是不是疯了 :)。任何有关执行这些 php 文件的帮助都将不胜感激。谢谢!!
答案1
IIRC 短打开标签在 OS X 上默认是禁用的。虽然您的 info.php 测试似乎表明它们已在您的设置中启用,但我仍然建议您至少编辑一个文件以使用长标签(即<? ?>
-> <?php ?>
),看看是否有什么区别。