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.conf中servername改为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>