linux web网站

#wed网站服务

1.卸载httpd及相关依赖包
[root@www~]#rpm -e httpd --nodeps
[root@www~]#yum -y install apr apr-dever cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre

2.源码编译及安装
解包
[root@www~]#tar zxf hhtpd-2.4.25.tar.gz -C /usr/src/
[root@www~]#cd /usr/src/hhtpd-2.4.25/
配置
[root@www httpd-2.4.25]#./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
–prefix:指定将httpd服务程序安装到哪个目录,如/usr/local/httpd
–enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
–enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护
–enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页
–enable-cgi:启用CGI脚本程序支持,便于扩展网站的应用访问能力
httpd的安装目录是由前面的–prefix指定的路径
默认安装在/usr/local/apache2目录下
编译及安装
[root@www~]#make
[root@www~]#make install
3.确认安装结果
[root@www~]#ls /usr/local/httpd/


主要目录和文件
服务目录:/usr/local/httpd/
主配置文件:/usr/local/httpd/conf/httpd.conf
网页目录:/usr/local/httpd/htdocs/
服务脚本:/usr/local/httpd/bin/apachectl
执行程序:/usr/local/httpd/bin/httpd
访问日志:/usr/local/httpd/log/access_log
错误日志:/usr/local/httpd/log/error_log
模块目录:/usr/local/httpd/modules


优化执行路径
[root@www~]#ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@www~]#ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

[root@www~]#httpd -v

5.添加httpd系统服务
以便通过chkconfig进行管理
[root@www~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
[root@www~]#vi /etc/init.d/httpd
编辑和添加
#!/bin/bsh
#chkconfig: 35 85 15
#description: Startup script for the Apache HTTP Server


注释:chkconfig 识别配置
chkconfig --服务识别参数,在运行级别3,5中启动。服务启动和关闭顺序为 85,15
description --服务描述信息

[root@www~]#chkconfig --add httpd
[root@www~]#chkconfig --list httpd

httpd 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭
[root@localhost~]#ll /etc/rc.d/rc3.d

----------------------------------------------

httpd服务器的基本配置

(一)Web站点部署过程

1.确定网站名称、IP地址
若要向internet中发布一个web站点,需要申请一个合法的互联网公网ip地址,并向dns服务提供商注册一个完整的网站名称。

[root@www ~]# cat /etc/sysconfig/network

Created by anaconda

NETWORKING=yes
HOSTNAME=www.bdqn.com

[root@www ~]# cat /etc/hostname

www.bdqn.com

[root@www ~]# reboot

2.配置并启动httpd服务

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf

200 #ServerName www.example.com:80
201 ServerName www.bdqn.com

[root@www ~]# /usr/local/httpd/bin/apachectl -t

Syntax OK

[root@www ~]# /etc/init.d/httpd start

[root@www ~]# netstat -anput | grep httpd

3.部署网页文档
[root@www ~]# cat /usr/local/httpd/htdocs/index.html

It works!

4.在客户机中访问Web站点
5.查看Web站点的访问情况
查看访问日志
[root@www ~]# tail /usr/local/httpd/logs/access_log
192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] “GET / HTTP/1.1” 200 44
192.168.4.110 - - [06/Apr/2011:14:24:06 +0800] “GET /favicon.ico HTTP/1.1” 404 209

记录客户机的ip地址、访问服务器的日期和时间、请求的网页对象等

查看错误日志(排查服务器运行故障)
[root@www ~]# tail /usr/local/httpd/logs/error_log

记录了发生错误的日期和时间、错误事件类型、错误事件的内容描述


若要对web站点进行更加具体、更加强大的配置,需要做进一步配置。
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
全局配置项

ServerRoot “/usr/local/httpd”
Listen 80
User daemon
Group daemon
ServerAdmin webmast@ben.com
ServerName www.benet.com
DocumentRoot “/usr/local/httpd/htdocs”
DirectoryIndex index.html index.php
ErrorLog logs/error_log
LogLevel warn
CustomLog logs/access_log common
PidFile logs/httpd.pid
CharsetDefault UTF-8
Include conf/extra/httpd-default.conf


常用的全局配置参数

如果配置文件中指定目录或文件位置不使用绝对路径,则认为在服务器根目录下(apache安装目录/usr/local/httpd)

ServerRoot:服务器根目录。要与DocumentRoot区分开

ServerAdmin:管理员邮箱

User:运行服务的用户身份

