我在我的localhost(MacOS Mavericks)上建立了一个Jekyll网站。该网站在http://localhost:4000/website/提供服务,关于Jekyll的一切运行正常。
但是,我现在希望在PHP中有一个联系表单,允许我接收电子邮件。我在网站/文件夹中放置了一个contact.php文件,并将表单POST给该文件。在我的远程Web服务器上,这非常有效。但是,在localhost上,PHP没有被解析,并且在contact.php上显示纯文本。但是,PHP在localhost / contact.php上完美解析。
如何让我的本地主机(Apache?PHP?)在我的本地Mac http://localhost:4000/上处理PHP文件(不会破坏我的Jekyll网站,它会监听同一个:4000端口)?
答案 0 :(得分:5)
您不能使用相同的端口。端口确定将处理IP地址请求的应用程序端点。 Jekyll服务器(WEBrick库)使用端口4000作为默认值。
解决此问题的典型方法是使用“Web服务”来添加动态功能。例如,jekyll docs建议使用 FormKeep 或 SimpleForm 之类的内容。
您要问的是自己设置“网络服务”。要做到这一点,它需要在另一个端口或另一个IP地址。 “服务”将仅作为接受和处理表单帖子的端点。在这种情况下,您可以在与Jekyll不同的端口上使用Apache / PHP设置Web服务器 - 例如标准端口80 - 然后编写一个PHP脚本(例如,webform.php),它与静态表单一起设置为回复并处理您的表格。
注意: 可能配置Jekyll和Apache以响应端口4000上的请求。但是,两个应用程序(也称为服务器)都无法在同一时间。 ip:port组合确定发送Internet请求的应用程序。
答案 1 :(得分:0)
我意识到这个帖子已经老了,但这可能对某人有帮助......
Mike Stewart的回答非常好,并描述了为实现目标需要做些什么。
要添加该答案,以下是我在Mac上进行此类开发的详细信息。
您可以在开发过程中通过多种方式在本地解决您遇到的CORS问题。这是在Apache上启用CORS的一个很好的资源:http://enable-cors.org/server_apache.html
一旦配置了CORS,您就可以在端口8888上对PHP进行Ajax调用。