Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

在CentOS 7操作系统上部署WordPress,使用Apache2作为后端并使用nginx做反代和负载均衡(负载均衡有空再写)。

这篇是之前写了一半的文章(使用 Nginx 反代基于 Apache2+PHP 的 Wordpress 站点)的重制版,懒得改之前的屎山了

WordPress是一款能让您建立出色网站、博客或应用程序的开源软件。官网为WordPress。美观的设计,强大的功能,助您自由发挥心中所想。 WordPress既是免费的,也是无价的。(来自WordPress官网)

基础环境

操作系统

我这里采用了CentOS 7,内核版本为3.10.0-1160.90.1.el7.x86_64,架构为x86_64,截至发文时nginx版本为,Apache2版本为,PHP使用的版本为7.4,MySQL使用的版本为5.7,WordPress版本为6.2。

其中本文环境下防火墙和SELinux均已关闭,如遇到高位端口无法绑定请尝试允许SELinux授权。

Apache2部署

1. 安装

执行如下命令:

1
yum install httpd openssl -y

默认情况下httpd没有启动,先不要启动,先改配置文件。

2. 修改配置

  1. 打开配置文件/etc/httpd/conf/httpd.conf,找到并注释Listen 80行;同时在该行下方再添加一行Listen 2048
    1
    2
    # Listen 80
    Listen 2048

    Listen用于指定httpd的监听端口,创建其他的VirtualHost前需要检查是否在这里让httpd监听了对应的端口。可以同时监听多个端口。

    1
    2
    3
    # Listen 80
    Listen 2048
    Listen 2049
  2. 在配置文件/etc/httpd/conf/httpd.conf中搜索所有Options Indexes FollowSymLinks,并全部改为Options -Indexes(这个是目录展示,如果不关会有安全性问题)。
  3. 删除目录/etc/httpd/conf.d下的所有文件。

3. 启动Apache2

首先检查一下配置文件是否有错误:

1
httpd -t

如果返回Syntax is OK,则使用下面的命令启动Apache2:

1
systemctl start httpd

此时在浏览器访问http://主机IP:端口号看看是否能够访问到Forbidden页面。

安装PHP

  1. 安装基础依赖:
    1
    2
    yum install epel-release yum-utils gcc gcc-c++ -y
    yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
  2. 设定安装版本:
    1
    yum-config-manager --enable remi-php74
    其中最后的remi-php74可以替换最后两位数字调整为其他版本,比如替换为remi-php54安装的就是PHP 5.4版本。具体的版本号可以查看清华源的镜像Remi’s RPM repository
  3. 安装PHP和相关依赖:
    1
    2
    yum install -y php74 php74-php-devel php74-php-gd php74-php-pdo php74-php-mbstring php74-php-cli php74-php-fpm php74-php-mysqlnd
    yum install --enablerepo=remi-php74 -y php-xml php-soap php-xmlrpc php-mbstring php-json php-gd php-mcrypt php-mysqli
  4. 查找并关联php:
    首先看一下是不是有php:
    1
    php -v
    如果此时能够返回版本信息则跳过这一步;如果此时报错不存在则执行如下命令:
    1
    php74 -v
    如果此时能够返回版本信息则为php安装正确继续往下执行,否则就是php安装不成功。
    然后找一下php在哪:
    1
    whereis php74
    返回php74: /usr/bin/php74 /usr/share/man/man7/php74.7.gz,得知php在/usr/bin/php74
    最后复制一份即可:
    1
    cp /usr/bin/php74 /usr/bin/php
    此时测试一下php命令:
    1
    2
    3
    4
    [root@esc-hw ~]# php -v
    PHP 7.4.33 (cli) (built: Feb 14 2023 08:49:52) ( NTS )
    Copyright (c) The PHP Group
    Zend Engine v3.4.0, Copyright (c) Zend Technologies
    有正确返回版本号即可。
  5. 重启httpd:
    1
    systemctl restart httpd
  6. 新建文件/var/www/html/index.php,在其中插入内容:
    1
    <?php phpinfo(); ?>
  7. 此时重新在浏览器访问http://主机IP:端口号看看是否能够访问到PHP相关信息页面。如果可以访问到,则可以删掉/var/www/html/index.php文件,也可以先不删。

部署MySQL

安装

  1. 下载并添加仓库:
    1
    2
    3
    yum install -y wget 
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    yum localinstall mysql57-community-release-el7-10.noarch.rpm -y
  2. 导入Key:
    1
    rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
  3. 安装MySQL:
    1
    yum -y install mysql-community-server
  4. 启动MySQL:
    1
    systemctl start mysqld

