2011-12-04 51 views
21

是的,即将发布的PHP 5.4中有一个内置的web服务器,您可以在他们的发布候选中尝试(我最近才发现它也是!)在localhost外部运行PHP 5.4内置web服务器

http://php.net/manual/en/features.commandline.webserver.php

我需要什么帮助搞清楚的,有没有什么办法让它在localhost以外的域名运行(它运行在localhost精细,端口80)?即使127.0.0.1也不起作用。我在主机文件中放入虚拟主机名以指向127.0.0.1,并且它们也不起作用。我知道这只是一个候选版本,但我想知道其他人是否已经为此问题提出了解决方案,以便我可以在我的hosts文件中使用指向127.0.0.1的实际域名来测试我的应用程序。 OS是Windows 7 Professional SP1。

事情我已经尝试: 1.谷歌搜索(杜) 2.翻翻php.ini中的选项 3.尝试了127.0.0.1,我的局域网IP,我的WAN IP端口80转发和NAT回环问题修复(路由器运行DD-WRT)

+0

如果这是一个* web服务器*,而不是您在SuperUser或ServerFault上的最佳状态,则该网站将面向*实际使用PHP *进行编程。 – animuson

+0

我不确定它是否属于,因为这是PHP内置的东西,可能与PHP本身的配置有关。无论如何感谢您的建议! – Shanshui

+0

我给了它一些想法,我认为你是对的。我刚刚标记了自己的问题,以便将其移至ServerFault。希望主持人很快会过来。 – Shanshui

回答

52

我在Windows XP系统上做了这些测试,但是在Linux上也应该如此,通过修改命令。

运行你的PHP测试服务器这样的:

C:/php/php.exe -S 0.0.0.0:80 
or 
/usr/bin/php -S 0.0.0.0:80 

0.0.0.0将绑定到系统上的所有可用的IP地址。

在网络上的另一台机器上,我将主机文件配置为使用自定义域指向运行PHP的系统的内部IP。这不是127.0.0.1,因为它指的是本地主机,在我的情况下,我将我的主PC指向192.168.88.247这是运行PHP的XP机器。请注意防火墙应该被禁用或设置为允许运行php的机器上的端口80上的流量。

我配置我的路由器端口转发从外部端口80到192.168.88.247:80的流量。然后在外部网络上使用PC上的hosts文件,我将虚假域配置为指向我的WAN IP。我能够从外部访问PHP Web服务器。

这就是说,它只是一个用于测试的服务器,所以可能存在未知的安全风险将其向外界开放。

希望能帮助你。

+0

感谢那0.0.0.0提示! – Shanshui

+0

感谢0.0.0.0提示!太... ;-) – ZEE

+0

如何使它只接受来自预先指定主机的连接? –