apache httpd 站点搭建
※·[root@www ~]# yum install httpd.x86_64 1
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 ~]# 1)Global Environment—全局环境配置,决定Apache服务器的全局参数
2)Main server configuration—中心服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有一个站点,那么就只需在这里配置就可以了。
3)Virtual 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>
§·apache与PHP站点的搭建
[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