Group:运行服务的组身份

ServerName:网站服务器的FQDN(主机名+域名)

DocumentRoot:网页文档的根目录

Listen:监听的IP地址、端口号

PidFile:保存httpd进程PID号的文件

DirectoryIndex:默认的索引页文件

ErrorLog:错误日志文件的位置

CustomLog:访问日志文件的位置

LogLevel:记录日志的级别,默认为warn以上级别

AddDefaultCharset:设置站点中的网页默认使用的字符集编码

Timeout:网络连接超时,默认为300秒

KeepAlive:是否保持连接,可选On或Off

MaxKeepAliveRequests:每次连接最多请求文件数

KeepAliveTimeout:保持连接状态时的超时时间

Include:需要包含进来的其他配置文件


区域配置项

使用一对组合标记,限定了配置项的作用范围
定义‘/’目录区域的开始
Options FollowSymLinks 控制选项,允许使用符号连接
AllowOverride none 不允许隐含控制文件中的覆盖位置
Require all denied 禁止任何人访问此区域
定义/’目录区域的结束

Options FollowSymLinks 控制选项,允许使用符号连接

就是允许你的网页文件夹下的链接文件链接到首页目录以外的文件。举例来说,如果你把首页目录设置为/var/www/html,那么你的网页程序最多只能访问到/var/www/html目录,上层目录是不可见的。但是你可以通过链接把文件链接到/var/www/html目录以外的文件以访问该文件,如果FollowSymLinks被设置的话

从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override


Apache Options Indexes FollowSymLinks详解

禁止显示Apache目录列表-Indexes FollowSymLinks
如何修改目录的配置以禁止显示 Apache 目录列表。
缺省情况下如果你在浏览器输入地址:
http://localhost:8080/
如果你的文件根目录里有 index.html,浏览器就会显示 index.html的内容,如果没有 index.html,浏览器就会显示文件根目录的目录列表,目录列表包括文件根目录下的文件和子目录。
同样你输入一个虚拟目录的地址:
http://localhost:8080/b/
如果该虚拟目录下没有 index.html,浏览器也会显示该虚拟目录的目录结构,列出该虚拟目录下的文件和子目录。
如何禁止 Apache 显示目录列表呢?
要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可。
比如我们看看一个目录的目录配置:
<Directory “D:/Apa/blabla”>
Options Indexes FollowSymLinks #---------->Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all

你只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。
Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。
第二种方法
解决办法:
1、编辑httpd.conf文件
vi ./conf/httpd.conf
找到如下内容:
?BR> <Directory “C:/Program Files/Apache2.2/htdocs”>
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named explicitly — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

……
在Options Indexes FollowSymLinks在Indexes前面加上 – 符号。
即: Options -Indexes FollowSymLinks
【备注:在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。】

这样的话就属于整个Apache禁止目录浏览了。
如果是在虚拟主机中,只要增加如下信息就行:
<Directory “D:test”>
Options -Indexes FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all

这样的话就禁止在test工程下进行目录浏览。
备注: 切记莫把“Allow from all”改成 “Deny from all”,否则,整个网站都不能被打开。

还有一种方法:
可以在根目录的 .htaccess 文件中输入
<Files *>
Options -Indexes

就可以阻止Apache 将目录结构列表出来。


AllowOverride从字面上解释是允许覆盖的意思,即Apache允许另一配置文件覆盖现有配置文件。

我们通常利用Apache的rewrite模块对URL进行重写,rewrite规则会写在 .htaccess 文件里。但要使 apache 能够正常的读取.htaccess 文件的内容,就必须对.htaccess 所在目录进行配置。

从安全性考虑,根目录的AllowOverride属性一般都配置成不允许任何Override,即:

< Directory />
AllowOverride None
< /Directory>
在 AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。当此指令设置为 All 时,所有具有 “.htaccess” 作用域的指令都允许出现在 .htaccess 文件中。

而对于 URL rewrite 来说,至少需要把目录设置为:

< Directory /myblogroot/>
AllowOverride FileInfo
< /Directory>
以下是AllowOverride的详细参数:

AuthConfig

允许使用与认证授权相关的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

FileInfo

允许使用控制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod_mime中的 Add* 和 Remove* 指令等等)、控制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod_actions中的Action指令。

Indexes

允许使用控制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。

Limit

允许使用控制主机访问的指令(Allow, Deny, Order)。

Options[=Option,…]

允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令使用哪些选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值