在本地做网站开发或则是学习的时候,常常会碰到要在本地机子上搭好几个网站的问题.这个时候就可以用apache的虚拟主机来解决了.
最近在linux下面新装的apache跟原来在windows下面的有一些区别,apache的配置文件大致在这个目录下:
KIE40:~$ ls -F /etc/apache2
apache2.conf conf.d/ envvars httpd.conf magic mods-available/ mods-enabled/ ports.conf sites-available/ sites-enabled/
这里跟虚拟主机有关的是这么几个文件:
1.ports.conf 这是其中的一个配置文件,这里面设置了虚拟主机名称和监听端口:
NameVirtualHost *:80
Listen 80
有于这里已经设置了NameVirtualHost,所以后面就不要重复它了.
2.此外还有两个目录:
sites-available:这个目录下放的是可用的站点的配置,
sites-enabled:这个目录下方的是会被加载的站点的配置文件,仔细观察可以发现这里面的文件其实是sites-available目录下的文件的一个软链接而已.在apache启动的时候,sites-enabled目录下的所有配置文件都会被加载.
3./etc/hosts
这个文件相当于我们在windows里面Windows/System32/drivers/etc/下的hosts文件
为了能通过后面设置的ServerName访问到本地机子上的站点,需要在hosts文件里加上IP 地址和ServerName的关联,如:
127.0.0.1 www.example.com
接下来开始配置:
一,在sites-available目录下创建一个新的站点配置文件,如:example
KIE40:/etc/apache2/sites-available$ ls
default default-ssl example
二,打开example这个文件,写入下面这段内容:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.example.com
DocumentRoot /var/www/example
<Directory /var/www/example>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/example_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/example_access.log combined
</VirtualHost>
其中:
ServerAdmin是网站管理员的邮箱
ServerName 是虚拟主机的名称,也就是我们输入浏览器地址栏访问的地址
DocumenRoot 是网站的目录,linux下默认把网站放在/var/www目录下
<Directory /var/www/example>
</Directory>是网站目录的一些访问等的设置
ErrorLog 设定错误日志的位置
LogLevel 设定错误日志的控制等级
CustomLog 设定服务器请求日志文件的名称和格式
其中ServerName和DocumenRoot是一定要设置的.
三,将example站点”激活”
KIE40:/var/www/example$ sudo a2ensite example
Enabling site example.
Run '/etc/init.d/apache2 reload' to activate new configuration!
此时到/etc/apache2/sites-enabled目录下面可以看到一个名为wxample的链接文件:
KIE40:/etc/apache2/sites-enabled$ ls -al
总用量 8
drwxr-xr-x 2 root root 4096 2011-11-24 19:09 .
drwxr-xr-x 7 root root 4096 2011-11-24 18:34 ..
lrwxrwxrwx 1 root root 26 2011-10-29 12:20 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root 26 2011-11-24 19:09 example -> ../sites-available/example
四,设置hosts文件
KIE40:~$ sudo vim /etc/hosts
127.0.0.1 localhost
127.0.1.1 KIE40
127.0.0.1 www.example.com
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
五,最后步重启Apache.
重启apache的时候注意两点:
1.进入到apache2目录下执行restart命令
2.用sudo执行,因为80端口需要root权限才能监听.
KIE40:~$ cd /etc/init.d
KIE40:/etc/init.d$ sudo ./apache2 restart
* Restarting web server apache2 ... waiting [ OK ]
KIE40:/etc/init.d$
六,不出意外的话新站点就可以访问了.当然不同版本,不同系统,其本身的配置文件都有所差异,所以不一定一次就配成功,不过主要步骤大致是这样的.
=================
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。