美文网首页
阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP W

阿里云 ECS 服务器 CentOS 7.4 搭建 LAMP W

作者: 半纸渊 | 来源:发表于2018-09-22 15:33 被阅读101次

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

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

    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 '\<grep\>'
    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 或 域名

    Screenshot of 云服务器管理控制台 ips.jpg

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

    Apache HTTP Server Test Page powered by CentOS

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

    [root@~]# yum -y install elinks
    

    elinks 查看,Ctrl +C 强制退出

    [root@~]# elinks 公网 IP
    
    elinks Test 1234

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

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

    云服务器管理控制台 云服务器管理控制台 云服务器管理控制台

    继续进行相关配置

    Screenshot of Apache HTTP Server Test Page powered by CentOS settings

    网站的内容都在 /var/www/html 里面

    查看网站 home 目录 ( grepsedawk )

    [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              // 服务器名
    <Directory />                        // 服务器根目录的访问设置
        AllowOverride none               // none 忽略 .htaccess 文件(AllowOverrideList 
                                            也设置成了 `None`,那么服务器会完全忽略 
                                            .htaccess 文件), all 允许有 .htaccess 文件上
                                            下文的目录访问 .htaccess 文件 
        Require all denied               // granted 表示无条件运行所有访问,
                                            denied 表示无条件拒绝所有访问
    </Directory>
    DocumentRoot "/var/www/html"         // 网站的 home 目录
    <Directory "/var/www">               // "/var/www" 目录文件访问设置
        AllowOverride None               // none 忽略 .htaccess 文件(AllowOverrideList 也
                                            设置成了 `None`,那么服务器会完全忽略 .htaccess 
                                            文件), all 允许有 .htaccess 文件上下文的目录访
                                            问 .htaccess 文件
        Require all granted              // granted 表示无条件运行所有访问,
                                            denied 表示无条件拒绝所有访问
    </Directory>
    <Directory "/var/www/html">          // "/var/www/html" 目录文件访问设置
        Options Indexes FollowSymLinks   // 设置可用的属性
        AllowOverride None               // none 忽略 .htaccess 文件(AllowOverrideList 也
                                            设置成了 `None`,那么服务器会完全忽略 .htaccess 
                                            文件), all 允许有 .htaccess  文件上下文的
                                            目录访问 .htaccess 文件
        Require all granted              // granted 表示无条件运行所有访问,
                                            denied 表示无条件拒绝所有访问
    </Directory>
    <IfModule dir_module>                // mod_dir 模块的标识符
        DirectoryIndex index.html        // 用于目录遍历的资源文件,多个文件用空格分隔
    </IfModule>
    <Files ".ht*">                       // 所有的 “.ht” 开头的文件
        Require all denied               // granted 表示无条件运行所有访问,  
                                            denied 表示无条件拒绝所有访问
    </Files>
    ErrorLog "logs/error_log"            // 服务器错误信息保存的路径
    LogLevel warn                        // 控制 ErrorLog 信息的冗长程度
    <IfModule log_config_module>         // 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 
        <IfModule logio_module>          // mod_logio 模块的标识符
          LogFormat 
          "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
        </IfModule>
        CustomLog "logs/access_log" combined // 设置文件名和信息格式
    </IfModule>
    <IfModule alias_module>              // mod_alias 模块标识符
        ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" // 构建文件映射
    </IfModule>
    <Directory "/var/www/cgi-bin"> 
        AllowOverride None
        Options None
        Require all granted
    </Directory>
    <IfModule mime_module>                   // 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 过滤器中,
                                                用于处理服务器的响应
    </IfModule>
    AddDefaultCharset UTF-8                  // 设置响应的 text/plain or text/html 
                                                文件的字符集类型
    <IfModule mime_magic_module>             // mod_mime_magic 模块标识符,
                                                用于判断文件的 MIME 类型
        MIMEMagicFile conf/magic             // 基于 conf/magic 的文件来
                                                判断文件的 MIME 类型
    </IfModule>
    EnableSendfile on                        // 使用内核的发送服务来传输文件到客户端
    IncludeOptional conf.d/*.conf
    
    

    如果想快速浏览里面的内容可以使用 more 翻页查看,按 Space 空格键查看下一页

    [root@~]# more -30 -s -u /etc/httpd/conf/httpd.conf
    
    意思 意思 more more

    完成基本的 httpd.conf 配置

    ServerName: xxx@xxx.com // 邮箱
    
    

    查看 welcome.conf 的文件内容,上面看到的欢迎页面就是这个文件配置出来的

    [root@~]# cat /etc/httpd/conf.d/welcome.conf | grep -v "^ *#" | grep -v "^$"
    <LocationMatch "^/+$">
        Options -Indexes
        ErrorDocument 403 /.noindex.html
    </LocationMatch>
    <Directory /usr/share/httpd/noindex>
        AllowOverride None
        Require all granted
    </Directory>
    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 移除 # 注释;

    动图演示

    welcom.conf

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

    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
    
    

    刷新网页

    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 W

          本文链接:https://www.haomeiwen.com/subject/ivhxoftx.html