1.什么是apache
Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
网站架构lamp ===linux apahce+mysql+php
curl -I www.baidu.com
2.搭建apache:
配置静态网络,搭建yum源
#http服务的man手册无法用man 5 httpd.cof打开,需在yum源上下载,在网页中输入本机IP/manual打开
下载apache的man手册 yum install httpd-manual -y
开启http服务 systemctl start httpd
将http服务设置为开机自启 systemctl enable httpd
设置防火墙 systemctl start firewalld
firewall-cmd --list-all
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
添加apache默认发布文件中内容cd /var/www/html
vim index.html
内容
测试 在网页中输入 http://本机IP
http://本机IP/manual
3.apache的基础信息:
主配置目录 /etc/httpd/conf
主配置文件 /etc/httpd/conf/httpd.conf
默认发布目录 /etc/www/html
默认发布文件 index.html
默认端口 80
默认安全上下文 http_sys_content_t
4.修改apache的默认信息:
修改默认端口:
进入主配置文件 vim /etc/httpd/conf/httpd.conf
41 Listen 8080
重启http服务 systemctl restart httpd
查看对应端口号是否开启 netstat -antlupe | grep 8080
防火墙中开启对应端口 firewall-cmd --list-all
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
firewall-cmd --list-all
修改默认发布文件:
#此发布文件可以指定多个,访问时将有顺序的访问
进入主配置文件 touch /var/www/html/文件名.html
vim /var/www/html/文件名.html
vim /etc/httpd/conf/httpd.conf
164 DircetoryIndex 文件名.html
重启http服务 systemctl restart httpd
修改默认发布目录:
进入主配置文件 mkdir /目录名/html -p
vim /目录名/html/index.html
vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/目录名/html"
Require all granted
重启http服务 systemctl restart httpd
#特定服务的安全上下文规定只能访问指定的配置文件
解决方法:方案一:selinux设置为disabled
方案二:修改安全上下文
##########网络不通时怎么办############(高级网络配置部分)
查看网络桥接 brictl show
查看网络配置文件 ls /etc/sysconfig/network-scripts/
修改配置文件 vim ifcfg-enp0s25
DEVICE=enp0s25
BOOTPROTO=none
ONBOOT=yes
bridge=br0
##################################################
五.访问控制:
特殊IP可以访问:
mkdir /var/www/html/文件名
vim /var/www/html/文件名/index.html
vim /etc/httpd/conf/httpd.conf
1.所有的除IP1以外都可以访问:
120
Order Allow,Deny
Allow from All
Deny from IP1
重启http服务 systemctl restart httpd
2.除IP2以外都不能访问:
120
Order Deny,Allow
Allow from IP2
Deny from All
重启http服务 systemctl restart httpd
3.输入密码才可以访问:
cd /etc/httpd/conf
实现用户验证 htpasswd -cm 文件名 用户名
-cm 覆盖原文件
-m 不覆盖原文件
cat 文件名
vim /etc/httpd/conf/httpd.conf
只有用户名1才可以输入密码访问
120
AuthUserFile /etc/httpd/conf/文件名
AuthType basic ##访问类型为基础密码访问
AuthName "Please input your name and password!" ##用户访问时所能看到的提示语句
Require user 用户名1 ##允许输入密码进行访问的用户名
#此访问只有指定用户输入正确密码后才可以访问
重启http服务 systemctl restart httpd
用户不为用户1时
用户为用户1且密码正确时
所有有效用户都可以输入密码访问
120
AuthUserFile /etc/httpd/conf/文件名
AuthType basic
AuthName "Please input your name and password!"
Require valid-user
重启http服务 systemctl restart httpd
此时输入用户2的姓名和密码也可以登陆网页了
六.apache的虚拟主机:
(参考百度,同一个IP地址访问不同的域名可以访问不同的界面)
配置本地域名解析文件 vim /etc/hosts
##在客户端(使用浏览器登陆的主机)配置简单的本地域名解析文件
5 IP www.westos.com news.westos.com music.westos.com login.westos
mkdir /var/www/virtual
##apache的子配置目录/etc/httpd/conf.d/
cd /etc/httpd/conf.d/
修改默认虚拟主机的配置文件 vim a_default.conf ##文件名以字母顺序排序,以a开头保证第一个访问此文件
DocumentRoot /var/www/html ##此时访问的发布目录
CustomLog logs/default.log combined ##此时此文件为混合型日志
修改指定名称的虚拟主机的配置文件1mkdir -p /var/www/virtual/news/html
vim /var/www/virtual/news/html/index.html
vim news.conf
ServerName news.westos.com
DocumentRoot /var/www/virtual/news/html
CustomLog logs/news.log combined
Require all granted
修改指定名称的虚拟主机的配置文件2mkdir -p /var/www/virtual/music/html
vim /var/www/virtual/music/html/index.html
vim music.conf
ServerName music.westos.com
DocumentRoot /var/www/virtual/music/html
CustomLog logs/music.log combined
Require all granted
重启http服务 systemctl restart httpd
七.修改apache为支持多语言:
#apache默认支持的语言:html
1.支持php:
下载php服务 yum install php -y
编辑php默认发布文件 vim /var/www/html/index.php
1 2 phpinfo()
3 ?>
重启http服务 systemctl restart httpd
2.支持cgi(多用于用户注册):
mkdir /var/www/html/cgi
编辑cgi默认发布文件 vim /var/www/html/cgi/index.cgi
1 #!/usr/bin/perl
2 print "Content-type: text/html\n\n";
3 print `date`;
修改发布文件权限 chmod 775 /var/www/html/cgi/index.cgi
执行index.cgi的内容 ./index.cgi
此时无法识别cgi,网页上出现的是裸露的代码而不是要显示的内容:
修改默认虚拟主机的配置文件 vim a_default.conf
5
6 Options +ExecCGI
7 AddHandler cgi-script .cgi
8
重启http服务 systemctl restart httpd
八.制作apache访问证书:
1.制作apache访问证书:
下载mod-ssl协议 yum install mod_ssl -y
##mod-ssl是一种以openssl的工具箱为基础,专门为apache webserver提供密码保护,ssl(安全套阶层)和tls(传输套件层安全)的协议
下载软件包分发 yum install crypto-utils -y
##crypto-utils提供纯Java的加密API,用来简化公私钥和证书存储、对称和非对称加密方法的封装
生成自签名证书及其关联密钥 genkey www.westos.com
Next >(选择密钥大小)1024 ,next>(给CA发送证书)No >(apache添加密钥)Next >CN,shannxi,xi'an,westos,linux >(生成密钥时须在虚拟机上随意敲击键盘或任意移动鼠标)
##密钥较大安全性较好但是生成时间较长
vim /etc/httpd/conf.d/ssl.conf
101 SSLCertificateFile 证书地址
109 SSLCertificateKeyFile 钥匙地址
2.设置网页自动调转:
mkdir -p /var/www/virtual/login/html
vim /var/www/virtual/login/html/index.html
cp /etc/httpd/conf.d/news.conf /etc/httpd/conf.d/login.conf
vim /etc/httpd/conf.d/login.conf
1
2 ServerName login.westos.com
3 DocumentRoot /var/www/virtual/login/html
4 CustomLog logs/login.log combined
5 SSLEngine on
6 SSLCertificateFile 证书地址
7 SSLCertificateKeyFile 密钥地址
8
9
10 Require all granted
11
12
13 ServerName login.westos.com
14 RewriteEngine On
15 RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]
16
## ^(/.*) $客户主机在浏览器中输入的所有字符
## https:// 强制客户加密访问
## $1 表示 ^(/.*) 的值
## [redirect=301] 转换时的临时重写,若值为302表示永久转换
九.搭建简易论坛:
下载数据库 yum install mariadb -y
作数据库安全初始化 mysql_secure_installation
下载论坛压缩包 cd /var/www/html
lftp 172.25.254.250
cd /pub/
get Discuz_x3.2_SC_UTF8.zip
解压压缩包unzip Discuz_x3.2_SC_UTF8.zip
检测 网页查询 172.25.254.122/upload
依据网页提示修改对应文件权限
下载php和mysql对应转换服务 yum install php-mysql -y
重启http服务 systemct restart httpd
根据网页提示进行安装