基于端口的多XAMPP本地站点PHP自动配置方案问询
XAMPP多站点自动配置需求
原域名区分的多站点配置方式
随着本地站点数量增加,原基于域名的配置方式逐渐杂乱,具体步骤如下:
- 创建站点目录:
/.../www/site4 - 修改HOSTS文件:
127.0.0.1 localhost-site1 127.0.0.1 localhost-site2 127.0.0.1 localhost-site3 127.0.0.1 localhost-site4 - 编辑
httpd.conf配置文件:Listen 80 <VirtualHost *:80> DocumentRoot "C:/.../www/localhost-site4" ServerName localhost-site4 ServerAlias localhost-site4 ServerAdmin root@example.com </VirtualHost> - 站点索引页(PHP实现):
<ul> <?php $dirs = array_filter(glob('*'), 'is_dir'); foreach ($dirs as $key => $value) { echo "<li><a href='http://localhost-".$value."/'>".$value."</a></li><br/>"; } ?> </ul>
改用端口区分后的配置痛点
为简化HOSTS配置并支持局域网内其他设备访问,计划改用端口区分站点,此时HOSTS文件仅需保留:
127.0.0.1 localhost
但httpd.conf需要逐个手动配置监听端口与虚拟主机,站点越多配置越繁琐:
Listen 80 Listen 8001 Listen 8002 Listen 8003 <VirtualHost *:8001> DocumentRoot "C:/.../www/localhost-site1" ServerName localhost:8001 </VirtualHost> <VirtualHost *:8002> DocumentRoot "C:/.../www/localhost-site2" ServerName localhost:8002 </VirtualHost> <VirtualHost *:8003> DocumentRoot "C:/.../www/localhost-site3" ServerName localhost:8003 </VirtualHost>
期望实现的自动配置方案
能否通过PHP脚本,基于/www目录下的文件夹命名规则(例如文件夹名为site1-8001,其中8001为端口号),自动完成以下操作:
- 自动在
httpd.conf中添加对应端口的Listen配置 - 自动生成站点访问链接(如
http://site1:8001/) - 自动在
httpd.conf中添加对应的VirtualHost配置
内容的提问来源于stack exchange,提问作者Jammo
相关产品推荐
相关产品推荐

