Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中。 Apache HTTP服务器是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的Web服务器软件。一: apache的基础信息
**主配置目录:/etc/httpd/conf
主配置文件:/etc/httpd/conf/httpd.conf
子配置目录:/etc/httpd/conf.d
子配置文件:/etc/httpd/conf.d/*.conf
以上这些配置文件的名字可以通过"rpm -qc httpd"查看
默认侦听端口:80
默认发布页:/var/www/html/index.html
默认发布目录:/var/www/html
默认安全上下文:httpd_sys_content_t
程序开启默认用户:apache**
二:apache的配置
1,安装及设置开机自启动
yum install -y httpd 安装
systemctl start hpptd 启动
systemctl enable httpd 设置开机自动启动
2,添加防火墙信任1)命令方式
firewall-cmd --permanet --add-service=http
firewall-cmd --permanet --add-service=https
firewall-cmd --reload 重新加载,使配置生效
2)图形方式
输入firewall-config命令,进入防火墙配置的图形化界面,进行配置
配置过程:Configuration选择为permanent;在Zones的区域选择public;在Services的区域选择http,https;Options选择Reload Firewalld。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/4355fb30c80c2083a076a2ea185098c5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
用firewall-cmd --list-all查看是否添加成功
3,httpd的帮助手册httpd的帮助手册在下载服务时并不会自动下载,须手动安装,并只能在浏览器中查看
输入yum install httpd-manual -y命令,下载完成后重启httpd服务,在浏览器中输入IP/manual即可查看
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/f0cac43df8256bda87fab8cae18878b4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
若想用中文方式查看,选择zh-cn即可
4,httpd服务的默认端口及修改httpd服务的默认侦听端口是80。
输入netstat -antulpe | grep httpd命令查看httpd的侦听端口。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/70612cfed114fdf7ecd69ebb028e717d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
编辑etc/httpd/conf/httpd.conf配置文件中第42行,将80改为8080,重启服务后修改生效
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/6b3337600c096bb74c2f5d74fb622704.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/149dde38138a6fb99c69797893be1f3d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
但是此时在浏览器中输入:IP:8080是看不到默认发布页内容的。这是因为防火墙允许通过的httpd服务的端口是
80。 此时,就需要对防火墙进行配置
firwall-cmd --permanet --add-port=8080/tcp 添加8080端口
firewall-cmd --reload 重新加载防火墙配置
此时在浏览器中输入:IP:8080是可以看到默认发布页的内容。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/cd333fa4a84e27c57482e739cfb8fef2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
重复上面的编辑步骤,将侦听端口改为6666,此时发现,httpd服务重启失败。这是因为防火墙添加了6666端口,但是selinux并不允许httpd服务的6666端口通过。
输入semanage port -a -t http_port_t -p tcp 6666命令,王selinux中添加httpd的6666端口
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c2c2410b3df4b7157774c8275628d882.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
测试,在浏览器中输入ip:6666
5,httpd服务的默认发布文件及目录的修改1)httpd服务的默认发布文件修改httpd服务的默认发布页为"/var/www/html/index.html",刚开始这个文件是不存在的。
例如在目录"/var/www/html/"下的"index.html"写入下图所示内容。在浏览器中输入IP就可以看见该内容。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/23c9283958794ac2d3787c6ae71bb092.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(其中<h1><h1>为字体大小)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/306fc7a53cbeb028c70352ab5d0ade91.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在文件"/etc/httpd/conf/httpd.conf"中的第164行,可以更改默认发布页,如下图所示,将默认发布页改
为"xin.html"(有先后顺序),如果"xin.html"不存在,就访问"index.html"。之后重启服务
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/085873e0e5effbd583cdcf59d7007d4b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/722660587c4d35fad74286831fe7fe0a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
vim /var/www/html/we.html 在文件中编辑内容
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/df1e7502aa36777cc67eef81a83c23b6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
完成后重启服务。在浏览器中输入IP测试
2)httpd默认发布目录的修改httpd服务的默认发布目录是"/var/www/html"。
修改httpd服务的默认发布目录
1)"mkdir /xin/www/html -p"。建立一个目录作为默认发布目录。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/103186c324dde1403421b8ae35391801.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"vim /xin/www/html/xin.html"。在文件"xin.html"中写入下图所示内容
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/ee9e7c4cdd09040a06a2cdb4f194750e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)"vim /etc/httpd/conf/httpd.conf"。在配置文件中编辑如下内容,将119行注释,如下图第120行至第123行所示:
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/0d6e63f7df7a316dd53459a2321d4399.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4) 输入semanage fcontext -a -t httpd_sys_content_t '/xin(/.*)?'命令修改"/xin"目录中所有内容的安全上下文,并
通过"restorecon -RvvF /xin"刷新生效。(也可以设置selinux为警告或关闭模式)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/feb2b097152d3f173a6abf5135bab1f5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c62689bf660806e8e62788637fccb382.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
配置完成后重启服务,在浏览器当中输入IP,就可以看见(4)中编辑的文件内容。
三:apache的虚拟主机及配置1)"mkdir /var/www/xin.com/news/html 建立虚拟发布目录
2)vim /var/www/xin.com/news/html/index.html 编辑news.xin.com"的发布页
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/217a031aa53b954d589d77ab0001abf2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/f1c586b11772f93ead81b39a0884a561.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)进入/etc/httpd/conf.d这个目录,输入vim default.conf命令,编辑默认发布页的文件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/04fe57c311ea48209a5310ac151d2654.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/365818c9eca8d1fa70da276804de4527.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/f703c3d75fc4920a8127f0cbf6050163.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
输入vim news.conf编辑"news.xin.com"的文件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/df6d9f4cc631e3ba70439d9825b0272f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
重启服务,在测试主机上添加解析,并进行测试
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/0f65baf11a33581f7263381736a9600b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/62a32ea8f796c65407a9a8c8a7df2997.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在浏览器中测试
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/d0edde69dcb729c951461de709d8bc05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/1d2b80ce1fe6db1f5443a363463fa9a3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
四,apache内部的访问控制基于ip的访问控制
1,如果有apache服务的主机,可以在/etc/httpd/conf.d目录下的文件default.conf中进行编辑。编辑内容如下,重启服务后生效。
编辑的内容有两种:
方法1:通过ip控制访问
1)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/16b8da14fda4201a42c1489ae41a1bfd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
"Order Allow,Deny"表示开启允许或者禁止访问功能,且哪个在前哪个先生效,此处"Allow"先生效。"Allow from all"表示允许所有用户访问。"Deny from 172.25.254.183"表示禁止IP为"172.25.254.183"的用户访问。根据上述前后顺序,则IP 为"172.25.254.183"的用户不可以访问。news.conf,music.conf文件的访问控制同理。
2)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/7d80e4f356d53f65c7e4ad721b045f19.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
"Order Deny,Allow",此处"Deny"先生效。"Deny from all"表示禁止所有用户访问。"Allow from 172.25.254.183"表示允许IP为"172.25.254.183"的用户访问。根据上述前后顺序,则只有IP 为"172.25.254.183"的用户可以访问。
方法二:通过认证用户名密码进行控制
输入vim /etc/httpd/conf.d/default.conf 命令,进入编辑内容如下:
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/e866243c73b3a498283775c881a7cec4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
news文件的访问控制同理
如果没有apache服务的主机,
通过编辑配置文件"etc/httpd/conf/httpd.conf",可以设置禁止或允许一些用户访问。在120行-124行编辑,编辑内容同上
编辑文件完成后,重启服务
2,测试
对方法1的1)进行测试:在是172.25.254.183主机上访问(172.25.254.183不能访问)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/1509f88e02602e2a98474d92b76999e7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/0df59607e833e80a944684595fcdd257.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
连接成功,但是并不能看到文件中的内容
对方法2的2)进行测试:在不是172.25.254.183主机上访问(只有172.25.254.183可以访问)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/7cf15588e68f535170479556cadf98d5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/4cee28d861d7e0c09b1330f8fc6c86b4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
同样,连接成功,但是并不能看到文件中的内容
对方法二测试:
添加用户名并设置密码
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/e3f65426d00b0e5c08e80c25cf9e72f4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在浏览器中输入ip
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/7ac87a693db1b622a283c804c4ec6dbc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
显示输入用户名和密码,输入正确的用户名和密码之后,可以看到文件中的内容
五:apache支持的语言
1.html语言(一般以".html"结尾),apache默认支持该语言。
2.php语言(一般以".php结尾")。
要使apache支持php语言,步骤如下:
1)首先安装php
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/8ef124c2daf7ae42935582f05f86d92b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"vim /var/www/html/index.php",编写index.php文件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/acdc12a0f64881a3b5259b7ca85964c7.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/3aca10f983b66fcacafb5ad0bb368fc0.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)重启服务,并在浏览器输入IP/index.php进行测试
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/176325ac4578187bcce62e2315caa10a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3.cgi语言(通用网管接口,处理表单,比如说注册时的表单)(一般以".cgi"结尾),其实是一种perl语言,apache也是默认支持此语言的。
在默认发布目录(/var/www/cgi-bin)下:1)"vim index.cgi",编写index.cgi脚本文件(该脚本文件的来源:apache的帮助手册),该文件的名字任意给定。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/43d948becb3f1303df56ee7f3a52d36e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/5571452f11fa489e2763b046a4f44c20.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"chmod +x index.cgi",给改脚本文件添加可执行的权限
3)重启服务,输入IP/cgi-bin/index.cgi进行测试
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/623b7d3d05a1f6650d58095ba37ac9b5.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
在非默认发布目录下:(1)"mkdir /var/www/html/cgi -p",建立/var/www/html/cgi目录
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/59f14f8217fac011f2db994b8559f049.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(2)在"/var/www/html/cgi"目录里
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/82eec8f75c11649b0db6a21abca213bd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
"vim index.cgi",编辑cgi的脚本文件
(3)"chmod +x index.cgi",给脚本文件增加可执行的权限
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/4c97343662c295e1c7e7c5120fc191a2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
(4)"semanage fcontext -a -t httpd_sys_script_exec_t /var/www/html/cgi(/.*)?",修改/var/www/html/cgi目录本身,及其内部内容的安全上下文
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/b376cfd79a638978ff418204da9e3c1e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c41d2bac84a50d176f1adbfdb5a48b10.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
此时重启服务进行测试,发现,显示出来的不是该脚本文件运行出来的结果,而是该脚本文件本身,这是因为,网页不认识这些脚本文件,所以需要编辑配置文件,
5)编辑配置文件:
如果配置了apache的虚拟主机
在"/etc/httpd/conf.d"目录下的default.conf文件的中,编辑如下内容
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/8a120b955e64a1913a85fa561fa1ab6b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如果没有apache服务的虚拟主机,在etc/httpd/conf/httpd.conf文件中进行编辑,在120-123行进行编辑,编辑内容如下
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/58bc69520833dbdb92ff2b9221800ddc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
6)编辑完成,重启服务后在浏览器中输入ip/cgi/index.cgi进行测试
注意:如果发布文件不在默认发布目录中,需要修改安全上下文或者将xelinux设置为警告模式或关闭4.python语言(python脚本语言需要网络服务器网关接口即WSGI)
1)"yum search wsgi","yum install mod_wsgi"。安装支持wsgi的软件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/4aabd1e10639205a4a2b5d37d5a2e533.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"vim /var/www/cgi-bin/webapp.wsgi"。编辑脚本文件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/f61e5ff8feb7275fab76ed4600a1b48b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/b5c2f176900118afa3dea574b4e14ccb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)"chmod +x /webapp.wsgi"。给该脚本文件增加可执行的权限,
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/7687881007a243bda0cf130946e1bcf6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
因为该目录不是python语言的默认发布目录,所以要编辑配置文件,添加信任,并修改安全上下文或将selinux设置为警告模式或者关闭selinux。
4)在"/etc/httpd/conf.d"目录下编辑"webapp.conf"文件
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/dc4806a27b20ad3f451d8e19ab100dbd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/a970abe972d393d9b758f880d36b5e6d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
重启服务,在客户主机上编写本地解析文件,在浏览器,输入webapp.xin.com进行测试。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/65b3a0ffc72e27e4e000d7aee4e403e6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
六,apache的加密访问(https)
https是http的安全版,常用于密码登陆等页面,实现客户端和服务端之间的数据的加密传输。https的配置步骤如下所示:
1)"yum install mod_ssl.x86_64 -y"。下载加密模块ssl。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/557386ae11a7322cde3c524ca9b54c2c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"yum install crypto-utils.x86_64 -y"。安装认证证书和key的生成软件。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/4364c7e439a4a67c8ed658fe3817c756.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)设置防火墙策略允许https(前面的实验,已经做过这一步),https的默认端口为443(通过/etc/httpd/conf.d/ssl.conf查看)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/3924c6b4ad0417ac7da2e94aac7fc111.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/b20dc72cb282672065f908ea3fe5cacd.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/312b76cef419fba56e14f6d03d943a5e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/e2f58fd48d93543f79773b1ecc2c5c04.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4)输入命令genkey www.xin.com,为www.xin.com生成证书和key,其生成为图形界面,步骤如下图所示。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/8fc4904d34f339d74bcd33279d1bceeb.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
进入界面,提示证书和key的存放位置,点击next。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/fedc9a04bbcf32e3e46e2bad99e2465b.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
进入选择加密长度界面。选定后点击next。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c99cb571c3af0652d9e1d522f9434102.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
进入文件检查界面
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/55bb5a0c8dadd03313879552bc0c33e8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
完成后进入key生成界面,需要在另外一个shell上随便输入一些东西,可加速key生成
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/e0d48b5a485e9ccc77df1c2c22a7e987.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
完成后进入如下界面,点击no,因为yes是需要钱的,是官方认证,如果是企业需要,则点击yes
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/f90dd3e6298ef2970e922fa1c6121b54.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
完成后进入如下界面,直接点击next
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/9f21c2f0bfeec8dd1247447f09e223e4.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
完成后进入如下界面,输入认证证书的信息。完成后点击next。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/2ea5799c1679b65b0c699b99c1026355.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/2a696a39808def03e285b662a656d574.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
5)"vim /etc/httpd/conf.d/ssl.conf"。编辑配置文件,配置内容如下,输入生成的证书和key所在的文件位置。如图第100行和第107行所示:
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/2d505364fbdda0315c323c0806ca9b50.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
6)加密页的配置已经完成,重启服务后生效。在浏览器中输入https:172.25.254.183测试,
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/78d8e5c02720225c44fd33f3c37677bc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
点击Confirm Security Exception,查看网页信息
点击View查看证书信息
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/921b81e9e1c41b625721db0dc1b5b221.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c82c02601056c9f58d7354cf126a16c9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
点击锁的样式,查看证书信息
查看该认证证书,和之前设置证书时输入的一样
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/3ed112017a1e819cd831166ca75f6177.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
七,设定https虚拟主机并设定网页重写
上述配置完成后在访问网页时需要输入"https",显然这是不合理的,需要在访问域名时直接跳转至https页面。还需要做如下配置:
1)"mkdir /var/www/xin.com/login/html -p"。建立一个虚拟发布目录。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/8b3dd656803ecee14a63cc2c66ee0a69.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2)"vim /var/www/xin.com/login/html/index.html"。配置虚拟发布页,内容如下图所示。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/c256e4655b6cdfe486e47e74eb5b10a6.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3)"vim /etc/httpd/conf.d/login.conf"。配置虚拟发布页的文件。内容如下,如图所示:
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/d73301eeab672016400072530d79fc8d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
其中第2行,第6行和第7行摘自(/etc/httpd/conf.d/ssl.conf文件)
第14,15行摘自apache的帮助手册
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/30775911b54f4f48c5a3877b237093d2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
其中"
:443"表示将端口改为443。"SSLEngine on"表示加密开启,在后面输入证书和key的位置。"RewriteEngine on"表示,重写功能开启。"RewriteRule ^(/.)$ https://%{HTTP_HOST}$1 [redirect=301]"表示重写规则,"^(/.
)$"是客户端上输入的字符,"%{HTTP_HOST}"表示客户请求主机,"$1"表示在这里代表"^(/.)$","redirect=301",表示重定向等级是永久重定向,如果是302表示临时重定向。
4)重启服务生效后,测试时,在客户主机的"/etc/hosts"本地解析文件中加入"login.xin.com",在浏览器中输入"login.xin.com"测试
可以看出,网页自https://login.126.com 获取认证证书后即可看到页面内容。
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/aea092121227a3878a587bb6fc3dc458.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![lLinux学习笔记之apache及论坛的发布](https://s1.51cto.com/images/blog/201812/06/df4d87027cd43d3a497d1ff1e5764544.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)