二、搭建 WordPress 环境
安装 HTTPs
首先
HTTPS = HTTP + SSL 证书
HTTP
Apache HTTP Server 安装前准备
Step 01
// 临时关闭防火墙
[root@~]# systemctl stop firewalld
Step 02
// 临时 关闭 SELinux
[root@~]# setenforce 0
网上查过,会导致 安全狗 + Apache 无法重启的情况,而且它设置起来也麻烦,但是我还没有感受到它的麻烦,所以我选择临时关闭,而不是永久关闭。
Apache HTTP Server 安装与配置
Step 00
查看 CentOS 有没有 EPEL 扩展库,扩展源后面的 Certbot / MySQL / PHP 的安装也都要用到
[root@~]# ls /etc/yum.repos.d/ | grep "epel"
epel.repo
如果没有安装, EPEL 源,目前最新是 7-12 ,
按照这个路径查找 7 -> x86_64 -> Packages -> e, 直接搜索 epel-release-
[root@~]# wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
[root@~]# ls
epel-release-7-11.noarch.rpm
引入库
[root@~]# sodu yum -y localinstall epel-release-7-11.noarch.rpm
查看库
[root@~]# ls /etc/yum.repos.d | grep "epel"
epel.repo
epel.repo.rpmnew
epel-testing.repo
[root@~]# yum repolist enabled | grep "epel"
!epel/x86_64 Extra Packages for Enterprise Linux 7 12,663
Step 01
用 yum 进行安装,或者直接在命令行上使用 man yum
查看命令的使用方式
安装
// -y 是指所有的问题都填 yes
[root@~]# sudo yum -y install httpd
......
Total 13 MB/s | 2.8 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : httpd-tools-2.4.6-80.el7.centos.1.x86_64 1/2
Installing : httpd-2.4.6-80.el7.centos.1.x86_64 2/2
Verifying : httpd-tools-2.4.6-80.el7.centos.1.x86_64 1/2
Verifying : httpd-2.4.6-80.el7.centos.1.x86_64 2/2
Installed:
httpd.x86_64 0:2.4.6-80.el7.centos.1
Dependency Installed:
httpd-tools.x86_64 0:2.4.6-80.el7.centos.1
Complete!
Step 02
查看安装的包 yum 或 rpm
// 指令
[root@~]# yum list installed | grep "httpd"
httpd.x86_64 2.4.6-80.el7.centos.1 @updates
httpd-tools.x86_64 2.4.6-80.el7.centos.1 @updates
[root@~]# rpm -qa | grep httpd
httpd-2.4.6-80.el7.centos.1.x86_64
httpd-tools-2.4.6-80.el7.centos.1.x86_64
// 设备目录的 httpd
[root@~]# ls /etc/ | grep httpd
httpd
Step 03
查看 Apache 服务 systemctl :
[root@~]# systemctl list-unit-files httpd.service
UNIT FILE STATE
httpd.service disabled
1 unit files listed.
如果是 disable 状态,要先 enable 服务
[root@~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service
to /usr/lib/systemd/system/httpd.service.
[root@~]# systemctl list-unit-files httpd.service
UNIT FILE STATE
httpd.service enabled
1 unit files listed.
启动 Apache 服务
[root@~]# systemctl start httpd.service
查看启动状态:
[root@~]# systemctl -l status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service;
enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-09-12 10:45:52 CST; 5min ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 29191 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─29191 /usr/sbin/httpd -DFOREGROUND
├─29192 /usr/sbin/httpd -DFOREGROUND
├─29193 /usr/sbin/httpd -DFOREGROUND
├─29194 /usr/sbin/httpd -DFOREGROUND
├─29195 /usr/sbin/httpd -DFOREGROUND
└─29196 /usr/sbin/httpd -DFOREGROUND
Sep 12 10:45:52 izwz9dnfbgdn5tleje5eitz systemd[1]:
Starting The Apache HTTP Server...
Sep 12 10:45:52 izwz9dnfbgdn5tleje5eitz httpd[29191]:
AH00558: httpd: Could not reliably determine the server's fully
qualified domain name, using 172.18.236.230.
Set the 'ServerName' directive globally to suppress this message
Sep 12 10:45:52 izwz9dnfbgdn5tleje5eitz systemd[1]:
Started The Apache HTTP Server.
修复错误
AH00558: httpd: Could not reliably determine the server's
fully qualified domain name, using 私网 IP.
Set the 'ServerName' directive globally to suppress this message
打开配置文件
[root@~]# vim /etc/httpd/conf/httpd.conf
找到 ServerName 并修改
重新启动服务 systemctl restart httpd.service
[root@ ~]# systemctl restart httpd.service
[root@ ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service;
enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-09-12 11:20:51 CST; 7s ago
Docs: man:httpd(8)
man:apachectl(8)
Process: 29334 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Main PID: 29339 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─29339 /usr/sbin/httpd -DFOREGROUND
├─29340 /usr/sbin/httpd -DFOREGROUND
├─29341 /usr/sbin/httpd -DFOREGROUND
├─29342 /usr/sbin/httpd -DFOREGROUND
├─29343 /usr/sbin/httpd -DFOREGROUND
└─29344 /usr/sbin/httpd -DFOREGROUND
Sep 12 11:20:51 xxx systemd[1]: Starting The Apache HTTP Server...
Sep 12 11:20:51 xxx systemd[1]: Started The Apache HTTP Server.
查看 Apache 的监听是否启动:
[root@~]# netstat -tnlp | grep ':80\>'
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 29339/httpd
查看 Apache 的服务进程是否启动:
[root@~]# ps -axu | grep 'httpd\>' | grep -v '\'
root 29339 0.0 0.1 224020 4952 ? Ss 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 29340 0.0 0.0 224020 2952 ? S 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 29341 0.0 0.0 224020 2952 ? S 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 29342 0.0 0.0 224020 2952 ? S 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 29343 0.0 0.0 224020 2952 ? S 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
apache 29344 0.0 0.0 224020 2952 ? S 11:20 0:00 /usr/sbin/httpd -DFOREGROUND
Step 04
浏览器访问服务器
服务器实例 公网 IP 或 域名
在浏览器网址栏处输入服务器的 公网 IP 地址 或 域名,成功访问 Apache 会出现如下页面:
如果不想打开浏览器查看可以安装 elinks (elinks 指令使用) 来查看:
[root@~]# yum -y install elinks
elinks 查看,Ctrl +C 强制退出
[root@~]# elinks 公网 IP
直接鼠标点击 OK 就可以了,因为现在什么都没配置,肯定有问题的; 可以上下滚动查看里面的内容;按 q 键就可以弹出退出对话框了。
如果无法访问,在阿里云服务器上添加安全组:
继续进行相关配置
网站的内容都在 /var/www/html 里面
查看网站 home 目录 ( grep、sed、awk )
[root@~]# ls -la /var/www/html/
重点 重点 重点
查看 Apache 的设置项,grep -v "^ *#"
去除 #
开头的行, grep -v "^$"
去除空行
[root@~]# cat /etc/httpd/conf/httpd.conf | grep -v "^ *#" | grep -v "^$"
Apache 的所有模块 Modules ,如:dir_module 就属于 mod_dir 模块;log_config_module 属于 mod_log_config 模块.
Apache 的所有指令 Commands,如:ServerRoot, Listen, AllowOverride , Require, Directory ... 就属于指令.
[root@~]# cat /etc/httpd/conf/httpd.conf | grep -v "^ *#" | grep -v "^$"
ServerRoot "/etc/httpd" // Apache 的安装目录
Listen 80 /* Apache 监听的 IP 地址和端口号,HTTP 端口号是 80
HTTPS 是 443 */
Include conf.modules.d/*.conf // 引入其它配置文件
User apache // 服务器应答请求(requests)的进程用户 id
Group apache // 服务器应答请求(requests)的进程组
ServerAdmin root@localhost // 邮件地址,服务器会把错误信息发送到这个邮件地址中
ServerName 私网 IP : 80 // 服务器名
// 服务器根目录的访问设置
AllowOverride none // none 忽略 .htaccess 文件(AllowOverrideList
也设置成了 `None`,那么服务器会完全忽略
.htaccess 文件), all 允许有 .htaccess 文件上
下文的目录访问 .htaccess 文件
Require all denied // granted 表示无条件运行所有访问,
denied 表示无条件拒绝所有访问
DocumentRoot "/var/www/html" // 网站的 home 目录
// "/var/www" 目录文件访问设置
AllowOverride None // none 忽略 .htaccess 文件(AllowOverrideList 也
设置成了 `None`,那么服务器会完全忽略 .htaccess
文件), all 允许有 .htaccess 文件上下文的目录访
问 .htaccess 文件
Require all granted // granted 表示无条件运行所有访问,
denied 表示无条件拒绝所有访问
// "/var/www/html" 目录文件访问设置
Options Indexes FollowSymLinks // 设置可用的属性
AllowOverride None // none 忽略 .htaccess 文件(AllowOverrideList 也
设置成了 `None`,那么服务器会完全忽略 .htaccess
文件), all 允许有 .htaccess 文件上下文的
目录访问 .htaccess 文件
Require all granted // granted 表示无条件运行所有访问,
denied 表示无条件拒绝所有访问
// mod_dir 模块的标识符
DirectoryIndex index.html // 用于目录遍历的资源文件,多个文件用空格分隔
// 所有的 “.ht” 开头的文件
Require all denied // granted 表示无条件运行所有访问,
denied 表示无条件拒绝所有访问
ErrorLog "logs/error_log" // 服务器错误信息保存的路径
LogLevel warn // 控制 ErrorLog 信息的冗长程度
// mod_log_config 模块的标识符
// 信息格式
LogFormat
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat
"%h %l %u %t \"%r\" %>s %b" common
// mod_logio 模块的标识符
LogFormat
"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
CustomLog "logs/access_log" combined // 设置文件名和信息格式
// mod_alias 模块标识符
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" // 构建文件映射
AllowOverride None
Options None
Require all granted
// mod_mime 模块的标识符,
关联请求的文件的后缀
TypesConfig /etc/mime.types // mime.types 文件的路径
AddType application/x-compress .Z // .Z 后缀的文件映射到 application/x-compress
AddType application/x-gzip .gz .tgz // .gz .tgz 后缀的文件
映射到 application/x-gzip
AddType text/html .shtml // .shtml 后缀的文件映射到 text/html
AddOutputFilter INCLUDES .shtml // .shtml 后缀的文件映射到 INCLUDES 过滤器中,
用于处理服务器的响应
AddDefaultCharset UTF-8 // 设置响应的 text/plain or text/html
文件的字符集类型
// mod_mime_magic 模块标识符,
用于判断文件的 MIME 类型
MIMEMagicFile conf/magic // 基于 conf/magic 的文件来
判断文件的 MIME 类型
EnableSendfile on // 使用内核的发送服务来传输文件到客户端
IncludeOptional conf.d/*.conf
如果想快速浏览里面的内容可以使用 more 翻页查看,按 Space 空格键查看下一页
[root@~]# more -30 -s -u /etc/httpd/conf/httpd.conf
完成基本的 httpd.conf 配置
ServerName: [email protected] // 邮箱
查看 welcome.conf 的文件内容,上面看到的欢迎页面就是这个文件配置出来的
[root@~]# cat /etc/httpd/conf.d/welcome.conf | grep -v "^ *#" | grep -v "^$"
Options -Indexes
ErrorDocument 403 /.noindex.html
AllowOverride None
Require all granted
Alias /.noindex.html /usr/share/httpd/noindex/index.html
Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
我们需要自己的网页,所以可以注释掉 welcome.conf,vim 打开后,复制粘贴下面的命令就可以了
:8,22 s/^/#/g
添加 # 注释;
:8,22 s/^#//g
移除 # 注释;
动图演示
修改完成后,重新刷新页面
什么也没有是因为,/var/www/html/ 文件夹下什么也没有,现在添加一个简单的 Hello Word !,并重启 httpd.service 服务
[root@~]# touch /var/www/html/index.html
[root@~]# echo 'Apache HTTP Server... Hello World !' > /var/www/html/index.html // 单引号哦
[root@~]# cat /var/www/html/index.html
Apache HTTP Server... Hello World !
[root@~]# systemctl restart httpd.service
刷新网页
扩展知识:
Apache : https://httpd.apache.org/docs/2.4/bind.htmlVim
如果文件没有高亮也没有行号的,在/etc/vimrc
增加几行设置[root@~]# vim /etc/vimrc
// 打开后, 在文件的末尾增加 " line number 行号 set nu " Syntax highlighting 代码高亮 syntax on " tab set tabstop=4