# 安装apache2
第一步:apt install apache2 apache2-doc
第二步:systemctl status apache2
第三步:ss ‐ntupl |grep apache
# 测试
##### 桌面测试
```
第一步:桌面测试
第二步:http://localhost
```
##### 命令行测试
```
第一步:curl http://192.168.10.1
```
##### 旁批
````
使用域名来访问 因为网站通常都是通过域名来访问的,而不是IP,所以在实验过程中我们可以配置DNS服务器来配合httpd服务器的实现。 而在生产环境通常域名解析的工作由域名提供商(或者DNS服务商)来提供解析的功能,一般情况下不需要自行搭建DNS,只需要把你所购买的域名解析到你的apache服务器所在的服务器IP地址(公网)即可。
另外,在实验环境里面,如果只是测试apache, 其实不需要搭建DNS那么复杂,要实现域名到IP的解析访问,用客户端系统/etc/hosts文件即可。
````
# 修改web的默认主页
##### 网页默认路径
```
/var/www/html
```
```
第一步:cd /var/www/html
第二步:cp -a index.html index.html.back
```
# 无法安装apache2
```
apt-get remove --purge apache2 #删除安装包和配置文件
apt-get remove --purge apache2-bin #删除安装包和配置文件
```
# 使用https连接访问
#### 使用自带系统签名的key和crt
```
第一步:a2enmod ssl #启用ssl模块
第二步:cd /etc/apache2/mods-enabled #进入路径
第三步:a2ensit default-ssl.conf #开启ssl模块
第四步:systemctl restart apache2 #重启服务
```
##### 测试
```
第一步:vim /etc/resolv.conf #打开配置文件
nameserver 192.168.10.1 #此处IP地址为本机IP
```
##### 切换到虚拟桌面
![浏览器访问][1]
#### 自签SSL证书
```
第一步:apt install apache2 #安装服务
第二步:mkdir /etc/apache2/ssl #创建目录
第三步:cd /etc/apache2/ssl #进入目录
第四步:openssl req -new -x509 -nodes -out 1.crt -keyout 1.key #生成key和crt在当前目录下
-----
Country Name (2 letter code) [AU]:CN #国家
State or Province Name (full name) [Some-State]: #省
Locality Name (eg, city) []: #城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ss #代号
Organizational Unit Name (eg, section) []:best #名称
Common Name (e.g. server FQDN or YOUR name) []:www.caoyi.com #域名
Email Address []:123456@163.com #邮箱
第四步:vim ../sites-available/default-ssl.conf
#SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem }
#SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key }将两行复制并注释
SSLCertificateFile /etc/apache2/ssl/1.crt }将crt和key文件绝对路径写入
SSLCertificateKeyFile /etc/apache2/ssl/1.key }
保存并退出
第五步:a2enmod ssl #启用ssl模块
第六步:cd /etc/apache2/mods-enabled #进入路径
第七步:a2ensit default-ssl.conf #开启ssl模块
第八步:systemctl restart apache2 #重启服务
```
##### 自签CA证书:
---
##### CA服务器:
````
第一步:cd /root/ #进入目录
第二步:/usr/lib/ssl/misc/CA.pl -newca #执行脚本生成CA证书
第三步:mv 1.csr newreq.pem #重命名、1.csr是由apache2服务器第五步发送过来
第四步:/usr/lib/ssl/misc/CA.pl -sign #将CA证书和密钥匹配合成。生成newcert.pem
第五步:scp newcert.pem apache2服务器IP:/etc/apache2/ssl/1.crt #将newcert.pem发送apache2服务器
````
##### apache2服务器
```
apt install apache2 #安装服务
第一步:mkdir /etc/apache2/ssl #创建ssl目录
第二步:cd /etc/apache2/ssl #进入ssl目录
第三步:openssl genrsa -out 1.key 2048 #生成1.key
第四步:openssl req -new -key 1.key -out 1.csr #生成1.csr
第五步:scp 1.csr CA服务器IP:/root #将1.csr发送给CA服务器
第六步:cd /etc/apache2 #进入apache2目录
第七步:vim /sites-enabled/default-ssl.conf #打开默认ssl配置文件
SSLCertificateFile /etc/apache2/ssl/1.crt }
SSLCertificateKeyFile /etc/apache2/ssl/1.key }#更改路径
第八步:a2enmod ssl #启用ssl模块
第九步:cd /etc/apache2/mods-enabled #进入路径
第十步:a2ensit default-ssl.conf #开启ssl模块
第十一步:systemctl restart apache2 #重启服务
```
# 测试
##### CA服务器
```
第一步:cd demoCA #进入文件夹
第二步:scp scp cacert.pem 192.168.10.2:/home/demo #发送给apache2服务器的普通用户的家目录
```
##### apache2服务器
```
第一步:切换到虚拟桌面
第二步:打开浏览器
```
![浏览器设置][2]
![浏览器设置2][3]
![浏览器设置3][4]
![浏览器设置4][5]
![浏览器设置5][6]
![浏览器设置6][7]
# 域名虚拟主机
##### 实验环境说明
```
本服务器安装了 bind9 提供两个域名
www.yu.com
www.yus.com
000-default.conf 域名为www.yu.com
001.yu.conf 域名为www.yus.com
```
```
apt install apache2 #安装服务
第一步:cd /etc/apache2/sites-available #进入此目录
第二步:cp 000-default.conf 001.yu.conf #复制域名虚拟机
第三步:vim 001.yu.conf #进入域名虚拟机
第四步:
Servername www.yus.com #开启注释,修改成自己的域名
DocumentRoot /srv/www/yus/ #修改域名的家目录
第五步:vim /etc/apache2/apache2.conf #进入apache2配置文件
Options FollowSymlinks
AllowOverride None
Require all granted #找到/处将所有域名虚拟机放行通过
第六步:a2ensite 001.yu.conf #开启自启模式
第七步:systemctl restart apache2 #重启服务
```
# CGI:将代码隐藏,只能看到效果
```
第一步:a2enmod cgi cgid #开启模块
第二步:cd /usr/lib/cgi-bin #进入目录
第三步:vim time.sh #创建文件并打开编写脚本
#!/bin/bash
echo "Content-type: text/html"
echo ""
/bin/cat <
System time
EOF3
/bin/date "+%Y/%m/%d %T %u"
/bin/cat <