在Windows 7上安装了EasyPHP Devserver。
EasyPHP Devserver 17.0版本(相当最新)。
EasyPHP开发服务器Apache2.4.25版本。
你可以直接跳到我下面的结论。
下面是我的试验过程。
在 httpd.conf
文件,我添加了第二个Listen port
Listen 127.0.0.1:80
Listen 127.0.0.1:8080
然后在EasyPHP开发服务器网站控制台(http:/127.0.0.1:1112)我重新启动Apache。httpd.conf
文件将被重写为以下内容,并且Apache无法启动。(哪里可以看到错误日志?没有写进EasyPHP Devservereds-binaries/httpserver/apache.../logs)
Listen 127.0.0.1:80
Listen 127.0.0.1:80
如果我离开 httpd.conf
只有一个Listen端口的文件
Listen 127.0.0.1:8080
Apache启动成功,但 httpd.conf
也被改写成
Listen 127.0.0.1:80
并在EasyPHP开发服务器网站控制台(http:/127.0.0.1:1112)> Http服务器设置(齿轮图标)> 有一个下拉菜单,让我们选择端口:80。
有几个选项,80 8080,8000,8888,8008。如果我把这里改了,再重新启动Apache。httpd.conf
是根据这个设置来更新的。
结束语
我的结论是,无论我在设定的 httpd.conf
文件,该 Listen 127.0.0.1:80
会被EasyPHP开发服务器网站控制台的设置重写>Http服务器设置>端口。真正的设置是由EasyPHP开发服务器网站控制台控制的。的 httpd.conf
档案 Listen
指令无法使用。
疑问
问题来了。其实我只想把Apache Listens配置到多个端口,生产用80,开发用8080。请问如何操作?
蛮好的。我找到了一个Brute-Force解决方案。
在 EasyPHP-Devserver-17\eds-binaries\httpserver\apache...\eds-app-actions.php
第97行,它是将网站控制台设置替换为Apache httpd.conf。我刚刚在下面注释了 // file_put_contents (__DIR__ . '\conf\httpd.conf', $serverconffile);
而Apache httpd.conf将不会再被覆盖。很好,看到了吗?
看到了吗?这是开源的最好的部分之一。我们总是可以强制它。