您的位置:首页 > 运维架构 > Apache

linux网站技术之Apache搭建

2011-06-13 22:48 302 查看
Apache服务器配置技术文档

1.基础知识

1.1rpm包安装目录结构

/etc/httpd/ 工作目录

/etc/httpd/conf/httpd.conf 主配置文件

/etc/httpd/conf.d/ 额外配置文件目录

/var/www/html/ 默认的网页存放位置

/var/www/cgi-bin/ 可执行的CGI程序目录

/var/log/httpd/ 默认的日志目录

/usr/sbin/apachect1 检测工具

/usr/sbin/httpd 进程启动脚本

/usr/bin/htpasswd 密码认证工具

1.2 源代码包安装目录结构

通常建议将下载的源代码包解压到/usr/local/src/目录下,而安装到/usr/local/apacheX路径下(X 可以理解成该源代码包的版本号,可随便定义 但自己一定记得是干什么用的)

/usr/local/src中,该目录常用于保存需要编译的程序源代码(目录)。

#tar -zxf httpd-2.0.59.tar.gz -C /usr/local/src 解压到指定路径

#cd /usr/local/src/httpd-2.0.59/ 进入到解压后的路径下

#.configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite 配置

[--enable-so] 设置Apache服务器可以使用动态加载模块功能

[--enable-rewirte]设置Apache服务器具有rewrite功能

(Apache服务器的rewrite功能可以实现对动态网页地址的重写,从而使网页访问这可以通过更加 简单和容易记忆的网页地址访问动态网页系统中的页面)

#make 编译

#make install 安装到/usr/local/apache2目录中

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

此时工作目录就是上面步骤中的 /usr/local/apache2

几乎所有的相关配置文档,以及相关的目录都在这个路径下

该目录下的目录和文件的介绍:

bin/ 包括服务器运行和管理所需的执行程序,httpd使服务器的执行程序,

apache1使服务程序的启动脚本。。。。。

lib/ 保存了服务器运行所需的库文件

conf 配置目录 httpd.conf使主配置文件

htdocs 默认网页存放路径 ,该目录作为web服务器的根目录

cgi-bin 可执行的CGI程序目录

manual 目录中保存了服务器的帮助手册文件使网页格式的

logs 日志存放目录 access_log访问日志文件 error_log错误日志文件

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

Apache服务的启动命令为:

#/usr/local/apache2/bin/apachectl start

没问题的话 启动是没有任何的提示信息的

在实际的应用系统中,Apache服务器所需要设置在linux系统启动时自动运行,因此需要将apachect1 本的启动命令写入到rc.local文件

#vi /etc/rc.local

//在文件末尾添加以下命令

/usr/local/apache2/bin/apachectl start

在httpd.conf配置文件中使用ServerName为Apache服务器设置的主机域名,应该在域的授权dns服务 器中进行A记录的设置。

重新启动httpd服务程序

#/usr/local/apache2/bin/apachectl restart

测试httpd.conf的语法

#bin/apachect1 -t

Syntax OK

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

Apache配置文件解析

httpd.conf文件的注释行的信息太多,获得完整的有效的配置清单需下列命令

#grep -v "#" conf/httpd.conf | head -5

截取文件httpd.conf文件中非#字符开头的字段中的前五行

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

httpd.conf中的全局配置 :这些配置项不包括在任何区域中,决定了Apache服务器的全局设置

以下是httpd.conf文件中比较常用的全局配置内容:

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

ServerRoot "/usr/local/apache2" -------------1

pidFile logs/httpd.pid ------------2

Timeout 300 -------------3

KeepAlive On -------------4

MaxKeepAliveRequests 100 -------------5

KeepAliveTimeout 15 -------------6

Listen 80 -------------7

ServerAdmin you@example.com -------------8

ServerName www.ltest.com:80 --------------9

DocumentRoot "/usr/local/apache2/htdocs" --------------10

ErrorLog logs/error_log ---------------11

Customlog logs/access_log common ---------------12

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

1.设置Apache服务器的跟目录,该目录包括了服务器运行必要的目录和文件

在httpd.conf中,如果设置的目录或文件不使用绝对路径,都将被理解为是在服务器根目录下

2.设置保存httpd服务器程序进程号(PID)的文件 默认logs/httpd.pid 该"logs"目录位于Apache根目录下

