PHP代码在浏览器中显示为纯文本而不进行处理

时间:2013-12-25 23:47:31

标签: php apache mod-php

我是PHP和Mac OS X上的新手。

我在前端(笔记本电脑上的浏览器)上有以下代码:

$('form').on('submit', function(e) {
    $.post( 'save.php', $(this).serialize(), function(response) {
        console.log( response );
    });

    e.preventDefault();
});

这个简单的PHP代码在后端(我的笔记本电脑上的Apache服务器):

<?php

$f = $_POST['content']); //content is coming from a form textarea

echo $f;

我希望我提交的内容在控制台上回显(通过PHP)。相反,我在控制台中获取了整个PHP代码。我的基本理解是服务器没有执行PHP代码,而是将其作为纯文本返回。

我已经搜索了三个小时并执行了以下操作:

  1. (重新)安装了MAMP。
  2. 确保Apache服务器实际运行
  3. 确保我通过Apache访问该站点,而不是在浏览器中将其作为文件打开。我在做/localhost/~username/index.html
  4. 检查httpd.conf是否包含此行,它确实:

    LoadModule php5_module modules / libphp5.so

  5. 将此添加到httpd.conf并重新启动Apache服务器:

    AddType application / x-httpd-php .php

  6. 然后我开始阅读PHP文档并找到this,它描述了我遇到的问题和解决方案。问题是,与libphp5.so不同,我实际上在modules文件夹下没有mod_php.so或lib_perl.so文件。我也在Spotlight上搜索过它们,它没有返回任何内容。

    那么......我还需要做什么/检查?提前谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。我认为问题源于我自己对OS X缺乏了解,尤其是Apache / MAMP(我对两者都不熟悉!)。具体来说,我没有意识到OS X运行自己的Apache服务器,而且当你安装MAMP时,它基本上为你提供了一个备用安装(我想?)。当我尝试使用'sudo apachectl -k start'从终端启动Apache时我意识到这一点,并且它说进程已经运行了。然后我做了一些谷歌搜索并理解了原因。

然后我实施了解决方案。以前,我拥有User \ Sites下的所有内容,而我正在以纯文本形式返回PHP脚本。我将文件移到了Applications / MAMP / htdocs。然后我运行了MAMP PRO,它显示Apache正在端口8888上运行。所以我导航到localhost:8888 / ~username /并提交了表单,PHP脚本处理正确,我得到了回声。

如果我的理解不正确,有人会纠正我。但至少我的小项目现在有效。 :)