php-S localhost:port:表示永远等待localhost
我安装了php-S localhost:port:表示永远等待localhost,php,Php,我安装了灯 我有phptest.php,它包含 我试过: [.public_html]$ php -S localhost:54545 phptest.php [Mon Jan 25 21:06:52 2016] PHP Warning: Module 'xdebug' already loaded in Unknown on line 0 PHP 5.6.14 Development Server started at Mon Jan 25 21:06:52 2016 Listening
灯
我有phptest.php
,它包含
我试过:
[.public_html]$ php -S localhost:54545 phptest.php
[Mon Jan 25 21:06:52 2016] PHP Warning: Module 'xdebug' already loaded in Unknown on line 0
PHP 5.6.14 Development Server started at Mon Jan 25 21:06:52 2016
Listening on http://localhost:54545
Document root is /home/simha/.public_html
Press Ctrl-C to quit.
然后我打开http://localhost:54545
在Chrome中,显示等待本地主机的
我试过http://localhost:81
(参见下文)和http://localhost:81/~simha
它们都能工作。它显示了相应的根目录。我的Apache看起来没有问题
还有一些关于主机
和容器
的背景知识:
我有安装了LAMP的Linux操作系统。使用systemd nspawn
我在一个容器中使用LAMP运行相同的Linux操作系统
我为主机灯设置了80个端口,为集装箱灯设置了81个端口
在主机系统中不存在这样的问题。在php-S localhost:xxxxx phptest.php
但是在容器中,它只是说等待localhost
编辑:我应该更清楚地知道,两个web服务器(Apache和PHP-S)在同一个端口上运行会阻止连接,而不是访问脚本
如果已经安装了LAMP,则不需要运行php-S
。您可能有两台web服务器尝试访问同一脚本,但其中只有一台可以访问,另一台被阻止:
默认情况下,容器的虚拟端口无论如何都不会连接到主机的物理端口。这就是为什么您不能访问容器中运行的PHPWeb服务器。您需要先将主机上的物理端口绑定到容器的虚拟端口
检查并查找--port
选项
它的格式如下:
--port=<protocol>:<host_port>:<container_port>
它将主机上端口80上的TCP重定向到容器上的端口545。如果主机上的端口80已经绑定(很可能是Apache),请使用另一个端口。我将从执行PHP Web服务器开始,不使用任何脚本,只需PHP-S localhost:54545
,然后请求任何静态(即非PHP)文件。如果它能工作,那么问题最可能出现在您的PHP脚本phptest.PHP
。我已经添加了phptest.phpAnd的内容了吗?它对静态文件有效吗?静态意味着什么?正如我所写的:任何静态(即非PHP)文件。任何未被web服务器处理的内容(CSS、JS、图像、任何其他数据)。我有另一台启动了lamp的pc。php-S在那里工作,不需要等待本地主机,只是您误解了它。这意味着,内置web服务器在同一时间只能处理一个请求。如果请求因某种原因被阻止(未结束),则不会处理任何其他请求。这绝对不意味着不能有更多不同的web服务器为相同的文件提供服务。为什么或者如何阻止脚本读取?@Dawiderency,但是如果他将LAMP服务器配置为在与php内置服务器相同的端口上侦听,脚本不会仍然被阻止吗?两者如何同时提供相同的脚本?是的,当然,不能将两个已处理的进程绑定到同一端口。但是我不认为LAMP(即Apache)在默认情况下绑定到他使用的端口54545(php-s localhost:54545
)。无论如何,它与任何文件都无关。为什么要阻止读取的文件?@SanthoshYedidi很抱歉,但您的问题(甚至是编辑过的)与此答案或这些注释无关。我应该使用哪些参数--port。我正在运行systemd nspawn-bD/home/Mycontainer
对不起,我不知道nspawn
,我只是在谷歌上为你搜索了一切。你必须自己测试,我甚至不能尝试。只需在容器内重定向用于PHP web服务器的TCP端口即可。我添加了一个示例,即如何调用它。否。我尝试了--端口tcp:80:545454
我得到了无法解析主机端口tcp:80:545454:无效参数
。除此之外,我希望避免端口转发。因为localhost:54545/1.html工作,而localhost:54545/phptest.php不工作。有没有办法在我连接时查看一些日志文件。顺便说一句,它应该是--port=
(您缺少了equals。您可以省略协议,因此它可能看起来像--port=80:54545
,但如果它已经在主机上使用过,就不要使用80。但是如果它对静态文件有效,端口转发似乎不是原因。
systemd-nspawn -bD /home/Mycontainer --port=tcp:80:54545