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

这都是折腾了俺的问题, 俺要记录下来, 以泄其愤:

1. 重启apache:  

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步:   打开终端, 开启扩展:

sudo a2enmod rewrite  

    或者是: 

sudo ln -s /etc/apache2/mods-cuailable/rewrite.load   /etc/apache2/mods-enabled/rewrite.load

   第2步:  修改一些东西

sudo vim /etc/apache2/sites-enabled/000-default

将其中所有的AllowOverride None  修改成 AllowOverride All.

备注:000-default实则为sites-available/default的链接,而AllowOverride None 则会完全忽略.htaccess文件,rewrite规则就不能生效,另外注意您的程序文件的权限不能忘记开启, 所以开启扩展后必须修改000-default文件。

然后重启apache服务;

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的链接。

 

 

 

 

 

 

 

 

你可能感兴趣的:(apache,ubuntu,apache2问题)