yum安装apache服务器

httpd:

安装方法:yum -y install httpd

rpm -ql  httpd   #查看有哪些配置文件的;

/etc/httpd/conf/magic   #定义本地主机如何识别mime格式的,通过mime编码而来的其他的非纯文本文档。

/etc/rc.d/init.d/httpd  #服务脚本的启动文件

/etc/sysconfig/httpd    #服务脚本的配置文件

我们将/etc/sysconfig/httpd下面的配置文件进行更改,我们的服务脚本就可以允许在不同的模式下了。

/usr/bin/ab   #apache压力测试所用的配置文件;

/usr/bin/htpasswd #基于权限进行创建;

下面我们查看下服务是否开启使用这个命令:

[[email protected] test]# netstat -tnlp |grep 80

tcp        0      0 :::80                       :::*                        LISTEN      27259/httpd

[[email protected] test]# ps -aux |grep http

[[email protected] test]# ps -aux |grep http

Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.7/FAQ

root     27259  0.0  0.3 175308  3192 ?        Ss   17:46   0:00 /usr/sbin/httpd

apache   27260  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27261  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27262  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27263  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27264  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27266  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27267  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/httpd

apache   27268  0.0  0.2 175308  2380 ?        S    17:46   0:00 /usr/sbin/htt

这个时候就可以在客户端查看web服务器的欢迎页面了;这个时候我们看到的这个欢迎页面的默认地址为/etc/httpd/conf.d/welcom.conf

修改web服务器的页面路径下的配置文件:

[[email protected] html]# pwd

/var/www/html

[[email protected] html]# cat a.html

<html>

<tittle>haha</tittle>

<body>

welcom to my test file.

</body>

</html>

[[email protected] html]# service httpd restart

这个时候,我们去访问的时候,给个页面。发现还是没法查看,因为默认的页面需要手动去指定。

[[email protected] conf]# pwd

/etc/httpd/conf

[[email protected] conf]# grep "Section" httpd.conf

### Section 1: Global Environment

### Section 2: ‘Main‘ server configuration

### Section 3: Virtual Hosts

注意:要有主服务器段,就不能有虚拟主机,有虚拟主机就不能有主服务器段。因为我们安装的apache是系统自带的,所以版本比较低。

[[email protected] conf]# more /etc/httpd/conf/httpd.conf

KeepAlive Off #是否开启长链接;

长链接的时间针对不同的服务器来讲,需要进行不同的测试。

我们可以使用ab参数进行测试,LoadRunner。

APACHE MPM模块:

Apache HTTP 服务器被设计为一个功能强大,并且灵活的 web 服务器, 可以在很多平台与环境中工作。不同平台和不同的环境往往需要不同 的特性,或可能以不同的方式实现相同的特性最有效率。Apache httpd 通过模块化的设计来适应各种环境。这种设计允许网站管理员通过在 编译时或运行时,选择哪些模块将会加载在服务器中,来选择服务器特性。

Apache HTTP 服务器 2.0 扩展此模块化设计到最基本的 web 服务器功能。 它提供了可以选择的多处理模块(MPM),用来绑定到网络端口上,接受请求, 以及调度子进程处理请求。

扩展到这一级别的服务器模块化设计,带来两个重要的好处:

Apache httpd 能更优雅,更高效率的支持不同的平台。尤其是 Apache httpd 的 Windows 版本现在更有效率了,因为 mpm_winnt 能使用原生网络特性取代在 Apache httpd 1.3 中使用的 POSIX 层。它也可以扩展到其它平台 来使用专用的 MPM。

Apache httpd 能更好的为有特殊要求的站点定制。例如,要求 更高伸缩性的站点可以选择使用线程的 MPM,即 worker 或 event; 需要可靠性或者与旧软件兼容的站点可以使用 prefork。

