我在本地主机 (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建议使用 FormKeep 或 SimpleForm 之类的东西。
您要问的是自己设置一个“网络服务”。为此,它需要在另一个端口或另一个 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/