apache httpd 站点搭建

apache  httpd 站点搭建

apache  httpd 站点搭建 1

§·httpd程序包使用yum安装 1

※·[root@www ~]# yum  install  httpd.x86_64 1

※·关于生成的配置文件简单介绍: 2

§·http主配置文件介绍 3

※·主配置文件分为三大部分: 3

§·http使用中心主机配置 3

§·http使用虚拟主机配置 4

§·https站点的搭建 4

步骤一:安装ssl模块 4

步骤二:给web服务器颁发证书 5

步骤三.配置web服务器ssl文件 5

步骤四.配置web服务器虚拟主机 5

§·apachePHP站点的搭建 6

步骤一:配置web服务器虚拟主机 6

§·问题记录 6

1.重启service httpd restart ,有两个模块无法加载 6

 

§·httpd程序包使用yum安装

  ※·[root@www ~]# yum  install  httpd.x86_64

 

学习阶段先使用yum程序包安装httpd程序。

[root@www ~]# rpm -qa | grep http
httpd-devel-2.2.15-53.el6.centos.x86_64
httpd-tools-2.2.15-53.el6.centos.x86_64
httpd-2.2.15-53.el6.centos.x86_64
[root@www ~]#

查看安装后生成的文件

[root@www ~]# rpm -ql httpd-2.2.15-53.el6.centos.x86_64
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/httpd/logs
/etc/httpd/modules
/etc/httpd/run
/etc/logrotate.d/httpd
/etc/rc.d/init.d/htcacheclean
/etc/rc.d/init.d/httpd
/etc/sysconfig/htcacheclean
/etc/sysconfig/httpd
/usr/lib64/httpd
/usr/lib64/httpd/modules
/usr/lib64/httpd/modules/mod_actions.so
/usr/lib64/httpd/modules/mod_alias.so
/usr/lib64/httpd/modules/mod_asis.so
/usr/lib64/httpd/modules/mod_auth_basic.so
/usr/sbin/apachectl
/usr/sbin/htcacheclean
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
/usr/sbin/httxt2dbm
/usr/sbin/rotatelogs
/usr/sbin/suexec
/var/cache/mod_proxy
/var/lib/dav
/var/log/httpd
/var/run/httpd
/var/www
/var/www/cgi-bin
/var/www/error

  ※·关于生成的配置文件简单介绍:

port: (80/tcp) , ( ssl :443/tcp )         # http监听的服务器地址为:TCP /80,https为:443
/usr/sbin/httpd  (MPM : prefork)       #运行程序,服务器默认工作模型为 prefork进程
httpd :  root   root  (master process)   #主进程生成子进程属主为 root
httpd :  apche  apche  (worker process)  #子进程为 apche
/etc/rc.d/init.d/httpd            #Centos 6.8上生成的服务脚本
/etc/httpd:            #工作根目录,相当于程序安装目录
/etc/httpd/conf:           #配置文件目录
/etc/httpd/conf/httpd.conf :        #主配置文件
        /etc/httpd/conf.d/*.conf            #被主配置文件包含
/etc/httpd/modules: -----> /usr/lib64/httpd/modules #链接目录。模块目录,提供各种功能,加密等等
/etc/httpd/logs  ----->/var/log/httpd    #链接目录 日志存放位置
  日志文件两类:访问日志:access_log  错误日志:err_log
/var/www/html :        #静态页面路径
/var/www/cgi-bin :        #动态页面路径

§·http主配置文件介绍

[root@www ~]# grep Section  /etc/httpd/conf/httpd.conf 
### Section 1: Global Environment
### Section 2: 'Main' server configuration
### Section 3: Virtual Hosts
[root@www ~]#

※·主配置文件分为三大部分:

[root@www ~]# grep  -n  Section   /etc/httpd/conf/httpd.conf   
    33 ### Section 1: Global Environment
   246 ### Section 2: 'Main' server configuration
   974 ### Section 3: Virtual Hosts

[root@www ~]# 1Global Environment—全局环境配置,决定Apache服务器的全局参数

2Main server configuration—中心服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有一个站点,那么就只需在这里配置就可以了。

3Virtual Hosts—虚拟主机,虚拟主机不能与Main Server主服务器共存,当启用了虚拟主机之后,Main Server就不能使用了。

§·http使用中心主机配置

如果使用默认配置,开启中心主机的配置很简单:只需要启动httpd服务即可,apache默认配置为虚拟主机。

开启中心主机后几个比较实用的参数

44  ServerTokens OS     #页面显示APACHE的版本,默认开启,建议关闭使用prod
57 ServerRoot "/etc/httpd"    #httpd工作主目录路径,不建议修改。
76 KeepAlive Off      #长链接默认关闭
102 <IfModule prefork.c>    #关于httpd工作模型prefork的设置
103 StartServers       8
104 MinSpareServers    5
105 MaxSpareServers   20
106 ServerLimit      256
107 MaxClients       256
108 MaxRequestsPerChild  4000
109 </IfModule>
136 Listen 80       #默认监听的端口号
222 Include conf.d/*.conf    #可以包含 /etc/httpd/conf.d/*.conf下所有的配置文件
292 DocumentRoot "/var/www/html"  #中心主机的web站点默认网页文件存放路径
 
317 <Directory "/var/www/html">   #定义web站点的目录权限
331     Options Indexes FollowSymLinks
338     AllowOverride None
343     Order allow,deny
344     Allow from all
345 
346 </Directory>
 
402 DirectoryIndex index.html index.html.var #默认加载的主页网页名称
484 ErrorLog logs/error_log     #错误日志的存储路径
 
497 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined  #日志文件格式
498 LogFormat "%h %l %u %t \"%r\" %>s %b" common
499 LogFormat "%{Referer}i -> %U" referer
500 LogFormat "%{User-agent}i" agent
 
CustomLog logs/access_log combined   #访问日志的存放路径

§·http使用虚拟主机配置

实用虚拟主机就必须关闭中心主机:

292 DocumentRoot "/var/www/html"   #注销掉此行
990 NameVirtualHost 10.1.16.20:80  #开启此行,设置正确的监听地址和端口

设置虚拟主机:

<VirtualHost 10.1.16.20:80>
 DocumentRoot  /www/host1
 ServerName  www1.test1.com
</VirtualHost>
 
<VirtualHost 10.1.16.20:80>
 DocumentRoot  /www/host2
 ServerName  www.test2.com
</VirtualHost>
 
<VirtualHost 10.1.16.20:80>
 DocumentRoot  /www/host3
 ServerName  www.test3.com
</VirtualHost>

§·https站点的搭建

https是调用ssl协议加密站点,https服务器搭建 基于:openssl,所以需要在配置一下操作:

步骤一:安装ssl模块

[root@localhost ~]#yum  install  mod_ssl  #安装ssl模块
[root@localhost ~]# 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
[root@com-server modules]# httpd -M | grep ssl  #检查模块是否加载
Syntax OK
 ssl_module (shared)
[root@com-server modules]#

步骤二:给web服务器颁发证书

注意:一定注意颁发的主机名 一定是域名的名称

CA服务器:

cd /etc/pki/CA/
(umask066;  openssl genrsa  -out  /etc/pki/CA/private/cakey.pem  2048)
openssl req -new   -x509 –key  /etc/pki/CA/private/cakey.pem  -days 7300  -out   /etc/pki/CA/cacert.pem

web服务器:

(umask 066;  openssl genrsa  -out  /etc/httpd/ssl/httpd.key 2048)
生成证书申请文件
openssl req -new  -key  /etc/httpd/ssl/httpd.key  -days 365 -out /etc/httpd/ssl/httpd.csr
•(b) 将证书请求文件传输给CA
•(c) CA签署证书,并将证书颁发给请求者;
openssl ca  -in  /tmp/httpd.csr–out  /etc/pki/CA/certs/httpd.crt   -days   365
注意:默认国家,省,公司名称必须和CA一致

web服务器证书存储路径

  放置路径为: /etc/httpd/ssl/

[root@com-server key]#  ls
httpd.csr(证书文件)
httpd.key(私钥文件)

步骤三.配置web服务器ssl文件

 编辑配置文件:  /etc/httpd/conf.d/ssl.conf
105  SSLCertificateFile  /etc/httpd/ssl/httpd.crt
#SSLCertificateFile 指定服务器使用的证书。
112  SSLCertificateKeyFile  /etc/httpd/ssl/httpd.key
#SSLCertificateKeyFile 指定了服务器私钥文件。

步骤四.配置web服务器虚拟主机

注意此时的虚拟主机的配置的配置文件还是为:/etc/httpd/conf.d/ssl.conf,与 /etc/httpd/conf/httpd.conf无关

 编辑配置文件:  /etc/httpd/conf.d/ssl.conf

12  LoadModule ssl_module modules/mod_ssl.so
18  Listen 443
74  <VirtualHost 10.1.16.20:443>
75  DocumentRoot  "/www/host1"
76  ServerName  www.test1.com:443
78  #DocumentRoot "/var/www/html"
79  #ServerName www.example.com:443
83  ErrorLog logs/ssl_error_log
84  TransferLog logs/ssl_access_log
85  LogLevel warn
106  SSLCertificateFile /etc/httpd/ssl/httpd.crt
113  SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
219  CustomLog logs/ssl_request_log \
222  </VirtualHost>

   

§·apachePHP站点的搭建 

[root@com-server ssl]# yum install php.x86_64  #安装php软件
 
[root@com-server ssl]# rpm -ql php.x86_64    #查看生产的文件
/etc/httpd/conf.d/php.conf      #查看主配置文件
/usr/lib64/httpd/modules/libphp5.so
/var/lib/php/session
/var/www/icons/php.gif
[root@com-server ssl]#

步骤一:配置web服务器虚拟主机

在网页目录下放置PHP文件后,即可正常的使用了!

index.php的内容为:
<?php
phpinfo();
?>

 

§·问题记录

1.重启service httpd restart ,有两个模块无法加载

以前好用的好好的,重启httpd后,根据错误提示,注释掉/etc/httpd/conf/httpd.conf中的“LoadModule ldap_module modules/mod_ldap.so  LoadModule authnz_ldap_module modules/mod_authnz_ldap.so”后,htppd启动正常。

但总觉得很奇怪,是什么原因导致的呢?

[root@test ~]#/etc/init.d/httpd startStarting httpd: httpd: Syntax error on line 161 of /etc/httpd/conf/httpd.conf: 
Cannot load /etc/httpd/modules/mod_ldap.so 
into server: /etc/httpd/modules/mod_ldap.so: undefined symbol: apr_ldap_ssl_init

问题解决办法:

1 . 模块没有安装还是系统无法找到模块?

 

[root@com-server include]# find / -name mod_ldap.so  
/usr/lib64/httpd/modules/mod_ldap.so
[root@com-server include]# find / -name mod_authnz_ldap.so 
/usr/lib64/httpd/modules/mod_authnz_ldap.so
[root@com-server include]#

 

2 . 模块有表明软件安装上了,使用 httpd  -V

[root@com-server modules]# httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   May 11 2016 19:28:33
Server's Module Magic Number: 20051115:25
Server loaded:  APR 1.3.9, APR-Util 1.3.9  #版本不对
Compiled using: APR 1.5.3, APR-Util 1.5.3  #版本不对
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
[root@com-server modules]#

3 . 回想一下,以前在本机上编译安装过http软件的。使用完后也没有删除,在 /etc/ld.so.conf.d/新建一个文件后缀名为.conf的文件里面写上需要添加的lib路径名,每次开机会自动加载,删除 /etc/ld.so.conf.d/httpd.conf文件重启机器。 

原创文章,作者:linux_root,如若转载,请注明出处:http://www.178linux.com/50373

(0)
上一篇 2016-12-05 17:03
下一篇 2016-12-05 17:03

相关推荐

  • vsftpd基于mysql进行虚拟用户管理

    概述:     FTP是我们日常工作中经常用到的一个服务,但是FTP对用户的管理却比较薄弱,默认状态下,FTP利用pam机制进行账号管理,默认情况下使用的是系统账号,如何提升FTP对用户管理的有效性,针对不同的用户设定不同的上传权限,这就要基于虚拟账号来管理了,本篇就介绍下在vsftpd利用pam机制,结合mysql实…

    Linux干货 2016-10-18
  • 学习宣言

    纸上得来终觉浅,绝知此事要躬行博学之,审问之,慎思之

    Linux干货 2016-10-24
  • linux文件系统分类

    1、linux文件系统分配策略: 块分配(blockallocation)和扩展分配(extentallocation): 块分配:磁盘上的文件块根据需要分配给文件,避免了存储空间的浪费。但当文件扩充时,会造成文件中文件块的不连续,从而导致过多的磁盘寻道时间。 每一次文件扩展时,块分配算法就需要写入文件块的结构信息,也就是meta-dada。meta-dat…

    Linux干货 2017-05-02
  • 计算机简介

    计算机的简介 电子计算机(英语:computer),亦称电脑,是一种利用「电子学」原理,根据一系列指令对数据进行处理的工具计算机种类繁多,但实际来看,计算机总体上是处理信息的工具。计算机在组成上形式不一,早期计算机的体积足有一间房屋的大小,而今天某些嵌入式计算机可能比一副「扑克牌」还小。当然,即使在今天依然有大量体积庞大的巨型计算机为特别的[科学]计算或面向…

    Linux干货 2016-10-28
  • FHS文件系统介绍及各目录功能说明

     FHS文件系统介绍及各目录功能说明 M21-陆东贵 FHS简介 Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理…

    Linux干货 2016-10-18
  • Linux进程篇16.0

    Linux进程介绍

    Linux干货 2017-12-18