在用户看来,MPM 很像其它 Apache httpd 模块。主要是区别是,在任何时间, 必须有一个,而且只有一个 MPM 加载到服务器中。可用的 MPM 列表位于 模块索引页面

下表列出了不同系统的默认 MPM。如果你不在编译时选择,那么它就是你将要使用的 MPM。

Netware mpm_netware

OS/2 mpmt_os2

Unix prefork,worker 或 event,取决于平台特性

Windows mpm_winnt

在 Unix 或类似平台中,MPM 可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改 LoadModule 指令内容来改变 MPM,而不用重新构建服务器程序。

在执行 configure 脚本时,使用 --enable-mpms-shared 选项可以启用此特性。 当给出的参数为 all 时,所有此平台支持的 MPM 模块都会被安装。还可以在参数中给出模块列表。

默认 MPM,可以自动选择或者在执行 configure 脚本时通过 --with-mpm 选项来指定,然后出现在生成的服务器配置文件中。 编辑 LoadModule 指令内容可以选择不同的 MPM。

MPM: Multi Path Modules (多道处理模块)定义apache来处理多个用户请求时候的模型  98分钟

mpm_winnt

prefork (一个请求用一个进程响应)

worker  (一个请求用一个线程响应) (web服务器生成多个进程,同时每个进程可以生成多个线程,用一个线程响应一个用户请求。默认情况下,服务启动的时候,

生成两个进程。linux上经过测试发现worker模型没有event模型好)

event   (一个进程处理多个请求) 2.4以后默认就支持event这个机制。多路复用多线程web服务器

2.2默认使用的是prefork,稳定性可以。

当前服务器使用的模块有哪些:可以使用如下命令:这些都是编译好的。

[[email protected] conf]# httpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

/usr/sbin/httpd.event

/usr/sbin/httpd.worker

[[email protected] conf]# rpm -ql httpd|grep bin

/usr/sbin/httpd.event

/usr/sbin/httpd.worker

如果想使用某一个模型只需要更改另外一个配置文件即可:

[[email protected] conf]# cat /etc/sysconfig/httpd        #全局的配置文件

# Configuration file for the httpd service.

#

# The default processing model (MPM) is the process-based

# ‘prefork‘ model.  A thread-based model, ‘worker‘, is also

# available, but does not work with some modules (such as PHP).

# The service must be stopped before changing this variable.

#

#HTTPD=/usr/sbin/httpd.worker

2.2中event不建议用,bug多。测试版本。2.4以后使用event比较好。

以上说明了如何在redhat上切换MPM可执行的对应程序的。而这个可执行程序编译完成后,就确定使用哪一些MPM了。因此红帽编译了三次,生成了三个MPM。

同时在主配置文件中,有三个模型.下面说明模块的使用属性:

<IfModule prefork.c>

StartServers       8

MinSpareServers    5

MaxSpareServers   20

ServerLimit      256        #最多允许多少个用户请求

MaxClients       256 #最多允许多少个用户,修改这个参数之后需要将此进程kill掉,然后再开启。

MaxRequestsPerChild  4000 #一个进程最多响应多少个用户请求,达到这个次数之后,无论如何将其kill掉,再生成一个新的进程。

</IfModule> #注意所有的数据都需要自己进行测试。

<IfModule worker.c>

StartServers         2   #默认启动的进程数

MaxClients         150

MinSpareThreads     25  #最小空闲线程

MaxSpareThreads     75 #最大空闲线程数

ThreadsPerChild     25  #一个进程可以生成多少个线程

MaxRequestsPerChild  0   #每一个进程最多响应多少个请求,因为进程不处理用户请求,所以设置为0,表示不做限定。

</IfModule>

#Listen 12.34.56.78:80

Listen 80#说明监听当前主机上的所有80端口。listen指令可以出现多次。

LoadModules#指定apache要装载的模块;

