一、软件安装
1、源文件件解压
从官方网站下载httpd-2.2.2.tar.tar 安装包,考到/usr/src/目录
tar zxvf httpd-2.2.2.tar.tar
2、编译安装(可安INSTALL文档说明进行)
cd /usr/src/httpd-2.2.2
./configure --prefix=/usr/local/apache2
make
make install
3、启动与关闭APACHE2服务
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
4、测试APACHE2是否服务启动成功
如果显示it works就表示服务已成功。
二、软件配置篇
1、基本环境配置
编译安装的
APACHE配置文件为 /usr/local/apache2/conf/httpd.conf
ServerRoot "/usr/local/apache2" apache的安装路径。相对路径都以该目录根。
User daemon
Group daemon apache启动服务的用户和组。2.2以前版本可能会用nobady用户及组。
DocumentRoot "/usr/local/apache2/htdocs" apache默认站点的根目录。
<IfModule dir_module>
DirectoryIndex index.html
</IfModule> 此处可增加站点默认的首文件名。
2、目录设置
<Directory /yourdir>
......
</Directory>
options属性有
ExecCGI:使该目录下的CGI具有可执行的能力。
FolowSymLinks: 让你的link的目录或者文件,虽然在其它目录下,仍可以连接出去。
Indexes:如果在该目录下面找不到index.html时,就显示整个目录下的文件名。请慎用。
MultiViews:这有点类似多国语言支持。
ALL:全部属性都启动。但不包含MultiViews.
如:
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
这是默认的站点目录设置,建议去掉indexes属性。
3、访问控制(配合Directory块对目录进行访问控制)
Order明确了访问控制指令按什么顺序执行的。
Allow允许访问站点的主机名列表。
Deny 拒绝访问站点的主机名列表。
如:以例目录设置例子。
三、虚拟主机篇
1、启用虚拟主机
去掉httpd.conf文件中 Include conf/extra/httpd-vhosts.conf 前面的# 注释.
2、编辑/usr/local/apache2/conf/extra/httpd-vhosts.conf 文件
1)注释掉以下内容,或者修改它。因为默认这几个站点我们根本不存在,如不去掉,启用apache服务会报错。
<VirtualHost *:80>
ServerAdmin
webmaster@dummy-host.example.com DocumentRoot /www/docs/dummy-host.example.com
ServerName dummy-host.example.com
ServerAlias
www.dummy-host.example.com ErrorLog logs/dummy-host.example.com-error_log
CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin
webmaster@dummy-host2.example.com DocumentRoot /www/docs/dummy-host2.example.com
ServerName dummy-host2.example.com
ErrorLog logs/dummy-host2.example.com-error_log
CustomLog logs/dummy-host2.example.com-access_log common
</VirtualHost>
3、加入虚拟站点,如现加了以下两个站点。
此时会有这样的现象,
www.web1.com能打开,而
www.web2.com却打不开。原因是因为web1的目录在/usr/local/apache2/htdocs
目录之下,而我们已对/usr/local/apache2/htdocs目录进行了权限控制处理。但web2站点的目录/www/web2
并未进行其访问授权。所以打不开。提示权限不够之类的信息。
5、编辑httpd.conf 文件,加入以下内容。
<Directory "/www/web2">
Order allow,deny
Allow from all
</Directory>
6、保存退出重启apache服务,一切正常。
转载:http://blog.chinaunix.net/u/21771/showart.php?id=327703