首先我们简单安装一下apache
#tar zxvf httpd-2.2.9.tar.gz
#cd httpd-2.2.9
#./configure --prefix=/usr/local/apache
#make
#make install
/usr/local/apache/bin/apachectl start 成功启功这样简单的安装就OK了
-------------------------以上是前提---------------------------------------------------------
1. 查看版本
# /usr/local/apache/bin/apachectl -v
2.查看已编译好的模块
#/usr/local/apache/bin/apachectl -l
3.查看配置文件语法是否有错误
# /usr/local/apache/bin/apachectl -t
Sync OK证明没有错误
4. 指定pid路径
apache默认在logs目录下一启动apache就会在logs目录下生成一个httpd.pid
指定它,修改httpd.conf
此文件里加上 PidFile lili/httpd.pid 可以用绝对路径定,这样写实际是在/usr/local/apache/lili这个目录下事先建好lili目录
5. 一些优化配置解析
#Timeout 300 若300秒后没有收到或送出数据就切断该连接
# KeepAlive Off 不使用保持连接功能,即客户一次请求连接只能响应一个文件,建议设置为On,即允许使用保持连接的功能
#MaxKeepAliveRequests 100 在使用保持连接功能时,设置客户一次请求连接能响应的最大上限
#KeepAliveTimeout 15 在使用保持连接功能时,两个相邻的连接的时间间隔超过15秒,就断开
# 设置使用prefork MPM运行方式的参数,此运行方式是Reh Hat默认的方式
#StartServers 8 设置服务器启动时运行的进程数
#MinSpareServers 5 Apache在运行时会根据负载的轻重自动调整空闲子进程的数目,若存在低于5个空闲子进程时,就创建一个新的子进程准备为客户提供服务。
#MaxSpareServers 20 若存在的空闲子进程高于20就创建逐一删除子进程来提高系统性能
#MaxClients 150 限制同一时间的连接数不能超过150
#MaxRequestsPerChild 1000 限制每个子进程在结束处理请求之前能处理的连接请求为1000
#Include conf.d/*.conf 目录下的所有以conf结尾的配置文件包含进来
#
LoadModule cgid_module modules/mod_cgid.so
当使用内置模块worker.c时动态加载cgid_module
#User nobody
Group nobody 设置运行apache服务器的用户和组
#ServerAdmin root@localhost 设置apache服务器管理员的邮件地址
# 设置服务器根的访问权限
#Options FollowSymLinks 允许符号链接跟随,访问不在本目录下的文件。
#AloowOverride None 禁止读取.htaccess配置文件内容
#Order allow,deny 指定先执行允许,访问规则,再执行拒绝访问规则
#Allow from all 设置允许访问规则,允许所有链接
#
Options -Indexes
ErrorDocument 403 /error/noindex.html
对apache服务器根的访问不生成目录列表,同时指定错误输出的页面
#
UserDir disable
不允许每用户的服务器配置
#DirectoryIndex index.php index.jsp index.html 当访问时依次查找的面页顺序
#AccessFileName .htaccess 指定保护目录配置文件的名称
#
Order allow,deny
Deny from all
拒绝访问以.ht开头的文件,即保证.htaccess不被访问
#TypesConfig /etc/mime.types 指定负责处理MIME对应格式的配置文件的存放位置
#DefaultType text/plain 指定默认的MIME文件类型为纯文本或HTML文件。
#
MIMEMagicFile conf/magic
当mod_mime_magic.c模块被加载时,指定Magic信息码配置文件的存放位置
#HostnameLookups Off 只记录连接apache服务器IP的地址,而不记录主机名
#ErrorLog logs/error_log 指定存放错误日志的位置
#LogLevel warn 指定记录的错误信息的详细等级为warn级别
#CustomLog logs/access_log combined 指定访问日志位置和格式为combined(混合型)
#ServerSignature On 设置apache自己产生的页面中使用apache服务器版本的签名
#Alias /icons/ "/var/www/icons" 设置内容协商目录的访问别名
#
DAVLockDB /var/lib/dav/lockdb
指定DAV加锁数据库文件的存放位置
#ScripAlias /cgi-bin/ "/var/www/cgi-bin" 设置CGI目录的访问别名
#
Scriptsock run/httpd.cgid
由于Red Hat 中不使用worker MPM运行方式,所以不加载mod_cgid.c模块
#
AllowOverride None
Options None
Order allow,deny
Allow from all
设置CGI目录的访问权限
#AddDefaultCharset ISO-8859-1 设置默认字符集
#AddCharset ISO-8859-1 .iso8859-1 .latln1............... 设置各种字符集
#AddType application/x-tar .tgz 添加新的MIME类型从而避免用户编辑/etc/mime.types
#AddHandler imap-file map
AddHandler type-map var
设置apache服务器对某些扩展名的处理方式
#AddOutputFilter INCLUDES .shtml 使用过滤器执行SSL
#Alias /error/ "/var/www/error/" 设置错误页面目录的别名
-------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------
配置Apache
1.基本配置
Apache默认已经配置好大部分功能,但根据用户的具体情况考虑来修改或添加其它基本指令。
1) KeepAlive 保持连接功能,即一次请求连接响应多个文件。将KeepAlive的值设置为on,可以提高访问性能
2) MaxClients 150 限制同一时间的连接不能超过150个。根据服务容量修改引值。
3) ServerAdmin root@localhost 设置apache服务器管理员的邮件地址
4) ServerName www.abc.com:80 首先删除其前面的“#”号,然后设置服务器的FQDN(完全合格的域名)
5) DirectoryIndex index.html index.html.var 访问服务器时依次查找的页面
6) IndexOptions 可以在此指令后添加FoldersFirst表示让目录列在前面(类似于资源管理器)
2.分割配置任务
Apache中分割配置任务的机制有两种方法,即Include和.htaccess文件.
1)使用Include指令
可以用Include指令将主配置文件分割,例子如把所有与虚拟主机相关的配置单独保存成一个配置文件,然后在主配置文件中包含进来。
例:#Include conf/extra/httpd-vhosts.conf 这个是主配置文件中的设置把注释去了就OK了,然后在conf/extra/目录下有个httpd-vhosts.conf文件.在这个文件里配置虚拟主机。
2) 使用.htaccess文件
可以使用此文件改变主配置文件中的配置,但是它只能设置对.htaccess文件存放的目录的访问控制。与Include指令不同,此文件中的配置可以覆盖主配置文件中的配置,而使用Include指令只是将子配置文件简单地包含主配置文件之中。
何时使用.htaccess文件?
* 在多个用户之间分割配置
* 想在不重新启动服器的情况下改变服务器配置
注:在可以遥情况下尽量避免使用.htaccess文件,因为使用它会降低性能。
要使用.htaccess文件,必须经过以下两个配置步骤:
* 首先在主配置文件中启用并控制对.htaccess文件的使用。
** 然后在需要覆盖主配置文件的目录下生成.htaccess文件。
启动并控制使用.htaccess文件
1) 设置文件名称。必须保证在主配置文件中包含如下的配置语句:
AccessFileName .htaccess
Order allow,deny
2) 控制在.htaccess文件中可以使用的指令组。要控制在.htaccess文件中可以使用的指令组,需在主配置文件中使用AllowOverride指令,可在AlowOverride指令所使用的指令组如下。
AuthConfig:进行认证、授权及安全的相关指令。如AuthDBMGroupFile、AuthDBMUserFile、AuthGroupFile、AuthName、AuthType、AuthUserFile及Require.
FileInfo: 控制文件处理方式的相关指令,如DefaultType、ErrorDocument、ForceType、LanguagePriority、SetHandler、SetInputFilter及SetOutputFilter。
Indexes:控制目录列表方式的相关指令,如AddDescription、AddIcon、AddIconByEncoding、AddIconByType、DefaultIcon、DirectoryIndex、FancyIndexing、HeaderName、IndexIgnore、IndexOptions及ReadmeName.
Limit:进行目录访问控制相关指令,如Allow、Deny及Order.
Options:启用不能在主配置文件中使用的各种选项,如Options、XBitHack.
All: 可以使用以上所有指令,如全部指令组
None: 禁止处理.htaccess文件。
4.生成.htaccess文件
当在主配置文件中配置了对.htaccess文件的启用和控制之后,接下来就可以在需要覆盖主配置文件的目录下生成.htaccess文件。.htaccess文件中可以使用的配置指令取决于主AllowOverride指令的设置
5. 使用.htaccess文件举例
1)首先在文档根目录下生成一个private目录,并创建测试文件:
cd /var/www/html
mkdir private
cd private
touch test
2) 修改主配置文件:
vi /etc/httpd/conf/httpd.conf
添加
AllowOverride Options
3)重启服务
service httpd restart
4)在/var/www/html/private目录下生成.htaccess文件
vi /var/www/html/private/.htaccess
添加配置语句
Options -Indexes
注:对.htaccess文件的修改不需要重启服务就可生效.
*************************************************************************************************
*************************************************************************************************
配置每个用户的Web站点
需求:为了让安装了apache的本地计算机上,拥有用户账号的每个用户都能够架设自己单独的Web站点,就有必要配置每个用户的Web站点.
配置每个用户的Web站点,需经以下两步
1. 修改主配置文件启用每个用户的Web站点配置
2. 修改主配置文件为每个用户的Web站点目录配置访问控制.
例: 1.修改配置文件
vi /etc/httpd.conf/httpd.conf
修改以下部分的配置:
基于安全考虑,禁止root用户使用自己的个人站点
UserDir disable root
UserDir public_html
设置每个用户Web站点目录的访问权限,将下面配置行前的"#"去掉
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwneMatch IncludesNoExec
Order allow,deny
Allow from all
Order deny,allow
Deny from all
重启httpd
service httpd restart
查看当前用户
whoami
lili
cd 回到lili的家目录
mkdir publi_html
cd ..
chmod 711 lili
cd lili/public_html
vi index.html
this is lili's Space!
客户端访问 http://IP/~lili 返回页面为 this is lili's Space!
未完待续........................
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com