Include conf.d/*.conf

User apache  #开启服务器所用的用户

Group apache  #开启服务所用的组名

httpd属性配置:

[[email protected] conf]# grep "Section" httpd.conf

### Section 1: Global Environment

### Section 2: ‘Main‘ server configuration

### Section 3: Virtual Hosts

分为三段当你,2,3段是冲突的。只能启用一个。

UseCanonicalName Off          #使用正式名称;

DocumentRoot "/var/www/html"  #文档根目录,这个目录也是可以更改的;

URL路径与本地系统路径不是一个概念;URL路径是对应于DocumentRoot路径而言的。同时默认需要定义它可以被那些用户访问。

options定义其下的路径如何被访问,默认路径的权限这里也做限定。

这个就是做默认路径的访问控制的;

<Directory "/var/www/html">

#

# 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                              #定义索引文件,将该目录下的所有内容都看到,默认是开放的,需要禁用。但是

当我们做下载的时候不需要禁用。Indexes 允许索引目录的。Options后面加none表示所有都不支持。

FollowSymLinks是否支持链接文件。这里的是允许使用符号链接。

Options有五个默认没有任何功能;

Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews

None: 不支持任何选项

Indexes: 允许索引目录

FollowSynLinks: 允许访问符号链接指向的原文件

Includes: 允许执行服务端包含(SSI)SEVER SIDE INCLUDE  #这个也不安全,除非特殊需要

SymLinksifOwnerMatch:允许执行符号链接,同时制定属主跟httpd进程一直;

ExecCGI: 允许运行CGI脚本;是否允许CGI脚本。有的时候需要打开这个功能;

MultiViews:多视图的一种机制;

All: 支持所有选项;

#

# 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                       #是否允许覆盖

AllowOverride Authconfig                 #

#

# Controls who can get stuff from this server.

#

#   Order allow,deny #用于定义IP或基于主机的访问控制功能的。定义列表,先allow,后deny。deny是默认值。allow和deny的次序很关键。

#  Allow from all   #仅允许172.16.100.0访问;

#拒绝:192.168.0.1访问;

Order deny,allow

deny from 192.168.0.1  172.16.100.1

</Directory>

地址的表示方式:

IP

network/netmask

HOSTNAME: www.a.com

DOMAINNAME: zledu.com

Partial IP: 172.16, 172.16.0.0/16

在http2.4之后,不使用allow和deny的机制了。

修改完配置文件之后,可以使用httpd -t这个选项来查看配置文件的语法是否正确。

自己如何访问自己?使用elinks纯文本的浏览器。在纯文本的界面下,浏览网页的一个工具。

远程链接的情况下,由于语言不匹配可能会出现乱码。

elinks  http://172.16.100.1

-dump 表示把网页内容显示完成之后,立即退出。

-source      显示网页的源码;

AllowOverride Authconfig           #如果改成none,就不会去读取.htaccess配置文件。

AuthType Basic

AuthName "Restricted Files"

AuthUserFile /usr/local/apache/passwd/passwords

Require user zl

这个文件的创建只能用某一特定命令:

htpasswd -c -m  AuthUserFile /usr/local/apache/passwd/passwords  zl

如果要添加第二个用户将-c参数去掉即可。

htpasswd -m  AuthUserFile /usr/local/apache/passwd/passwords  zl2

option:-D删除用户时使用。

AuthType Basic

AuthName "By Invitation Only"

# Optional line:

AuthBasicProvider file

AuthUserFile /usr/local/apache/passwd/passwords

AuthGroupFile /usr/local/apache/passwd/groups

Require group GroupName

如果使用Group验证,则需要事先将这几个用户进行创建,创建完成后,编辑某一文件,在其下面写上:

GroupName: rbowen dpitts sungo rshersey

Require valid-user              #说明只要是AuthUserFile或者AuthGroupFile里面有的用户都可以拿过来使用。

httpd -M   查看系统装的http的的模块文件有哪些。

PV:page  view页面访问量。网站统计值里面经常用的指标;PV是按照天数来统计的;每天的页面访问量。必须是一个完整的页面才行。

UV:USER VIEW ;每天的独立IP访问量。

apache:服务器

虚拟主机:

apache服务:

中心主机

虚拟主机

基于IP

IP1:80

IP2:80

基于端口

IP:80

IP:8080

基于域名

IP:80

主机名不同

www.zldu.com

www.a.org

www2.a.org

www.b.net

基于主机名,虽然也经过地址解析,但是http协议自身所带的http头信息里面的host能够帮我们找到正确的资源。

apache:

中心主机

虚拟主机

apache 2.4以后想定义什么样的主机就定义什么样的主机。

ServerName:

ServerAlias:        #服务器也是可以有别名的;

DocumentRoot /www/a.org/

<Directory "/www/a.org">   #Directory封装的是文件系统路径

Option

AllowOverride

</Directory>

Alias

ErrorLog

CustomLog

<Location "/images">  #定义URL的时候用的;所使用的方法只有Get方法,其他任何方法都不支持。

ScriptAlias     #允许执行CGI脚本的路径;有了CGI技术,我们的APACHE进程就能够通过CGI协议调用另外一个进程,使其允许一段程序;将其允许结果返回给apache。

</Location>

html,text。

MVC

那么如何将这所有的属性用一个容器进行封装:virtualhost

如何使用虚拟主机,得先取消中心主机,注释中心主机的DocumentRoot即可。

虚拟主机的定义:

<VirtualHost HOST>

</VirtualHost>

HOST的格式:

基于IP,HOST的写法

HOST

IP1:80

IP2:80

基于端口:

HOST

IP:80

IP:8080

基于域名:

*:80

ServerName 不同

如何建立自己的虚拟主机呢?方法如下:

编辑vim /etc/httpd/conf/httpd.conf将里面的主配置文档DocumentRoot进行注释;

然后在/etc/httpd/conf.d目录下面建个文件:

virtual.conf

[[email protected] conf.d]# cat virtual.conf

<VirtualHost 172.16.100.1:80>

ServerName www.zledu.com

DocumentRoot "/www/zledu.com"

CustomLog   /var/www/httpd/zledu.com/access_log combined

<Directory "/www/d.gov">

Options None

AllowOverride none

Deny from 172.16.100.177

</Directory>

</VirtualHost>

<VirtualHost 172.16.100.2:80>

ServerName www.a.org

DocumentRoot "/www/a.org"

<Directory "/www/a.org">

Options None

AuthOverride authconfig

AuthType  basic

AuthName "Restrict area"

AuthUserFile "/etc/httpd/.htpasswd"

Required valid-user

</Directory>

</VirtualHost>

htpasswd -c -m /etc/httpd/.htpasswd tom

htpasswd -m /etc/httpd/.htpasswd jerry

<VirtualHost 172.16.100.2:80>

ServerName www.d.goy

DocumentRoot "/www/d.goy"

</VirtualHost>

<VirtualHost 172.16.100.1:8080>

ServerName www.a.org

DocumentRoot "/www/b.net"

</VirtualHost>

[[email protected] conf.d]#

设定默认虚拟主机

<VirtualHost _default_:80>

DocumentRoot /www/default80

# ...

</VirtualHost>

<VirtualHost _default_:*>

DocumentRoot /www/default

# ...

</VirtualHost>

<Location /status>

SetHandler server-status

Order Deny,Allow

Deny from all

Allow from .foo.com

</Location>

服务器的状态信息,一般情况下不开启。只开启给特定IP的特定用户。

基于OPENSSL的HTTPS服务:

client        server(443)

ssl协商完成之后,将公钥信息发送给客户端,客户端对整数进行验证,客户端验证完成后,发送一个对称秘钥给服务器端。

客户端要信任证书颁发机构,能够信任别人发的证书所用。

SSL会话在建立的时候跟主机名关系不大。ssl是没法基于主机名进行区分的。

如果服务器只有一个IP地址,ssl的功能只能提供给一个虚拟主机。

yum  install  mod_ssl

rpm -ql mod_ssl

[[email protected] ~]# rpm -ql mod_ssl

/etc/httpd/conf.d/ssl.conf

/usr/lib64/httpd/modules/mod_ssl.so

/var/cache/mod_ssl

/var/cache/mod_ssl/scache.dir

/var/cache/mod_ssl/scache.pag

/var/cache/mod_ssl/scache.sem

下面模拟100.8做CA;

cd /etc/pki

ls

cd CA/

(umask 077;openssl genrsa -out private/cakey.pem  2048)               #生成一个私有钥匙对

ls -l private/

openssl req -new -x509 -key private//cakey.pem -out cacert.pem -days 3655

生成一个自签证书,发给自己。

[[email protected] CA]# mkdir certs crl newcerts

[[email protected] CA]# touch index.txt

[[email protected] CA]# echo 01 >serial

more  /etc/pki/tls/openssl.cnf

# the resulting certificates are compatible with Netscape

string_mask = MASK:0x2002

# req_extensions = v3_req # The extensions to add to a cer

tificate request

[ req_distinguished_name ]

countryName                     = Country Name (2 letter c

ode)

countryName_default             = CN

countryName_min                 = 2

countryName_max                 = 2

stateOrProvinceName             = State or Province Name (

full name)

stateOrProvinceName_default     = Henan

localityName                    = Locality Name (eg, city)

localityName_default            = Zhengzhou

0.organizationName              = Organization Name (eg, c

ompany)

0.organizationName_default      = zl

# we can do this but it is not needed normally :-)

#1.organizationName             = Second Organization Name

(eg, company)

#1.organizationName_default     = World Wide Web Pty Ltd

organizationalUnitName          = Organizational Unit Name

(eg, section)

organizationalUnitName_default  =Tech

[[email protected] CA]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 3650

[[email protected] tmp]# rm httpd.c* -f

在172.16.100.1上进行配置:

[[email protected] httpd]# ls

conf  conf.d  logs  modules  run

[[email protected] httpd]# mkdir ssl

[[email protected] httpd]# cd ssl

[[email protected] ssl]# ls

[[email protected] ssl]# pwd

/etc/httpd/ssl

[[email protected] ssl]

(umask 077;openssl genrsa 1024 >httpd.key)

[[email protected] ssl]# openssl req -new -key httpd.key -out httpd.csr #生成一个证书颁发请求,注意里面的内容跟配置文件一致;

[[email protected] ssl]# scp httpd.csr 172.16.100.8:/tmp  #将证书申请放到172.16.100.8这个服务器上面去;

[[email protected] ssl]# scp 172.16.100.8:/tmp/httpd.crt ./  #将签发好的证书放到本地;

[[email protected] ssl]# cd /etc/httpd/conf.d/

vi ssl.conf

<VirtualHost 172.16.100.1:443>

# General setup for the virtual host, inherited from global configuration

#DocumentRoot "/var/www/html"

#ServerName www.example.com:443

ServerName www.zledu.com

SSLCertificateFile /etc/httpd/ssl/httpd.crt

SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

将如下目录下的证书给windows进行传输一份,并改名字叫.crt结尾即可。直接安装即可。受信任的证书颁发。

[[email protected] CA]# pwd

/etc/pki/CA

[[email protected] CA]# ls

cacert.pem

做测试的时候,要将这个证书颁发机构给加入到windows服务器里面来。

时间: 2024-10-03 13:09:04

yum安装apache服务器的相关文章

Linux中如何安装Apache服务器

由于学习的需要,所有手动安装了一下Apache源码包,安装过程中的问题千奇百怪,但是如果弄清楚了问题出在哪里,那么也不是太难.如果有学习者出现安装中的问题,可仔细阅读该教程. 首先下载httpd软件包(下载地址http://httpd.apache.org/download.cgi#apache24). 由于本人是在虚拟机中安装的CentOs7.0,所以我们还需要下载一个软件用来将下载在Windows中的包文件放置在Linux中.(下载地址:http://winscp.net/eng/docs/

yum安装apache后更改worker模式

进入linux命令模式,输入 #yum install httpd                    //安装apache #vi  /etc/sysconfig/httpd            //修改文件,打开worker模式 将#号去掉 重启apache,命令如下 #service httpd restart 报错如下: [root@localhost ~]# service httpd restartStopping httpd:                          

CentOS下使用yum安装Apache极为方便,只需要在终端键入以下命令即可

CentOS下使用yum安装Apache极为方便,只需要在终端键入以下命令即可 1.安装Apache yum install httpd 2.设置服务器开机自动启动Apache systemctl enable httpd.service 若要验证是否自动启动可在重启服务器后在终端键入以下命令来检测Apache是否已经启动 systemctl is-enabled httpd.service 如果看到了enable这样的响应,则表示Apache已经启动成功 3.手动启动Apache system

Centos 6.5 yum 安装Apache软件

本文主要介绍一下如何在Linux平台Centos 6.5 系统上使用yum 安装apache 网站平台软件 工具/原料 linux .Centos .apache 方法/步骤 一.首先在系统上面查询一下是否已经安装了apache 软件[Apache软件在linux系统里的名字是httpd] rpm    -qa    httpd 如果有返回的信息,则会显示已经安装的软件.如果没有则不会显示其它的信息.如下图是没有安装的.查询的时候没有显示其它的信息.   二.查询到系统是还没有进行安装的,那么我

yum 安装Apache

1.查看是否安装Apache,命令:  rpm    -qa    httpd 2.yum install httpd ,yum安装Apache 3.chkconfig    httpd  on  service httpd start  启动软件 遇到的问题 1.启动Apache报错,httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName 编辑h

windows下安装apache服务器

一.安装Apache,配置成功一个普通网站服务器 运行下载好的"apache-win32-x86-no_ssl.msi",出现如下界面. 出现Apache HTTP Server的安装向导界面,点"Next"继续. 确认同意软件安装使用许可条例,选择"I accept the terms in the license agreement",点"Next"继续. 将Apache安装到Windows上的使用须知,请阅读完毕后,按&

CentOS 7 尝鲜(yum安装apache+mariadb+php+vsftp)

centos7也已经面世有一段时间了,相对于目前主流的centos5和6来说,还算是比较新的,里面的新改动或许让很多人都不怎么习惯. 个人还是比较喜欢追逐新潮滴,本站就是在阿里云上使用Centos7.所有的程序都是使用yum来安装,跟以前最大的区别就在于,我本次使用的数据库不是mysql,而是Centos7默认的Mariadb.由于Mysql被收购,有闭源的风险,并且更新也越来越慢,所以社区在7版本开始不在把Mysql作为系统默认支持的数据库.本来我也去mysql官方网站下了最新的5.6rpm包

安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:

安装apache服务器时遇到只能本地访问,局域网内其他电脑不能访问apache:1.查看selinux运行状态及关闭selinux/usr/sbin/sestatus -v文本模式关闭selinux:vi /ect/selinux/config把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:SELINUX=disabled保存,reboot system!!!用命令setenforce可以修改Current mode,不能关闭selinux

超级web服务器yum 安装apache+源码编译tomcat+awstat+phpmadin+mysql+php+AB压力测试

实验环境: 两台机器:Centos6.4 机器一: 192.168.56.10  安装httpd  php   等整合 机器二: 192.168.56.11 安装 mysql ======================================================================================== (iptables -t nat -I PREROUTING -d 外IP -p tcp -m tcp --dport 端口 -j DNAT --