apache2在ubuntu11.10下的操作及问题汇总

来源:岁月联盟 编辑:exp 时间:2012-03-05
这都是折腾了俺的问题, 俺要记录下来, 以泄其愤:
 
1. 重启apache: 
 
1
sudo /etc/init.d/apache2 restart
 
 
2. apache 虚拟主机以后出现[warn] NameVirtualHost *:80 has no VirtualHosts
 
   解决办法: 直接吧httpd.conf 中NameVirtualHost *:80 这行注释掉
 
   原因:NameVirtualHost语法错误 ,对于同一主机支持多个虚拟主机的情况,只需要命名一次NameVirtualHost,如果在每个虚拟主机配置文件中都加上NameVirtualHost *:80 ,则会报这个警告。
 
    原来在/etc/apache2/ports.conf中定义了*:80的VirtualHost , 我又在httpd.conf中重新定义了一遍, 所以呢, 就错了. 只要注释掉httpd.conf中的NameVirtualHost *:80 就ok了;
 
 
 
3.  ubuntu服务器开启Apache重写扩展:
 
    第1步:   打开终端, 开启扩展:
 
1
sudo a2enmod rewrite 
    或者是:
 
1
sudo ln -s /etc/apache2/mods-cuailable/rewrite.load   /etc/apache2/mods-enabled/rewrite.load
   第2步:  修改一些东西
1
sudo vim /etc/apache2/sites-enabled/000-default
将其中所有的AllowOverride None  修改成AllowOverride All.
备注:000-default实则为sites-available/default的链接,而AllowOverride None 则会完全忽略.htaccess文件,rewrite规则就不能生效,另外注意您的程序文件的权限不能忘记开启, 所以开启扩展后必须修改000-default文件。
 
然后重启apache服务;
 
1
sudo /etc/init.d/apache2 restart
其他参考:
 
       Ubuntu下apache2的rewrite模块默认是不加载的。
 
       只要运行了一下这个命令:a2enmod rewrite 就可以启用rewrite模块了。
 
       或:
 
       sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
 
        Apaceh2 多了一组a2enmod, a2dismod指令,用于启用和禁用Apache的模块。a2enmod用于在Apache启用指定的   模块,它实际上做的是在/etc/apache2 /mods-enabled目录下创建模块文件的符号链接。相反a2dismo则是通过删除符号链  接而达到禁用指定模块的功能。当然,启用已启用的模块或禁用已禁用的模块是不会报错的。
 
        这里有必要说明一下:
 
        /etc/apache2/mods-available 放apache可用的模块文件
 
       /etc/apache2/mods-enabled 放apache已启用的模块文件的链接
 
       弄明白了,去查看一下/etc/apache2/mods-enabled目录,果然有新增了一条rewrite.load的链接。
 
 
 
 作者 真悲剧开心男