php - 在本地 MacOS Jekyll 站点上运行 PHP 代码,端口 4000

标签 php localhost jekyll

我在本地主机 (MacOS Mavericks) 上构建了一个 Jekyll 网站。该网站位于 http://localhost:4000/website/。并且关于 Jekyll 的一切都运行良好。

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

How do I get my localhost (Apache? PHP?) to process PHP files on my local Mac http://localhost:4000/ (without breaking my Jekyll website that listens on the same :4000 port)?

最佳答案

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

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

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

注意:可以配置 Jekyll 和 Apache 以响应端口 4000 上的请求。但是,两个应用程序(也称为服务器)不能同时运行同一时间。 ip:port 组合决定了将互联网请求发送到哪个应用程序。

关于php - 在本地 MacOS Jekyll 站点上运行 PHP 代码,端口 4000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30325997/

相关文章:

php - PHP中的时间选择器

javascript - 如何为 php 创建的 html 表运行点击事件

php - 如何创建新的 key 对并将它们保存在文件中?

php - 在PHP中对两个对应的数组进行排序

javascript - 如何使用 javascript 获取域名后面的属性?

jekyll - 在不使用自定义插件的情况下在 Jekyll 中格式化数字

dns - 域名 foo.bar 指向 127.0.53.53 ——为什么?

google-chrome - 类型错误 : Cannot read properties of null (reading 'CodeMirror' )

github - jekyll 的表情符号

javascript - Jekyll 破坏 JSON 文件。箭头 ("=>")而不是 ":"