【问题标题】:Run PHP code on local MacOS Jekyll site, port 4000在本地 MacOS Jekyll 站点,端口 4000 上运行 PHP 代码
【发布时间】:2015-05-19 12:43:42
【问题描述】:

我已经在我的本地主机(MacOS Mavericks)上建立了一个 Jekyll 网站。该网站在http://localhost:4000/website/ 提供服务,有关 Jekyll 的一切都运行良好。

但是,我现在想在 PHP 中创建一个联系表单,让我可以接收电子邮件。我在 website/ 文件夹中放置了一个contact.php 文件,并将表单POST 到该文件。在我的远程 Web 服务器上,它运行良好。但是,在 localhost 上,不会解析 PHP,并且在 contact.php 上显示纯文本。但是,PHP 在 localhost/contact.php 上被完美解析。

如何让我的本地主机(Apache?PHP?)在我的本地 Mac http://localhost:4000/ 上处理 PHP 文件(而不破坏我在同一 :4000 端口上侦听的 Jekyll 网站)?

【问题讨论】:

    标签: php localhost jekyll


    【解决方案1】:

    您不能使用相同的端口。端口确定将处理 IP 地址请求的应用程序端点。 Jekyll 服务器(WEBrick 库)默认使用 4000 端口。

    处理此问题的典型方法是使用“Web 服务”来添加动态功能。例如,jekyll docs 建议使用 FormKeepSimpleForm 之类的东西。

    您要自己设置“网络服务”。为此,它需要在另一个端口或另一个 IP 地址上。 “服务”将简单地充当一个端点来接受和处理您的表单帖子。在这种情况下,您可以在与 Jekyll 不同的端口(例如标准端口 80)上使用 Apache/PHP 设置网络服务器,然后编写与静态表单结合的 PHP 脚本(例如 webform.php)设置为回复并处理您的表单。

    注意:可以配置 Jekyll 和 Apache 以响应端口 4000 上的请求。但是,这两个应用程序(又名服务器)不能在同时。 ip:port 组合决定了将 Internet 请求发送到哪个应用程序。

    【讨论】:

      【解决方案2】:

      我知道这篇文章已经过时了,但这可能会对某人有所帮助...

      迈克·斯图尔特的回答非常好,描述了实现目标需要做什么。

      为了补充这个答案,以下是我如何在 Mac 上进行此类开发的具体细节。

      • 在 Apache 中配置 CORS
      • 在默认端口 4000 上运行 Jekyll 站点
      • 在默认端口 8888 上运行 MAMP 堆栈
      • 代码进入 MAMP 的 htdocs 文件夹 (htdocs/your_project)
      • PHP 位于单独的“php”或“your_project”文件夹内的其他文件夹中
      • Jekyll 监视“your_project”文件夹并正常编译到 _site

      您将遇到的 CORS 问题可以在开发过程中通过多种方式在本地解决。这是在 Apache 上启用 CORS 的好资源:http://enable-cors.org/server_apache.html

      配置好 CORS 后,您就可以在端口 8888 上对 PHP 进行 Ajax 调用。

      【讨论】:

        【解决方案3】:

        我在 Jekyll 服务器旁边运行 PHP 内置 Web 服务器。我打开了第二个终端窗口并导航到_site 文件夹。命令是php -S localhost:8000(或者你想使用的不是4000的任何端口)。

        请注意,我使用的是在浏览器中查看 localhost:8000,但同时运行 Jekyll 服务器很好,因为 Jekyll 会在我更改源代码时保持构建更新(需要刷新)。

        【讨论】:

        • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-03-29
        • 2019-10-22
        • 2021-02-09
        • 1970-01-01
        • 1970-01-01
        • 2020-01-26
        相关资源
        最近更新 更多