一、基础知识
1) Apache是开源免费的WWW服务器
2) PHP是一个用来建立动态网页的工具,PHP代码可以直接在HTML网页当中嵌入。
3)elinks 与lynx:文字接口浏览器
4) wget :文字接口下用来下载文件的命令
5)httpd_manual :提供Apache参考文件的一个软件
6)mod_perl :让www服务器支持perl写的网页程序
7)mod_python :让www服务器支持python写的网页程序
8)mod_ssl :支持https加密传输模式
二、 Apache 服务配置文件
2.1 主配置文件
/etc/httpd/conf/httpd.conf
ServerRoot “/etc/httpd” ##服务顶层目录,logs、modules等数据都应该放在该目录下
Include conf.modules.d/.conf ##加载额外配置文件/etc/httpd/conf.d/.conf 到程序中/
ServerAdmin 管理员邮箱
——
2.1.1 网页首页及目录设置
DocumentRoot “/var/www/html”
DirectoryIndex ##设置首页文件名
这里注意Alias,可以制作类似链接,Alias 网络延伸 实际linux目录
<Directory “目录路径”> ##对特定目录路径限制
—— Option 目录参数
indexes 首页文件路径
FollowSymlinks 让连接文件生效
ExecCGI 让此目录具有执行CGI程序的权限
includes 让一些server-side include程序可以运行
MultiViews 支持多种语言
—— AllowOverride 允许的覆盖参数功能
ALL 全部权限均可覆盖
AuthConfig 仅有网页认证(账户跟密码可覆盖)
Indexes 仅允许Indexes方面覆盖
Limits 允许用户利用Allow、Deny 与 Order 管理可浏览的权限
None 不可覆盖,也就是让.htaccess文件失效。
—— deny allow 设置允许拒绝访问、可以访问的名单
< /Directory>
额外参数文件(可以自定义、扩展名为.conf)
/etc/httpd/conf.d/*.conf
支持的外挂模块文件
/usr/lib64/httpd/modules/ 、/etc/httpd/modules/
首页目录文件
/var/www/html/
默认浏览器显示的错误信息文件
/var/www/error
可执行的CGI(网页程序)程序存放的位置
/var/www/cgi-bin/
日志文件
/var/log/httpd/
二进制执行文件:
/usr/sbin/httpd
密码保护文件
/usr/bin/htpasswd
三 、Apache服务器的高级设置
3.1 启动用户的个人网站
#vim /etc/httpd/conf/httpd.conf
添加下面这个设置项:
3.2 启动某个目录的CGI(perl)程序执行
利用新目录下的option参数设定:
<Directory “/var/www/html/cgi”>
Option +ExecCGI
</ Directory>
然后给予该CGI程序文件执行+x权限
3.3 浏览权限的设定(Order Limit):
注意:Order 和 Limit 主要针对IP网络或者主机名来管理
Order deny,allow :拒绝xxx,允许xxx;
Order allow,deny:允许xxx,拒绝xxx;
Order可使用在特定目录访问权限上的限制。
Limit 可以用在限制客户端的操作设置上。
<Limit GET POST OPTIONS操作>
Order allow,deny
3.4 认证网页与.htaccess
1)认证网页的建立过程:
建立受保护的目录——设置Apache所需参数(使用默认的Basic认证模式)——建立密码文件——重启Apache
]# mkdir /var/www/html/project ##建立保护目录数据
]# vim /var/www/html/project/index.html
4.3 日志文件
/var/log/httpd/error_log 从该文件中可以了解到很多错误的设置,包括网页找不到、文件权限设置错误、密码文件文件名写错等等。
/var/log/httpd/access_log :从这个文件中可以分析了解到哪个网页最热门。
日志文件分析软件:
1)webalizer :设置简单,但是图标模式不是很好。
2)awstats :设置难度大,但是有中文化且分析功能到位。数据会放到/usr/local/awstats/
4.4 CentOS中Apache服务器HTTPS配置方法
HTTPS加密协议是HTTP的安全版本,由ssl+http协议构建,可进行加密传输和身份认证,比http协议更加安全。 HTTPS能够为站点提供至少以下2大保障。
1、确保所有经过服务器传输的数据包都是经过加密的。
2、对网站服务器真实身份进行认证,避免被假冒。
- /etc/httpd/conf.d/ssl.conf ##mod_ssl 提供的apache配置文件
2) 端口:443
3) 证书的设置可以查找/etc/pki/tls/certs/Makefile
]# cd /etc/pki/tls/certs/
]# ls
ca-bundle.crt ca-bundle.trust.crt make-dummy-cert Makefile renew-dummy-cert
#]# vim Makefile ##设置证书的有效性及其他参数
自签证书方法一:
#yum install mod_ssl openssl
【生成一个自签名证书】 :# openssl genrsa -out ca.key 204
【生成证书签名请求(rsa)】## openssl rsa -new -key ca.key -out ca.rsa
【生成X509自签名证书】:# openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
【创建证书后将文件复制到对应目录】:
#cp ca.crt /etc/pki/tls/certs/
#cp ca.key /etc/pki/tls/private/
#cp ca.rsa /etc/pki/tls/private/
【配置Apache Web服务器】,修改下面的配置文件:
#vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key
SSLCertificateChainFile /etc/pki/tls/certs/example.com.ca-bundle
重启服务即可https生效。
通过虚拟主机的设置可以将加密首页跟非加密首页分离:
首先创建hhtps首页index,html文件,
#mkdir /var/www/https
#echo “safe” >> /var/www/https/index.html
#vim /etc/httpd/conf.d/ssl.conf
Listen 443
DocumentRoot “/var/www/https”
ServerName *:443
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/ca.crt
SSLCertificateKeyFile /etc/pki/tls/private/ca.key)
</ VirtualHost>