PHP多端口站点/虚拟站点的配置方法
近期在学习PHP方面的知识,PHP方面的框架真是多:国产的ThinkPHP挺好用的,上手容易;Zend框架据说也很好,还没去研究过;Symfony也是个不错的选择,目录结构清晰,维护成本绝对对啊;其它框架等等……
学习是在window环境下进行的。
安装好WAMP环境后(可以自己独立安装后再配置,体验一下环境配置过程,有利于了解关键文件的作用与含义)。通过都是将Apache的目录定位到我们的项目根文件夹,然后下面包含很多独立的项目,这种方式不需要做端口监听或虚拟站点,直接访问即可。
方法1. 端口指定
当我们的项目位于多个文件夹项目中(不一定都在httpd.conf文件DocumentRoot指定的目录中),这时就需要进行多端口设置了,方便浏览和管理,如下是Symfony框架项目的配置,其它框架只有细微区别,在httpd.conf文件的最后加入:
# 确保必须要有这行
NameVirtualHost 127.0.0.1:8080# 这是对于你项目的配置
Listen 127.0.0.1:8080<Virtualhost 127.0.0.1:8080>
DocumentRoot "D:/PHP/Program/Jobeet/web"
DirectoryIndex index.php
<Directory "D:/PHP/Program/Jobeet/web">
AllowOverride All
Allow from All
</Directory>Alias /sf D:/PHP/Program/Jobeet/lib/vendor/symfony/data/web/sf
<Directory "D:/PHP/Program/Jobeet/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</Virtualhost>
说明:Alias指定了别名,表示/sf
别名是为了正确的显示symfony默认页面和WEB调试工具栏(Web Debug Toolbar)所需要的图片和JS文件。
保存文件后,重启Apache服务,就可能通过http://localhost:8080/来访问指定的项目了,的确方便了好多,之前学的是.net,都是在IIS中增加新站点,可谓异曲同工!
2.配置一个专用域名
如果你有管理员配置权限,最好设置虚拟主机(virtual hosts)而不是每次开始一个新项目添加一个新端口,或是选择一个端口并添加一个 Listen
语句,选择一个域名(例如 .localhost
真实域名添加在末尾)并添加一个 ServerName
语句:
# 这是对于你项目的配置
<VirtualHost 127.0.0.1:80>
ServerName www.jobeet.com.localhost
DocumentRoot "D:/PHP/Program/Jobeet/web"
DirectoryIndex index.php
<Directory "D:/PHP/Program/Jobeet/web">
AllowOverride All
Allow from All
</Directory>Alias /sf D:/PHP/Program/Jobeet/lib/vendor/symfony/data/web/sf
<Directory "D:/PHP/Program/Jobeet/lib/vendor/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
</Virtualhost>
使用Apache配置的该域名www.jobeet.com.localhost
必须在本地声明。如果你运行的是Linux系统,它应该在/etc/hosts
。如果你运行的是Windows XP,这个文件位于C:\WINDOWS\system32\drivers\etc\
目录。
添加这行:
127.0.0.1 www.jobeet.com.localhost
分别保存httpd.conf和hosts文件后,重启Apache,我们的虚拟域名就可以生效了。
资料参考:http://www.php-sf.com/forum.php?mod=viewthread&tid=17&extra=page%3D1