PHP脚本在Lion上通过Ajax运行时会回显自己的内容


PHP script echoes its own content when run via Ajax on Lion

我遇到了一个奇怪的问题,我想知道你是否能帮我找出我犯的明显错误。

我有一个javascript应用程序,它通过ajax运行一堆php脚本,所有这些脚本都在我的Mac上本地运行,使用内置的apache服务器。它已经工作多年了,但在我的新Lion Mac上,php脚本不再返回他们应该读取的文件。它们返回php脚本本身。

如果我从命令行运行php脚本,它们就可以正常工作。如果我直接从命令行运行它们,它们工作得很好。它们在Snow Leopard计算机上从Ajax运行良好。如果Ajax在我的Lion Mac上运行它们,它们就不起作用。

我尝试过的东西:

  • 我已经调整了httpd.conf,以便加载php模块,并重新启动了我的Mac。

  • Apache肯定在运行:127.0.0.1/~myname/得到了"它有效"的消息。

  • 我已经尝试过使用jquery和老式的longhand方法来运行ajax。同样的问题。(我已经确定jquery实际上正在加载。)

  • 我没有在我的php脚本中使用短代码"<?"

  • php文件与html和javascript文件位于同一目录中。权限与Snow Leopard计算机上的权限相同,在该计算机上一切正常

我试过在谷歌上搜索这个,但我被难住了。有什么建议吗?谢谢

问题似乎是我的Lion机器上安装了php 5.3.1。当我更新到php5.4时,它又开始工作了。

要更新到php5.4,我遵循了以下说明:http://php-osx.liip.ch/感谢您的帮助,Stackoverflow!

  • php是否已正确启用和配置
    编辑您的/etc/apache2/httpd.conf并确保行:LoadModule php5_module libexec/apache2/libphp5.so存在,然后重新启动Apache:sudo apachectl restart
  • 是否正在加载正确/预期的php.ini
    在Lion升级时,php.ini文件将重命名为/etc/php.ini-5.2-previous,并放置了一个新的示例PHP配置文件/etc/php.ini.default
    因此,您可能需要重新配置php.ini文件
  • 以前在/usr/lib/php/extensions/.../下安装的扩展已被删除
    因此,如果您有希望在5.3中继续使用的扩展,则需要重新构建它们
  • 现在可以加载一个包含<?php phpinfo();?>的phpinfo.php文件了吗
  • 现在,如果您使用mySQL指令(以及其他本地指令),请检查phpinfo
  • 苹果已经包含了Suhosin补丁和扩展
    Suhosin是硬化PHP项目的一部分,该项目旨在保护PHP应用程序免受缓冲区溢出和格式字符串漏洞的影响。将Suhosin的特性列表与您的php脚本进行比较
  • 可能会使用不推荐使用的php语句(在旧版本的php中有效)

现在有效吗?