centos5.5怎么安装web服务器

author author     2023-04-03     256

关键词:

一、web的安装配置
1、安装:yum install httpd mod_ssl -y
mod_ssl 是实现 https 协议时所依赖的包
2、配置文件的相关说明:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd,这里可以定义MPM的类型
模块目录:
/usr/lib64/httpd/modules
/etc/httpd/modules
/etc/httpd/modules是/usr/lib64/httpd/modules的链接文件
主程序:
/usr/sbin/httpd: prefork 模式
/usr/sbin/httpd.event: event模式
/usr/sbin/httpd.worker: worker模式
日志文件:
/var/log/httpd/access_log: 访问日志
/var/log/httpd/error_log: 错误日志
站点文档的根目录:
/var/www/html

二、httpd的配置文件说明
# grep "Section" httpd.conf
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts
主要分为三部分:全局配置,主服务器配置,虚拟主机的配置。主服务器和虚拟主机一般不同时使用;默认仅启用了主服务器。在每个部分中有许多指令参数,这些指令参数不区分字符大小写,但其值有可能会区分大小写。

三、配置文件选项详细说明
1、持久连接
通常的参数有:
KeepAlive On|Off 是否开启持久连接功能。默认是 Off。
以下这2个指令参数只有在KeepAlive On 时才有效
KeepAliveRequests 100 允许的一次持久连接的最大请求数。
KeepAliveTimeout 2次持久连接时间的间隔

验证效果:

2、MPM 参数
ServerStart 参数的验证,共有9个相关的进程,其中一个是其他 8 个的父进程:

3、监听的端口
指定格式:Listen [IP:]port 默认的端口号是80
这个端口可以自己指定,一般使用大家熟知的端口,常用的有 80 和 8080。
4、DSO 动态共享对象
在这里可以实现动态库的装载,可以使用 httpd -D MODULES 或者 httpd -M 来查看已加载的模块名。

示例:
使用 mod_deflate 模块压缩页面来优化传输速度。
未使用 mod_deflate 模块,访问 http;//192.168.1.66/messages 文件时相应的字节数大小是:316080 字节。
加载 mod_deflate 模块,并进行配置 vim /etc/httpd/conf/httpd.conf。

加载后的验证,加载 mod_deflate 模块后的大小是 41902 字节,压缩比还是相当可观的。

5、指定站点的根目录
DocumentRoot “/var/www/html” 这是 rpm 安装方式的默认的根站点目录。当然这个可以根据自己的需求来设定。
6、基于目录和文件的访问控制

使用 directory 指令基于本地文件系统来实现对目录的访问控制。
常见的控制指令有:
Options:
Indexes:Indexes: 当访问的路径下无默认的主页面,将所有资源以列表形式呈现给用户。
FollowSymlinks: 跳跃符号链接
AloowOverride: 支持在每个页面目录下创建.htaccess用于实现对此目录中资源访问时的访问控制功能。
AuthCofig:用于实现用户认证的目的。
Order结合deny from、allow from 一起使用,来基于 IP 地址设定访问控制
例如:
这是设置访问白名单的设置,只允许 172.16 网段的客户端来访问对应的目录。当然 from 后面的地址是比较灵活的,像:172.16,172.16.0.0,172.16.0.0/16,172.16.0.0/255.255.0.0这种形式的都是允许的。
Order allow,deny
Allow from 172.16.0.0/16
当然,上面对目录的控制,也可以使用 Locaton 指令基于URL来实现。
DocumentRoot “/var/www/html”
<Directory "/var/www/html/admin">
访问控制参数
</Directory>
等价于:
<Location "/admin">
访问控制参数
</Location>
对于 Option Indexex参数示例,一般此选项作为文件服务器,提供下载使用时使用到此选项,其他情况应慎重使用。
7、指定默认访问的主页面
默认的使用格式如下:这里也可以自己定义主页面
DirectoryIndex index.html index.html.var
8、配置日志功能

