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)
linux_rootlinux_root
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • Linux 环境 SSD(固态硬盘)使用指南

    原文链接:http://www.jinbuguo.com/storage/ssd_usage.html 前言 因为SSD有着诸多与传统机械式硬盘不同的特点,而且这些特点导致了SSD在实际使用中的性能和寿命与其使用方法紧密相关。所以并不是说买来一块非常牛X的SSD就万事大吉了。另一方面,SSD的性能并不像机械式硬盘那样比较稳定(浮动范围小),而是呈现出一种离散…

    Linux干货 2015-04-08
  • 马哥网络班21期,第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     who | cut -d " " -f1 | sort -u     who:查看当前系统所有用户的会话     cut:剪切命令       cut…

    Linux干货 2016-07-26
  • 树 非线性结构 树是n(n >= 0)个元素的集合: (1)每个元素称为结点(node); (2)有一个特定的结点,称为根结点或根(root); (3)除根结点外,其余结点被分成m(m>=0)个互不相交的有限集合,而每个子集又都是一棵树(称为原树的子树Subtree) 注意 n = 0时,称为空树 树只有一个特殊的没有前驱的元素,称为树的根(Ro…

    2017-10-16
  • openssl关于CA证书的创建

    1、用openssl实现证书申请 先在/etc/pki/CA/目录下创建一个index.txt的文件,作为ca证书的数据库 在相同目录下创建一个serial的序列号文件,并写入01 生成ca的签名证书用到的私钥文件 注意:私钥的权限时600,文件名必须是cakey.pem 生成自签证书 这样私有CA建立完成 申请认证: 在申请的机器上生成私钥 生成申请文件 …

    Linux干货 2016-09-23
  • 马哥教育21期网络班—第10周课程+练习—-成长进行时–不退步

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> …

    Linux干货 2016-09-15
  • DNS和BIND配置(第一部分)

    一、知识整理 1、最初只有七个一级域名:Top Level Domain:tld:com、edu、mil、gov、net、org、int;     一级域名分三类:组织域、国家域、反向域。最多127级域名;全球有13个根节点服务器。 2、一次完整的查询请求经过的流程:client—hosts文件&#8212…

    Linux干货 2016-10-17