Apache学习

之前就架设过apahce,只是没有详细研究,安装过就没有管了,这次主要是系统对各个服务学习,把主要遇到的问题说下

1源代码编译安装

下载源码包xxxxx.tar.gz

Tar zxvf http.tar.gz

Cd http

./configure –prefix=/server/apache

Make && make install

2 apache加入到系统服务里面

Cp  /安装目录下/apache/bin/apachectl /etc/rc.d/init.d/httpd

Chkconfig  --add httpd

Chkconfig –level 345 httpd on

Apache加入启动项里面

Echo ‘/安装目录下/apache/bin/apachectl start’ >> /etc/rc.local

3虚拟目录配置

创建虚拟目录有利于便于访问

如创建web虚拟目录 他对应的物理路径是“/deng/web.

Alias /deng  “/deng/web”

<directory  “/deng/web”>

Options indexes mutiviews

Allowoverride none

Order allow ,deny

Allow form all

</directory>

需要访问这个虚拟目录 地址为 http://ip/deng

目录特性选项

Indexes 允许目录浏览
当客户仅指定要访问的目录,但没有指定要访问目录下的哪个文件,而且目录下不存在默认文档时, Apache 以超文本形式返回目录中的文件和子目录列表(虚拟目录不会出现在目录列表中)

MultiViews 允许内容协商的多重视图

MultiViews 其实是Apache的一个智能特性。当客户访问目录中一个不存在的对象时.

 All包含了除MultiViews之外的所有特性,如果没有Options语句,默认为All

ExecCGI 允许在该目录下执行CGI脚本

FollowSymLinks 可以在该目录中使用符号连接

Includes 允许服务器端包含功能

IncludesNoExec 允许服务器端包含功能,但禁用执行CGI脚本

4用户认证

 建立口令文件

Htpasswd –c /etc       /httpd/mysecret  user

Htpasswd /etc/httpd/mysecret user1

建立虚拟目录并配置用户认证

Alias /deng  ”/usr/local/deng”

<directory  “/usr/local/deng”>

Authtype basic

Authname “this is my private directory,please login:”

Authuserfile /etc/httpd/mysecret

Require user user1

</directory>

 

5虚拟主机的配置、

虚拟主机技术是把一台真正主机虚拟成许多的虚拟主机,

虚拟主机技术主要有分成,基于ip地址的虚拟主机,和基于域名的虚拟主机

其中现实环境中应用最多的是基于域名的虚拟主机

基于域名的虚拟主机配置

Namevirtualhost 192.168.1.5:80

<virtualhost  192.168.1.5:80>

Servername www.abc.com

Documentroot “/usr/www/web2”

</virtualhost>

<virtualhost 192.168.1.5:80>

Servername www.efg.com

Documentroot “/usr/www/web3”

</virtualhost>

需要提醒的是,这种虚拟主机配置需要主机迁移

Httpd.confservername改为servername 127.0.0.1:80 默认的是已经注释了

如访问虚拟主机时www.abc.com .www.efg.com提示403错误,你没有权限接入是因为你的虚拟主机目录权限没有配置

如上面需要,加入虚拟主机目录权限控制块

<directory “/usr/www/web2”>

Options followsymlinks

Allowoverride none

Order allow,deny

Allow from all

</directory>

基于ip地址的虚拟主机配置

<virtuallhost 192.168.1.5>

Servername 192.168.1.5:80

Documentroot “/usr/www/web4”

</virtualhost>