配置

  1. 首先获取一下密码,第一次启动mysql会自动在日志中生成默认密码,默认日志位置为/var/log/mysqld.log。如果该文件是0KB(无内容)则mysql没有启动或启动失败。
    找到A temporary password is generated for root@localhost:行,后面的就是默认密码,第一次登录成功后请务必更改密码,修改后请牢记并妥善保管。
  2. 在shell中输入mysql -u root -p,并使用默认密码登录。
  3. 修改密码:
    1
    SET PASSWORD = PASSWORD('P@ssworc1!');

    将其中的P@ssworc1!替换为你自己的密码,该密码即为MySQL的root密码。

  4. 创建数据库:
    1
    CREATE DATABASE IF NOT EXISTS wordpress DEFAULT CHARACTER SET = utf8mb4 DEFAULT COLLATE = utf8mb4_general_ci;
    该句命令的含义为创建一个名为wordpress的数据库,如果该数据库不存在的话。该数据库使用UTF-8编码,字符集为utf8mb4,并且使用utf8mb4_general_ci作为默认的排序规则。
  5. 创建专用用户:
    1
    CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'P@ssworc1!';
    该句命令的含义为在localhost(本机)创建一个wordpress的用户,该用户使用密码P@ssworc1!认证,执行时请自行修改命令中的密码。请注意,绝对不要在生产环境中将其他用户的密码设置为root密码,这里仅为测试展示。
  6. 授予用户访问数据库的权限并强制刷新权限:
    1
    2
    GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    这两句中的第一句的含义为授予一个名为wordpress的用户在localhost范围内对数据库wordpress的所有权限,并且允许该用户通过GRANT命令进一步授予权限给其他用户。
    因为本文前提条件下请求端(WordPress)和MySQL服务在同一台服务器上,因此直接授予在localhost的权限即可。如果是部署在docker里或者分开部署的话则需要酌情修改访问范围。

配置 Wordpress

  1. 首先新建一个配置文件/etc/httpd/conf.d/wp.conf,并填入以下内容:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    # 该处设置的端口号必须和上面Listen设置的端口号一样
    <VirtualHost *:2048>
    # 服务器管理员,不重要
    ServerAdmin LxnChan
    # 服务器名称,不重要
    ServerName LxnChan-Blog
    # 服务器别名,填写你的域名,没有的话就填IP
    ServerAlias <Domain Name>
    # 文档位置,文件夹必须存在,网站的数据都在该文件夹内
    DocumentRoot /var/www/wp
    # 日志配置,一般不用动,可以改一下后面的文件名方便识别,配置的文件夹必须存在
    ErrorLog /var/log/httpd/lxnchan-blog-error.log
    CustomLog /var/log/httpd/lxnchan-blog-access.log combined
    </VirtualHost>
  2. 下载WordPress:
    1
    wget https://cn.wordpress.org/latest-zh_CN.tar.gz -O wp_latest.tar.gz
    解压到上面设置的文档位置
    1
    tar -zxvf wp_latest.tar.gz -C /var/www/
  3. 此时访问http://本机IP:端口号应该可以访问到WordPress的设置页,先不要设置。

配置Nginx

安装

  1. 添加nginx源:
    1
    rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
  2. 安装nginx:
    1
    yum install -y nginx
  3. 启动nginx:
    1
    systemctl start nginx
  4. 此时访问http://本机IP,如果可以访问到“Welcome to nginx!”的页面则为安装成功。

配置代理

  1. 新建配置文件/etc/nginx/conf.d/wpp.conf,输入如下内容:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    server {
    # 监听端口,nginx这里用80
    listen 80;
    # 服务器名称,有域名填写域名,没有域名填写IP
    server_name lxnchan.cn;
    # 反代规则
    location / {
    # 填写刚才的Apache2的服务地址
    proxy_pass http://127.0.0.1:2048;
    # 反代header规则,一般不用动
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }
    # WordPress所需的路径变换规则,一般不用动
    rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
    if (-f $request_filename){
    set $rule_2 1;
    }
    if (-d $request_filename){
    set $rule_2 1;
    }
    if ($rule_2 = “1”){
    # ignored: “-” thing used or unknown variable in regex/rew
    }
    rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
    rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
    rewrite /. /index.php last;
    }
  2. 测试配置文件:
    1
    nginx -t
    返回syntax is ok即可。
  3. nginx重载:
    1
    nginx -s reload
  4. 此时访问http://本机IP,应该会出现WordPress的设置页面。

配置WordPress

  1. 在浏览器打开http://本机IP,此时会出现WordPress的初始设置页面。
  2. 输入数据库相关的信息。
  3. 如果之前未作相关权限设置,则需要手动写入配置文件,将配置文件写入对应的路径即可。
  4. 设置站点相关信息,然后开始安装即可。
  5. 安装完成。

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

萌ICP备 20219421 号

中国互联网违法和不良信息举报中心

架构版本号:8.1.6 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

Copyright 2024 LingXuanNing, All rights reserved.