ErrorLog "/path/to/error_log" 指明错误日志的路径,可以适应相对地址。相对于 ServerRoot 指令所定义的目录
LogLevel debug|info|notice|warn|error|crit|alert|emerg 指定日志的级别
LogFormat 指定日志文件的格式
CustomLog "/path/to/access_log" LogFormat_Name 指定 access_log 的路径个和使用的格式
%h: 客户端地址
%l: 远程登录名,通常为-
%u: 认证时输入用户名,没有认证时为-
%t: 服务器收到 用户请求时的时间
%>s: 响应状态码
%b: 响应报文的长度,单位是字节
%HEADER_NAMEi: 记录指定首部对应的值
9、路径别名
使用指令参数:Alias 实现URL 路径映射时,访问的路径不在依赖于站点的根目录。
10、基于用户访问控制
基于用户的认证的方式有基本认证(Basic)和摘要认证(digest)。这里是基于虚拟用户来实现的。实现的方式有:文本文件、数据库、ldap、数据库引擎来提供API接口。
以基于文件的形式实现用户访问的控制来示例:
1、vim /etc/httpd/conf/httpd.conf
<Directory "/var/www/html/admin">
Options none# optons 选项控制
AllowOverride AuthConfig # 实现用户认证
AuthType Basic # 认证方式是 Basic
AuthName "Admin Area." # 提示信息
#AuthBasicProvider file # 认证方式的提供者
AuthUserFile /etc/httpd/conf/.htpasswd # 认证文件的路径
Require valid-user # 登陆用户控制 require user USER_NAME
</Directory>
2、提供认证文件
由 htpasswd 命令得到。常用选项:
-c: 如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用
-m: 以md5的格式编码存储用户的密码信息
-D: 删除指定用户
例如:
htpasswd -c -m /etc/hhtpd/.htpasswd tom
3、组认证
<Directory "/var/www/html/admin">
Options none
AllowOverride AuthConfig
AuthType Basic
AuthName "Admin Area."
#AuthBasicProvider file
AuthUserFile /etc/httpd/conf/.htpasswd
AuthGroupFile /etc/httpd/conf/.htgroup # 组文件的路径,自己手动建立
Require group GROUP_NAME
</Directory>
组文件格式:
组名:user1 user2 user3
11、虚拟主机
虚拟主机:使用不同访问路径
基于端口:通过不同的端口来提供不同的访问站点
基于IP:基于不同的 ip 地址来访问不同的站点
基于主机名:相同的 IP 地址通过不同的主机名来实现访问不同的站点
(1) 使用虚拟的前提:取消主服务器
注释主服务器的站点根路径指定:DocumentRoot
(2) 定义虚拟主机
NameVirtualHost IP:PORT # 指定监听的地址和端口
<VirtualHost IP:PORT>
ServerName # 主机名
ServerAlias # 定义多个主机名,此时 ServerName 的名称应该是 UR
DocumentRoot # 根站定目录
ServerAlias # 主机别名
ErrorLog # 错误日志的定义
CustomLog # 访问日志的定义
</VirtualHost>
配置文件语法检查:
httpd -t
service httpd configtest
配置完成虚拟主机后,可使用 httpd -S 显示配置的虚拟主机
测试:crul URL
12、https协议
由于http 协议在传输过程中使用的是明文传输。所以就出现了 https 协议来实现加密的 https 协议。ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话。https协议:是基于SSL二进制编码, 监听于443/tcp。
ssl握手要完成的工作:
交换协议版本号
选择双方都支持的加密方式
客户端对服务器端实现身份验正
密钥交换
客户端验正服务器端证书:
有效性检测:证书是否仍然在有效期内
CA的可信度检测
证书的完整性检测
持有者的身份检测
配置httpd工作于https:
(1) 安装mod_ssl模块
# yum install mod_ssl
(2) 为服务端生成私钥,并为其提供证书;
在服务端(172.16.10.9):
# (umask 077;openssl genrsa -out /etc/pki/CA/private/cacert.key 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 1000
# touch index.txt
# echo "01" > serial
在客户端:
#(umask 077;openssl genrsa -out /etc/httpd/httpd.key 2048)
#openssl req -new -key /etc/httpd/httpd.key -out /etc/httpd/httpd.csr
将 httpd.csr 传到服务端签名:
在服务端:
# openssl ca -in /root/httpd.csr -out /root/httpd.crt -days 1000
将签好的证书,httpd.crt 传回到客户端,放到 /etc/httpd/ 目录下
(3) 配置使用https的虚拟主机
<VirtualHost IP:443>
SSLCertificateFile # 证书路径
SSLCertificateKeyFile # 证书私钥文件
DocumentRoot # 虚拟主机的根站点
ServerName # 虚拟主机的主机名
</VirtualHost>
(4) 重新装载配置
httpd reload
(5) 测试
# openssl s_client -connect IP:PORT -CAfile /path/to/ca_certificate
13、status页面
httpd内嵌有handler,其中有一个handler用于输出当前httpd服务相关状态信息handler: server-status
启用handler要使用SetHandler指令
handler: 当文件被调用时,apache内部表示形式;一般每种文件类型都有其隐式处理器
示例:基于 10、11、12、13
建立httpd服务器(基于编译的方式进行),要求:
提供两个基于名称的虚拟主机:
a www1.stu10.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
(b)www2.stu10.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
(c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
(d)通过www1.stu10.com/server-status输出httpd工作状态相关信息,且只允许提供帐号密码才能访问(status:status);

1、配置文件的的编辑,vim /etc/httpd/httd.conf
还的注释主配置下的 DocumentRoot "/var/www/html"
2、 创建对应的站点和提供密码文件
# 创建对应的站点目录并提供默认的页面
mkdir /web/vhosts/www1/ -p
mkdir /web/vhosts/www2/ -p
echo "<h1>welcom www1.guotig.com<h1>" > /web/vhosts/www1/index.html
echo "<h1>welcom www2.guotig.com<h1>" > /web/vhosts/www2/index.html
# 提供用户认证文件
htpasswd -cm /etc/httpd/conf/.htpasswd status
mkdir /web/hosts/www1/server-status
chowm apache.apache /web/hosts/www1/server-status

3、提供主机名解析文件 在/etc/hosts中添加:(在测试客户端)

172.16.10.9 www1.stu10.com www2.stu10.com

4、测试结果如下:
为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
(1)要求使用证书认证,证书中要求使用的国家(CN)、州(Henan)、城市(Zhengzhou)和组织(MageEdu)
(2)设置部门为Ops,主机名为web.magedu.com,邮件为web@magedu.com

1、编辑 vim /etc/httpd/conf.d/ssl.conf 添加以下内容
当然在 /etc/httpd/conf/httpd.conf,要加载 mod_ssl 模块

使用 httpd -S 来查看已经配置好的虚拟机
2、提供证书
mkdir /etc/httpd/ssl && cd /etc/httpd/ssl
(umask 077; openssl genrsa -out httpd.key 1024)
openssl req -new -key httpd.key -out httpd.csr
去服务端签署证书:
openssl ca -in httpd.csr -out /httpd.crt -days 300
签署后的证书存放到:/etc/httpd/ssl/httpd.crt

3、验证结果
首次访问时会出现导入证书的问题,导入证书就可访问。

导入证书就可以访问了。

14、httpd程序包自带的工具介绍
httpd: apache服务器程序
-t: 测试配置文件
-l: 列表静态模块
-D DUMP_MODULES:列出DSO模块
-M:等价于 -t -D DUMP_MODULES
-D DUMP_VHOSTS: 列出所有虚拟主机
htpasswd: 为基于文件的basic认证创建和更新用户认证文件
apachectl: 脚本,httpd服务控制工具,可启动,关闭,重新加载配置文件。
ab: (apache benchmark)httpd的基准性能测试工具;
apxs: httpd得以扩展使用第三方模块的工具;
htcacheclean: 磁盘缓存清理工具;
htdigest: 为digest认证创建和更新用户认证文件
httxt2dbm: 为rewrite map创建dbm格式的文件
rotatelogs: 日志滚动,不关闭httpd而切换其使用日志文件的工具
suexec: 当httpd进程需要以另外的用户的身份去访问某些资源时,可以以suexec作临时切换;
15、ab工具的初步使用
同类工具:http_load, webbench, seige
Usage: ab [options] [http[s]://]hostname[:port]/path
常用的参数:
-c #: 模拟的并发数;
-n #: 总的请求数,-n的值一定要大于等于-c的值;
使用 ab -c 100 -n 5000 http://www.stu10.com/index.html测试的结果如下:

但是把并发量提高到2000的时候,就会出现以下的错误。

这是由于资源限定的问题,一般情况下,Linux默认打开的文件数是1024。
参考技术A 用命令安装宝塔面板,或者配置图形化界面 参考技术B 配好yum源,执行
yum install httpd
参考技术C lamp 或者 lnmp
国内wdcp
参考技术D linux 面板

在centos中怎么安装telnet

一.查看本机是否有安装telnet(centOS5默认有安装telnet)#rpm-qa|greptelnet如果显示结果为:telnet-0.17-39.el5telnet-server-0.17-39.el5那恭喜你,机器上已经安装了telnet。如果没有安装,请看下一步。特别说明:telnet分为telnet-client(简称为telnet)... 查看详情

centos5.5系统安装的详细流程

...出很多台计算机,Window,Linux系统都可以虚拟出来。 CentOS5.5的安装步骤及注意事项:1.打开VMware,然后选择“创建新的虚拟机”按钮;2.选择“典型”(精典版本)安装就行了,点击“next”进入下一步3. 选择第三项,点击... 查看详情

centos5/6编译安装lamp

一、环境说明准备 本次使用CentOS5.5、Centos6.5,编译安装Apache2.4.20、Mysql-5.5.48、PHP-5.5.30。      编译PHP以Apache模块方式运行。编译PHP前需要先编译好Apache和Mysql。1.关闭SELINUX,配置yum源。setenforce 0sed - 查看详情

centos5/6编译安装lamp

一、环境说明准备本次使用CentOS5.5、Centos6.5,编译安装Apache2.4.20、Mysql-5.5.48、PHP-5.5.30。      编译PHP以Apache模块方式运行。编译PHP前需要先编译好Apache和Mysql。1.关闭SELINUX,配置yum源。setenforce 0sed -i 查看详情

centos5.5如何配置vnc,开启linux远程桌面教程

...统用户的名称第二、上面三行中第一行是设定可以使用VNC服务器的帐号,可以设定多个,但中间要用空格隔开。注意前面的数字“1”或是“2”,当你要从其它电脑来VNC服务器时,就需要用IP:1这种方法,而不能直接用IP。如假定... 查看详情

u盘安装centos5.5教程

一、制作U盘启动盘1、制作启动U盘,64位版的镜像是大于4G的,所以最少要找一个8G容量的U盘2、下载UltraISO软件,打开系统镜像CentOS-5.5-x86_64-bin-DVD-1of2.iso,如下如所示 3、点击菜单【启动】-->【写入硬盘映像】 4、选择U... 查看详情

centos5.5下载git

  系统低版本就是蛋疼,连个yum源都找不到,全中国就只要阿里巴巴yum源还可以用,安装东西一直是阻碍,尝试了更新了yum源和下载rpm包,也都没有这个git包,于是只能使用git的源码包安装。 如下:   1.首... 查看详情

使用 YUM 在 Centos 5.5 上安装 Mono

...我更喜欢安装二进制文件,以避免必须在磁盘空间很小的服务器上安装所有 查看详情

centos5.5系统下安装freetype-2.3.5报错error1

/usr/bin/ld:/usr/local/lib/libz.a(inflate.o):relocationR_X86_64_32Sagainst`alocalsymbol'cannotbeusedwhenmakingasharedobject;recompilewith-fPIC/usr/local/lib/libz.a:couldnotreadsymbols:Badvaluecollect2:ldreturned1exitstatusmake:***[/usr/local/src/freetype-2.3.5/objs/libfreetype.la]Error1这个好... 查看详情

centos5.5中卸载自带jdk安装自己的jdk

因为需要使用JDK1.6的版本,但是RedHat6.4自带的JDK是1.7版本,因此需要卸载JDK1.7,安装JDK1.6的版本,我使用的JDK1.6版本为:jdk-6u45-Linux-x64.bin1、查看系统当前Java版本:java-version[[email protected]/]$java-versionJavaversion"1.7.0_09-icedtea"OpenJ 查看详情

在centos5.5中,如何卸载源码包安装的php

查看php版本命令:#php-v这个命令是删除不干净的#yumremovephp因为使用这个命令以后再用#php-v还是会看到有版本信息的参考技术A你是指下载源码编译安装的吗?这种程序无法通过系统的包管理卸载,只能手动删除二进制文件和相关... 查看详情

CENTOS 5.5如何安装git?

】CENTOS5.5如何安装git?【英文标题】:HowcangitbeinstalledonCENTOS5.5?【发布时间】:2011-04-1607:25:05【问题描述】:如何在CENTOS5.5机器上安装git?我尝试从yum安装它,但得到以下消息。root@host[~]#sudoyuminstallgitLoadedplugins:fastestmirrorLoadingmir... 查看详情

用vmware装centos5.5安装成功最后输入用户名和密码进入时提示验证失败

用VMware装CentOS5.5安装成功最后输入用户名和密码进入时提示验证失败我安装了5遍了,用户名和密码都不会错的安装选择的是“图形化”安装~参考技术A安装“图形化”与它没有关系,第一次安装完后默认的登录用户都是root,在... 查看详情

centos6和centos5和centos5.x这三个版本有啥区别?

...件),装了个Wordpress3.3,不可用,提示php版本太低,查询发觉CentOS5.5中php版本为5.1.6,mysql版本为5.0.95,而Wordpress3.3已经要求PHP5.3以上。yumlistmysqlphp按习惯,用上面命令检查系统自带更新库,发现库中PHP5.16和MYSQL5.0.95已经是最新,即... 查看详情

centos5.5+lamp环境

1.安装apache[root@admin-pcmnt]#yum-yinstallhttpd*2.创建默认index.html页面(默认没有index.html页面)[root@admin-pcmnt]#vi/var/www/html/index.html<html><body>thisisatestapageforapache</body></html>3.enableip访问在配置文件中[root@admin-pcmnt]#vi/etc/httpd... 查看详情

在 Centos 5.5 上安装 phpMyAdmin

...描述】:对不起各位,我不小心把它贴在这里了……我在服务器故障时重新创建了它:https://serverfault.com/questions/167302/installing-phpmyadmin-on-cent-os-5-5【问题讨论】:您将不得不提供更 查看详情

用php 5.3.3在centos 5.5上安装phpmyadmin

】用php5.3.3在centos5.5上安装phpmyadmin【英文标题】:Installphpmyadminoncentos5.5withphp5.3.3【发布时间】:2012-06-1106:32:06【问题描述】:您好,每次我尝试在运行PHP5.3.3的Centos5.5上安装phpmyadmin时都会收到错误:php53-common与php-common冲突。我... 查看详情

JDBC Resource Pool with Tomcat6 on Centos5.5 和 utf8 问题

...:请原谅我的英语。然后……我在Centos5.5上有一个Tomcat6服务器,配置了JDBC资源池。<Resourcename="jdbc/BD"auth 查看详情