日期:2014-05-16  浏览次数:20996 次

ubuntu上安装apache及简单配置
昨天在ubuntu10.10上安装了apache,为了在下次重装系统时不至于东拔西找,这里记录下来大致的过程。
1. 安装
因为ubuntu提供了强大的apt-get install,所以我的安装过程就是以apt-get的方式完成的。这种安全过程对于新手来说比较方便快捷,但也有其不便的地方,即一开始可能会不知道软件被安装到了什么位置(这个问题可以通过其他命令来解决)。
安装命令:sudo apt-get install apache2

上面一句简单的命令就能让系统自动完成apache的安全了,这里安装的是apache2。如果你不知道后面的软件名是什么的话,可以在输入完"sudo apt-get install apache"后按下Tab键,然后Terminal上会输出可选的软件项,这样就可以选择自己要安装的目标了。
2. 安装后查找软件位置
按照步骤1安装完apache后,很多情况下我们想去知道我们把系统装在了什么地方,这里可以使用命令:locate来完成。locate的作用是用来查找文档的,其格式为:locate 文件名。所以对于查找apache2来说,最简单的命令就是:
 locate apache2

但通过这种方式查找会搜索出太多的内容,以至于我们不清楚apache到底装在了哪个目录下,这就要靠自己来辨别了。如果我们对apache有更多一点了解的话,我们知道apache2有个文件叫httpd.conf,通过locate httpd.conf来查找就会精确很多。
关于locate的说明,可以在Terminal中通过man locate来学习,也可以到网上查找资料。
3. 配置apache
通过上面的步骤,我们已经安装好了apache2,并找到了其目录:/etc/apache2,现在就详细说一下这个目录下有哪些内容。进入/etc/apache2目录后,我们发现主要有以下文件和目录:
文件:
    apache2.conf:这个是apache的主配置文件,包含了用于给apache server传递信息的配置指令。此文件中通过Include指令包含了其他的配置文件,如下:
# 包含module配置文件
Include mods-enabled/*.load
Include mods-enabled/*.conf
# 包含所有用户自定义的配置
Include httpd.conf
# 包含端口列表
Include ports.conf
# 包含一些通用性的配置片段
Include conf.d/
# 包含虚拟主机配置
Include sites-enabled/

    由这些所包含的文件或目录大概可看出一些相关的配置所在的位置以及下面一些文件的作用。
    envvars:对于apache2ctl命令的默认环境配置信息
    httpd.conf:默认此文件为空,用于保存一些用户自定义的配置信息
    magic:本文件中配置了判断文件的MIME类型的信息
    ports.conf:包含端口列表配置信息
目录:
    conf.d:此目录中包含了很多通用性的apache配置信息,包括字符集(charset)、错误页配置(localized-error-pages)、安全方面配置(security)、其他主机访问日志信息等(other-vhosts-access-log)
    mods-available:这个目录中包含了所有apache2中默认提供的module信息,例如proxy、rewrite.load等。但很多module默认并未开启,所以此目录下的信息是所有可用module的集合;而当前开启了的module则需要从mods-enabled中查看。
    mods-enabled:该目录中包含了已开启的module信息。所谓开启,并不需要特殊的设置,只需要建立到mods-avaliable目录中相应module的软链接即可。如要开启rewrite模块,只需要在mods-enabled中建立相应的软链接,如下:
   
ln -s ../mods-avaliable/rewrite.load rewrite.load

    sites-available:类似于mods-available,这里放的是可用的virtualHost设置信息,当然真正有效的话,还需要通过在sites-enabled中建立软链接才可以。
    sites-enabled:

附:一个自定义的用户配置文件(httpd.conf)
<VirtualHost *:80>
        DocumentRoot /home/enjiex/nuc/apachetest/wwwroot     #虚拟主机目录

       <Directory /home/enjiex/nuc/apachetest/wwwroot>
         Order allow,deny
         Allow from all
       </Directory>


        RewriteEngine on
        RewriteRule /apachetest/(.*) /$1 [R,L]

        ProxyPreserveHost On
        ProxyPass /apachetest !

        ProxyPassReverse / http://127.0.0.1:8080/apachetest/

        DirectoryIndex index.html
                                                              1,1          顶端
	RewriteRule ^/$ http://127.0.0.1:8080/apachetest/index.html [P,L]
        RewriteRule /(.*\.(php|html|do)$) http://127.0.0.1:8080/apachetest/$1 [P,L]
        RewriteRule /(dtc.*) http://127.0.0.1:8080/apachetest/$1 [P,L]
</VirtualHost>

Listen 8079
<VirtualHost *:8079>
        ProxyPass / http://127.0.0.1:8080/comapi/
        ProxyPassReverse / http://127.0.0.1:8080/comapi/
</VirtualHost>

Listen 9999
<VirtualHost *:9999>
        ProxyPass / http://127.0.0.1:8080/test/
        ProxyPassReverse / http://127.0.0.1:8080/test/
</VirtualHost>


注意:上面的配置需要开启proxy、proxy_http和rewrite模板,不然会启动apache失败的。4 apache2的启动与停止
    默认情况下,安装完成apache后是默认启动的,但我们有时候需要手动去开启或停止apache服务。启动命令在/etc/init.d/目录中,命令如下:
开启:sudo ./apache2 start
重启:sudo ./apache2 restart
停止:sudo ./apache2 stop


更详细的信息,就需要去查询apache的配置手册了