3.用于设置Web服务器与浏览器之间网络连接的超时秒数,默认设置为300s

4.当设置为Off时服务器不使用保持连接功能,客户机的每次请求连接只能从服务器返回一个文件,传输效率比较低;当KeepAlive设置为On时,客户机与服务器建立一次连接后可以请求传输多个文件,提高了服务器传输文件的效率,建议保持连接。

5.当使用KeepAlive设置保持连接有效时,需要使用MaxKeepAliveRequests设置客户端每次连接允许请求相应的最大文件数,默认100个。

6.设置保持连接的超时秒数,当客户机的两次相邻请求超过该设置值时需要重新进行连接请求,默认为15s

7.Apache服务器监听的网络端口,默认80

8.设置Apache服务器管理员的E-mail地址,当服务器出现问题时 同过此地址联系管理员

9.ServerName 用于设置Apache服务器的主机名

10.用于设置Apache服务器网页(文档)根目录在Linux系统中的实际目录。Apache服务器中的服务器根目录(ServerRoot)和文档根目录(DocumentRoot)比较容易混淆,应格外注意。

11.错误日志的路径及文件名,默认logs/error_log

12.设置Apache服务器中访问日志文件的路径和格式类型.

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

建立系统用户的个人主页

在httpd.conf配置文件中已经默认使用UserDir设置项设置了用户的个人主页目录为public_html,即所有系统用户的宿主目录下如果有名为public_html的子目录,该目录将作为用户在Apache服务器中个人主页的文档根目录。

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

#grep UserDir /usr/local/apache2/conf/httpd.conf

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

下面以qq建立个人主页为例说明Apache服务器中个人主页的管理与应用

使用su命令将用户的身份由root转变为普通用户qq,当前目录变为宿主目录

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

#su - qq

$pwd

/home/qq

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

由于权限的严格访问 因此需要为其他用户增加进入宿主目录的权限

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

$chmod o+x .

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

public_html子目录默认并不存在,需要用户使用mkdir命令建立,目录建立后向里面建立index.html的文件,该文件为用户个人主页的首页

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

$mkdir public_html

$vi pbulic_html/index.html

//输入文件的内容

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

在地址栏中输入http://server.ip/~qq/

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

如果能看到index.html文件的内容说明用户的个人主页建立成功。

==========================================================================================================================

域名虚拟主机的配置

下面将通过为"www.yahoo.com"和"www.baidu.com"在Apache服务器中配置虚拟主机为例,

1.找到httpd.conf文件 配置主配置文件,#vi /etc/httpd/conf/httpd.conf

2.在文件中的最后几行查到

Name VirtualHost *:80 将其前面的#号去掉 ;

3.再将下面几行例子复制到这行的下面 把每句的前面的#号都去掉 ;

将其编辑成如下内容

Name VirtualHost *:80

<VirtualHost *:80>

DocumentRoot /www/yahoo.com/html

ServerName www.yahoo.com

Errorlog /www/yahoo.com/logs/error_log

CustomLog /www/yahoo.com/logs/access_log common

</VirtualHost>

<VirtualHost *:80>

DocumentRoot /www/baidu.com/html

ServerName www.baidu.com

Errorlog /www/baidu.com/logs/error_log

CustomLog /www/baidu.com/logs/access_log common

</VirtualHost>

其各个目录的含义同上面的相同 这里就不做多余的累赘了!!!!!!!!

然后创建主配置文件中的相应的目录

#mkdir -p /www/yahoo.com/html

#mkdir -p /www/yahoo.com/logs

#mkdir -p /www/baidu.com/html

#mkdir -p /www/baidu.com/logs

再向目录中存放个网页文件 以用于测试

#echo "www.baidu.com" >/www/baidu.com/html/index.html

#echo "www.yahoo.com" >/www/yahoo.com/html/index.html

因为修改了主配置文件 因此要重启apache服务

#/usr/local/apache2/bin/apachectl stop

#

/usr/local/apache2/bin/apachectl start

查看端口 netstat -ant

然后在客户机上访问测验 如果没有做DNS服务器 可以找到hosts文件写入域名和IP的对应关系,以便能正确的访问到网站, 在地址栏分别输入 www.yahoo.com www.baidu.com 来测试 是否成功

-----------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息