Apache的部署
(1).Apache简介
Apache(Apache HTTP Server)是世界使用排名第一的开放源代码的Web服务器软件。可以理解为电脑上的一个应用程序。
简单地说它的作用就是将你的电脑变成一台服务器,让你的电脑开放特定的网络端口,用以接收来自网络上发送到这台机器的HTTP请求,
对请求的内容进行处理并作出相应的响应。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
(2).apache的主要属性
1.支持http1.1标准
2.支持多种脚本语言如perl php jsp等
3.支持多种用户认证机制,如.htaccess文件,mysql数据库,openldap目录等。
4.支持虚拟主机
5.支持访问控制。
6.支持重定向和重写规则
7.支持ssl
Apache是企业中常用的web服务,用来提供http://(超文本传输协议)
比如:很多网站的访问所需提供的服务是apache或者nginx
[root@foundation34 ~]# curl -I www.baidu.com
##baidu.com是www.baidu.com的子网
[root@foundation34 ~]# curl -I baidu.com
[root@foundation34 ~]# curl -I www.163.com
##修改主机名
[root@localhost ~]# hostnamectl set-hostname apache-server
##搜索apache相关软件
[root@apache-server ~]# yum search apache
##1.安装apache
[root@apache-server ~]# yum install -y httpd.x86_64
##2.打开apache服务
[root@apache-server ~]# systemctl start httpd
##查看火墙策略
[root@apache-server ~]# firewall-cmd --list-all
[root@apache-server ~]# exit
logout
Connection to 172.25.254.134 closed.
##3.图形方式连接主机
[root@foundation34 ~]# ssh [email protected] -X
[email protected]'s password:
##4.图形方式添加火墙策略;即火墙允许http和https服务
[root@apache-server ~]# firewall-config
[root@apache-server ~]# firewall-cmd --list-all
默认端口: 80
主配置目录: /etc/httpd/conf/
主配置文件: /etc/httpd/conf/httpd.conf
子配置目录: /etc/httpd/conf.d/
子配置文件: /etc/httpd/conf.d/*.conf
默认发布目录: /var/www/html
默认发布文件: index.html (默认发布文件必须写在默认发布目录里)
默认安全上下文: httpd_sys_content_t
程序开启默认用户: apache
Apache日志: /etc/httpd/logs/*
@1. 查看apache服务的端口
[root@apache-server ~]# netstat -antlupe | grep httpd
@2. 查看apache的配置文件
[root@apache-server ~]# rpm -qc httpd
@3. apahce的默认发布目录为/var/www/html/
[root@apache-server ~]# cd /var/www/html/
@4. apache的默认发布文件为index.html
[root@apache-server html]# vim index.html
##########################
hello word!
@5. 查看安全上下文
[root@apache-server logs]# ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
@6. 查看apache日志
[root@apache-server ~]# cd /etc/httpd/logs/
[root@apache-server logs]# ls
access_log error_log
@7. 默认man无法查看到apahce的帮助;
[root@apache-server ~]# man 5 httpd.conf
No manual entry for httpd.conf in section 5
##安装apache的手册工具
[root@apache-server ~]# yum install -y httpd-manual
##重启apache
[root@apache-server ~]# systemctl restart httpd
在网页上输入 172.25.254.134/manual 便可以查看apache帮助手册
3.修改端口
(1)修改为selinux已经允许的端口
##apache的默认端口为80
[root@apache-server ~]# netstat -antlupe | grep httpd
##1.修改apache端口为8080
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
42 Listen 8080
##2.重启服务
[root@apache-server ~]# systemctl restart httpd
##查看apahce的端口
[root@apache-server ~]# netstat -antlupe | grep http
默认访问的是80端口
此时默认端口已经被修改为8080,故访问时需添加:8080;发现此时仍旧无法访问
因为火墙策略中未添加8080端口
[root@apache-server ~]# firewall-cmd --list-all
##3.图形方式添加8080端口到火墙策略中
[root@apache-server ~]# firewall-config
##查看火墙策略
[root@apache-server ~]# firewall-cmd --list-all
##1.修改apache端口为6666
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
42 Listen 6666
##重启apache
[root@apache-server ~]# systemctl restart httpd
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
##发现是selinux的影响;强制模式
[root@apache-server ~]# getenforce
Enforcing
##方法1.更改selinux的状态为警告模式
[root@apache-server ~]# setenforce 0
[root@apache-server ~]# getenforce
Permissive
[root@apache-server ~]# systemctl restart httpd
##方法2.添加selinux允许6666端口
[root@apache-server ~]# setenforce 1
[root@apache-server ~]# getenforce
Enforcing
##发现没有6666端口
[root@apache-server ~]# semanage port -l | grep http
##2.添加6666端口
[root@apache-server ~]# semanage port -a -t http_port_t -p tcp 6666
[root@apache-server ~]# semanage port -l | grep http
##3.重启apache
[root@apache-server ~]# systemctl restart httpd
[root@apache-server ~]# netstat -antlupe | grep httpd
##4.图形方式添加6666端口火墙策略
[root@apache-server ~]# firewall-config
[root@apache-server ~]# firewall-cmd --list-all
默认发布文件就是当访问apache时没有指定文件名称时默认访问的文件,此文件可以有多个,且他们之间有访问顺序
##1.还原端口
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
42 Listen 80
##重启服务
[root@apache-server ~]# systemctl restart httpd
##查看apache的端口
[root@apache-server ~]# netstat -antlupe | grep httpd
[root@apache-server ~]# cd /var/www/html/
[root@apache-server html]# ls
index.html
[root@apache-server html]# cat index.html
hello word!
##2.重新编写一个发布文件
[root@apache-server html]# vim westos.html
##########################
hello westos
##重启服务
[root@apache-server html]# systemctl restart httpd
网页测试:
只能输入172.25.254.134/westos.html才能访问新编写的发布文件中的内容
##3.编写主配置文件
[root@apache-server html]# vim /etc/httpd/conf/httpd.conf
##########################
164 DirectoryIndex westos.html index.html ##写在前边的优先级高;当westos.html文件不存在时,才默认访问index.html文件
##4.重启apache
[root@apache-server html]# systemctl restart httpd
网页测试:
此时只用输入ip即可访问
##1.建立目录
[root@apache-server ~]# mkdir -p /westos/web/html/
[root@apache-server ~]# cd /westos/web/html/
[root@apache-server html]# ls
##2.在新建的目录中编写文件
[root@apache-server html]# vim linux.html
#######################
/westos/web/html's page
##3.将新建立的目录设定为默认发目录
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
119 #DocumentRoot "/var/www/html"
120 DocumentRoot "/westos/web/html"
##重启服务
[root@apache-server ~]# systemctl restart httpd
1.清空日志
[root@apache-server ~]# > /etc/httpd/logs/error_log
2.刷新网页
3.查看日志
[root@apache-server ~]# cat /etc/httpd/logs/error_log
##4.给刚设定的默认发布目录授权
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
122 ##目录授权
123 Require all granted
124
[root@apache-server ~]# systemctl restart httpd
1.清空日志
[root@apache-server ~]# > /etc/httpd/logs/error_log
2.刷新网络
3.查看日志
[root@apache-server ~]# cat /etc/httpd/logs/error_log
##5.设定默认发布文件
[root@apache-server ~]# vim /etc/httpd/conf/httpd.conf
#######################
169
170 DirectoryIndex linux.html westos.html index.html
171
##6.重启服务
[root@apache-server ~]# systemctl restart httpd
1.清空日志
[root@apache-server ~]# > /etc/httpd/logs/error_log
2.刷新网络
3.查看日志
[root@apache-server ~]# cat /etc/httpd/logs/error_log
##查看安全上下文
[root@apache-server html]# ls -Z /westos/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 web
##7.修改安全上下文
[root@apache-server ~]# semanage fcontext -a -t httpd_sys_content_t '/westos(/.*)?'
##8.刷新
[root@apache-server ~]# restorecon -RvvF /westos/
##查看/westos目录的安全上下文
[root@apache-server ~]# ls -Z /westos/
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 web