阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server

二、搭建 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-

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第1张图片
epel.png

[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 并修改

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第2张图片
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 或 域名

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第3张图片
Screenshot of 云服务器管理控制台 ips.jpg

在浏览器网址栏处输入服务器的 公网 IP 地址 或 域名,成功访问 Apache 会出现如下页面:

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第4张图片
Apache HTTP Server Test Page powered by CentOS

如果不想打开浏览器查看可以安装 elinks (elinks 指令使用) 来查看:

[root@~]# yum -y install elinks

elinks 查看,Ctrl +C 强制退出

[root@~]# elinks 公网 IP
阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第5张图片
elinks Test 1234

直接鼠标点击 OK 就可以了,因为现在什么都没配置,肯定有问题的; 可以上下滚动查看里面的内容;按 q 键就可以弹出退出对话框了。

如果无法访问,在阿里云服务器上添加安全组:

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第6张图片
云服务器管理控制台
阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第7张图片
云服务器管理控制台
阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第8张图片
云服务器管理控制台

继续进行相关配置

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第9张图片
Screenshot of Apache HTTP Server Test Page powered by CentOS settings

网站的内容都在 /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
阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第10张图片
意思 意思 more more

完成基本的 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 移除 # 注释;

动图演示

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第11张图片
welcom.conf

修改完成后,重新刷新页面

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第12张图片
welome nothing.png

什么也没有是因为,/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

刷新网页

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server_第13张图片
apache hello world

扩展知识:

Apache : https://httpd.apache.org/docs/2.4/bind.html

Vim
如果文件没有高亮也没有行号的,在 /etc/vimrc 增加几行设置

[root@~]# vim /etc/vimrc
// 打开后, 在文件的末尾增加
" line number 行号
set nu 
" Syntax highlighting 代码高亮
syntax on
" tab 
set tabstop=4

你可能感兴趣的:(阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP WordPress 环境:Apache HTTP Server)