1

我对 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 模块/libphp5.so

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

    AddType application/x-httpd-php .php

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

那么......我还需要做什么/检查?先感谢您。

4

1 回答 1

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 脚本被正确处理,我得到了回显。

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

于 2013-12-26T01:19:54.797 回答