LNMP配置WordPress,实现MySQL分离和MySQL主从

web/DB服务器架构配置流程

前期规划

前期规划

角色

ip

操作系统

内核

软件包

web服务器

192.168.8.156

CentOS

Stream 9

5.14.0-

381.el9.x86_64

nginx PHP Wordpress

web服务器

192.168.8.60

CentOS

Stream 9

5.14.0-

381.el9.x86_64

nginx PHP Wordpress

MySQL主服务器

192.168.8.164

CentOS

Stream 9

5.14.0-

381.el9.x86_64

MYSQL

MySQL从服务器

192.168.8.61

CentOS

Stream 9

5.14.0-

381.el9.x86_64

MYSQL

实现目标

两台web服务器配置一个nginx并且配置wordpress,MySQL做分离,配置两台分区实现主从。

初始化 

关闭selinux

vi /etc/selinux/config

grep -ni '^SELINUX=' /etc/selinux/config

sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

关闭iptables

iptables -nvL

设置主机名

修改主机名hostnamectl set-hostname --static

设置历史命令时间用户

vi  ~/.bash_profile

最后添加

export HISTTIMEFORMAT="`whoami` [%Y-%m-%d %H:%M:%S] "

export HISTSIZE=999999

之后刷新

source ~/.bash_profile

配置nginx

下载nginx软件包

wget -c https://nginx.org/download/nginx-1.25.3.tar.gz

查看下载的安装包

[root@NPW-151 ~]# ll

总用量 1196

-rw-------. 1 root root    1111 12月  5 15:44 anaconda-ks.cfg

-rw-r--r--  1 root root 1216580 10月 24 23:42 nginx-1.25.3.tar.gz

解压

tar xf nginx-1.25.3.tar.gz

安装所需的环境

yum -y install gcc gcc-c++ pcre-devel zlib-devel make autoconf

进入目录

 cd nginx-1.25.3

预编译

./configure --prefix=/usr/local/nginx --with-stream --with-debug ; echo $?

如图显示如下显示编译完成

编译

make ; echo $?

编译完成

安装

make install; echo $?

显示安装完成

创建nginx用户

useradd -s /sbin/nologin nginx -M

命令说明:

useradd  

创建用户nginx  

-s /sbin/nologin

指定用户登入后所使用的shell不创建家目录

-M

不要自动建立用户的登入目录

查看nginx用户

[root@web-151 nginx-1.25.3]# id nginx

用户id=1000(nginx) 组id=1000(nginx) 组=1000(nginx)

检查配置语法

/usr/local/nginx/sbin/nginx -t

启动nginx

/usr/local/nginx/sbin/nginx

设置nginx开机自启

cd /etc/systemd/system

vi nginx.service

[Unit]

Description=nginx service

After=network.target

[Service]

Type=forking

ExecStart=/usr/local/nginx/sbin/nginx

#此为执行文件的路径

ExecReload=/usr/local/nginx/sbin/nginx -s reload

#此为命令

ExecStop=/usr/local/nginx/sbin/nginx -s quit

PrivateTmp=true

[Install]

WantedBy=multi-user.target

开机自启

systemctl enable nginx

启动nginx服务

systemctl start nginx.service

重新启动服务

systemctl restart nginx.service

查看服务当前状态

systemctl status nginx.service

停止开机自启动

systemctl disable nginx.service

查看nginx端口

ss -tulanp |grep nginx

查看进程

ps axu |grep nginx

使用本机访问

curl -I 127.0.0.1

curl -I localhost

使用浏览器访问

配置php

php 官方下载页面 

PHP: Downloads

参考文档

php8.2 编译安装(详细)+ bash脚本 (多linux版本)_编译安装php8-CSDN博客

安装开发工具软件包

dnf -y groupinstall 'Development Tools'

查看开发工具包安装了那些包

dnf -y groupinfo 'Development Tools'

yum -y install bzip2

解压

tar xf php-8.3.1.tar

进入目录

cd php-8.3.1

安装依赖包

dnf -y install wget libxml2-devel sqlite-devel bzip2-devel libcurl-devel libffi-devel libpng-devel libwebp-devel libjpeg-devel oniguruma libzip

下载neystat命令 方便查看端口

yum -y install net-tools

如果想显示英文

export LANG=en

安装依赖包

安装 oniguruma

通过下载链接下载

wget https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/o/oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm

或者使用dnf安装

dnf -y install oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm

安装 libzip-devel

通过下载链接下载

wget https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/l/libzip-devel-1.7.3-7.el9.x86_64.rpm

或者使用dnf安装

dnf -y install libzip-devel-1.7.3-7.el9.x86_64.rpm

通过下载链接下载的安装包的话

yum -y localinstall  安装软件包

yum -y localinstall oniguruma-devel-6.9.6-1.el9.5.x86_64.rpm

yum -y localinstall libzip-devel-1.7.3-7.el9.x86_64.rpm

命令说明:

yum localinstall是用来安装本地rpm包的命令,首先rpm包要先下载到本地,然后在本地目录执行yum localinstall *.rpm,yum会自动搜寻依赖关系并安装而rmp -i *.rpm不会自行解决依赖关系,缺少依赖就会报错

查看编译参数

./configure -help

编译参数如下:

./configure --prefix=/usr/local/php

--sysconfdir=/etc/php \

--with-openssl \

--with-zlib \

--with-bz2 \

--with-curl \

--enable-bcmath \

--enable-gd \

--with-webp \

--with-jpeg \

--with-mhash \

--enable-mbstring \

--with-imap-ssl \

--with-mysqli \

--enable-exif \

--with-ffi \

--with-zip \

--enable-sockets \

--with-pcre-jit \

--enable-fpm \

--with-pdo-mysql \

--enable-pcntl ; echo $

上面的展开说明(使用的话直接复制上面的,这里是做解释用的)

./configure

--prefix=/usr/local/php #安装地址

--sysconfdir=/etc/php #设置文件地址

--with-openssl #启用 ssl

--with-zlib

--with-bz2

--with-curl #启用 curl(必开)

--enable-bcmath

--enable-gd

--with-webp

--with-jpeg

--with-mhash

--enable-mbstring #必开,很多需要用到

--with-imap-ssl

--with-mysqli #mysqli 函数,如果用 pdo,可以补开

--enable-exif

--with-ffi #支持外挂 C 程序

--with-zip

--enable-sockets #开启 socket

--with-pcre-jit #开启 jit

--enable-fpm #开启 fpm 模式(必开)

--with-pdo-mysql #支持 mysql

--with-pdo-pgsql #支持 pgsql

--enable-pcntl

查看cpu和内存

查看cpu

lscpu

查看内存

free -g

本次预编译的选项如下。 

./configure --prefix=/usr/local/php831 \

--sysconfdir=/usr/local/php831/etc \

--with-openssl \

--with-zlib \

--with-bz2 \

--with-curl \

--enable-bcmath \

--enable-gd \

--with-webp \

--with-jpeg \

--with-mhash \

--enable-mbstring \

--with-imap-ssl \

--with-mysqli \

--enable-exif \

--with-ffi \

--with-zip \

--enable-sockets \

--with-pcre-jit \

--enable-fpm \

--with-pdo-mysql \

--enable-mysqlnd \

--enable-pcntl; echo $?

预编译成功

编译安装,安装时间比较长,请耐心等待!

time make -j 3 && make install ; echo $?

选择三核来编译 之后安装,并显示时间

编译完成后会显示类似如下信息:里面包含了各种文件的地址,建议编译后截图保存,方便日后查看

top

排序cpu  e

显示编译完成

添加系统用户(可选) 

本人没有进行该操作

添加用户组,名字用 www 是因为通常 php 做 web 后端开发的,可以改成别的。

groupadd www

#添加用户(一个不允许登录的用户)

useradd -g www -s /sbin/nologin www

配置主文件 

将配置文件复制到正确的位置(很多情况下修改配置不生效就是配置文件地址没搞对)

cp -av /usr/local/php-8.2.10/php.ini-development /usr/local/php/lib/php.ini

cp -av /etc/php/php-fpm.conf.default /etc/php/php-fpm.conf

cp -av /etc/php/php-fpm.d/www.conf.default /etc/php/php-fpm.d/www.conf

具体步骤

  1. php.ini

查找php.ini-development 文件

[root@lnmp-152 ~]# find / -type f -name php.ini-development

./php-8.3.1/php.ini-development

查找php.ini-development文件 将该文件拷贝为/usr/local/php831/lib/php.ini

cp -av php-8.3.1/php.ini-development  /usr/local/php831/lib/php.ini

cp -av  /root/php-8.3.1/php.ini-development /usr/local/php831/lib/php.ini

  1. php-fpm.conf

查找php-fpm.conf.default文件

[root@bj-web131 php-8.3.1]# find / -type f -name "php-fpm.conf.default"

/usr/local/php831/etc/php-fpm.conf.default

php-fpm.conf.default文件移动为/usr/local/php831/etc/php-fpm.conf

[root@bj-web131 php-8.3.1]# cp -av /usr/local/php831/etc/php-fpm.conf.default /usr/local/php831/etc/php-fpm.conf

'/usr/local/php831/etc/php-fpm.conf.default' -> '/usr/local/php831/etc/php-fpm.conf'

3. www.conf

查找www.conf.default文件

[root@bj-web131 php-8.3.1]# find / -name "www.conf.default"

/usr/local/php831/etc/php-fpm.d/www.conf.default

/www.conf.default文件移动为/usr/local/php831/etc/php-fpm.d/www.conf

[root@bj-web131 php-8.3.1]# cp -av /usr/local/php831/etc/php-fpm.d/www.conf.default /usr/local/php831/etc/php-fpm.d/www.conf

'/usr/local/php831/etc/php-fpm.d/www.conf.default' -> '/usr/local/php831/etc/php-fpm.d/www.conf'

配置环境变量

vim /etc/profile

在 PATH 中添加,和其它的目录用:分隔开(如果找不到 PATH,用第二种方式)

/usr/local/php831/bin/

第一种方式:类似如下(写的详细些,一些新手对环境变量理解不够)

第二种方式:直接在文件的最下面加入下面

export PATH=$PATH:/usr/local/php831/bin/

注意:如果预编译的时候不和文档路径相同,写入自己的路径

保存退出后,在命令行刷新环境变量

source /etc/profile

输入以下命令,如果能够返回版本号,说明配置成功

php -v

完整输出如下

 具体步骤

[root@bj-web131 php-8.3.1]# vim +$ /etc/profile

[root@bj-web131 php-8.3.1]# tail -1 /etc/profile

export PATH=$PATH:/usr/local/php831/bin/ 将这一行添加到文件里面

刷新

[root@bj-web131 php-8.3.1]# source /etc/profile

修改用户

grep -ni '^user' /usr/local/php831/etc/php-fpm.d/www.conf

查看user

将用户修改nginx

sed -i 's@user = nobody@user = nginx@' /usr/local/php831/etc/php-fpm.d/www.conf

systemctl 管理(php-fpm) 

1. 创建脚本文件

vim /usr/lib/systemd/system/php-fpm.service

内容如下

[Unit]

Description=php-fpm

After=syslog.target network.target

[Service]

Type=forking

ExecStart=/usr/local/php831/sbin/php-fpm 

ExecReload=/bin/kill -USR2 $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

注意:红色字体标记,修改为你的 php 实际安装路径。

输出如下。

[root@bj-web131 php-8.3.1]# vim /usr/lib/systemd/system/php-fpm.service

[root@bj-web131 php-8.3.1]# ls -lhrt /usr/lib/systemd/system/php-fpm.service

-rw-r--r-- 1 root root 217 1  9 14:37 /usr/lib/systemd/system/php-fpm.service

增加权限

[root@bj-web131 php-8.3.1]# chmod 700 /usr/lib/systemd/system/php-fpm.service

[root@bj-web131 php-8.3.1]# ls -lhrt /usr/lib/systemd/system/php-fpm.service

-rwx------ 1 root root 217 1  9 14:37 /usr/lib/systemd/system/php-fpm.service

刷新systemctl

systemctl daemon-reload

启动                        开机启动                 查看状态

systemctl start php-fpm && systemctl enable php-fpm && systemctl status php-fpm

查看端口

配置mysql

下载mysql数据库

解压

tar xf mysql-8.2.0-linux-glibc2.17-x86_64.tar.xz

查看文件大小

创建软链接

ln -sv /root/mysql-8.2.0-linux-glibc2.17-x86_64 /usr/local/mysql

方便管理

创建组

groupadd mysql && useradd mysql -g mysql -s /sbin/nologin -M

命令说明:

groupadd mysql创建组mysql

useradd mysql -g mysql 创建用户mysql并把该用户放到mysql组里面  

-g mysql   指定用户所属的起始群组

-s /sbin/nologin  指定用户登入后所使用的shell,为不可登录

-M   不创建家目录

创建存放数据的目录

mkdir -pv /data/mysql/mysql3316/{data,logs,tmp,conf,run}

把/data/mysql 这个目录和目录里面包含的文件改变为mysql

chown -R mysql. /data/mysql/

目录说明

MySQL 3316 实例的数据目录 /data/mysql/mysql3316/data

MySQL 3316 实例的日志目录 /data/mysql/mysql3316/logs

MySQL 3316 实例的临时文件目录 /data/mysql/mysql3316/tmp

MySQL 3316 实例的配置文件目录 /data/mysql/mysql3316/conf

修改 MySQL 安装目录和数据目录的所属用户和组

chown -R mysql. /data/mysql/ /usr/local/mysql/

目的:使用 mysql 普通用户启动 MySQL 服务。

非交互式创建my3316.cnf配置文件

cat >/data/mysql/mysql3316/conf/my3316.cnf<<ldp 

[client]

port = 3316

socket = /data/mysql/mysql3316/run/mysql3316.sock

default-character-set=utf8mb4

[mysql]

disable-auto-rehash

#允许通过 TAB 键提示

default-character-set = utf8mb4

connect-timeout = 10

[mysqld]

user=mysql

server-id = 3316

port = 3316

socket = /data/mysql/mysql3316/run/mysql3316.sock

pid-file = /data/mysql/mysql3316/run/mysql3316.pid

basedir = /usr/local/mysql

datadir = /data/mysql/mysql3316/data

#bind_address = 10.10.10.11

autocommit = 1

default_authentication_plugin=mysql_native_password

character-set-server=utf8mb4

explicit_defaults_for_timestamp=true

lower_case_table_names=1

back_log=103

max_connections=10000

max_connect_errors=100000

table_open_cache=512

external-locking=FALSE

max_allowed_packet=32M

sort_buffer_size=2M  

join_buffer_size=2M

thread_cache_size=51

transaction_isolation=READ-COMMITTED

tmp_table_size=96M

max_heap_table_size=96M

###***logs

long_query_time = 10

slow_query_log = 1

slow_query_log_file=/data/mysql/mysql3316/logs/my3316-slow.log

#log-warnings = 1

log_error_verbosity=3

log-error = /data/mysql/mysql3316/logs/mysql3316-error.log

log_output = FILE

#参数 log_output 指定了慢查询输出的格式,默认为 FILE

#log-queries-not-using-indexes

#log-slow-slave-statements

max_binlog_size = 1G

#max_relay_log_size = 1G

# replication

log-bin=/data/mysql/mysql3316/logs/mysql-bin

#server-id=1

#binlog_format= ROW

#gtid_mode = on

#enforce_gtid_consistency = 1

#log_slave_updates = 1

#master-info-repository=TABLE

#relay-log-info-repository=TABLE

# innodb storage engine parameters

innodb_buffer_pool_size=500M

innodb_data_file_path=ibdata1:100M:autoextend:max:2G #redo

#innodb_data_file_path=ibdata1:100M:autoextend:max:5G #redo

#innodb_data_file_path=ibdata1:100M:autoextend:max:5G #redo

innodb_temp_data_file_path = ibtemp1:100M:autoextend:max:1G

#innodb_temp_data_file_path = ibtemp1:100M:autoextend:max:10G

#innodb_file_io_threads=4

#默认的是 4

innodb_log_buffer_size=16M

innodb_log_file_size=256M #undo

innodb_log_files_in_group=2

innodb_lock_wait_timeout=50

innodb_file_per_table=1

#独立表空间

ldp

重新授权

[root@mysql154 ~]# chown -R mysql. /usr/local/mysql/ /data/mysql/

初始化

建立启动 MySQL 数据库自身所需要的元数据信息(建库建表)。

cd /usr/local/mysql/

./bin/mysqld \

--defaults-file=/data/mysql/mysql3316/conf/my3316.cnf \

--datadir=/data/mysql/mysql3316/data --user=mysql \

--initialize-insecure --console ; echo $?

初始化完成之后,就可以看/data文件夹下面的文件

[root@mysql154 mysql]# tree /data

/data

└── mysql

    └── mysql3316

        ├── conf

        │   └── my3316.cnf

        ├── data

        │   ├── auto.cnf

        │   ├── ca-key.pem

        │   ├── ca.pem

        │   ├── client-cert.pem

        │   ├── client-key.pem

        │   ├── #ib_16384_0.dblwr

        │   ├── #ib_16384_1.dblwr

        │   │   ├── table_lock_waits_111.sdi

        │   │   ├── threads_112.sdi

        │   │   ├── tls_channel_stat_192.sdi

        │   │   ├── user_defined_fun_190.sdi

        │   │   ├── users_146.sdi

        │   │   ├── user_variables_b_178.sdi

        │   │   ├── variables_by_thr_185.sdi

        │   │   └── variables_info_188.sdi

        │   ├── private_key.pem

        │   ├── public_key.pem

        │   ├── server-cert.pem

        │   ├── server-key.pem

        │   ├── sys

        │   │   └── sys_config.ibd

        │   ├── undo_001

        │   └── undo_002

        ├── logs

        │   ├── my3316-slow.log

        │   ├── mysql3316-error.log

        │   ├── mysql-bin.000001

        │   └── mysql-bin.index

        ├── run

        └── tmp

显示已将成功

也可以看错误日志

启动 MySQL3316 实例

cd /usr/local/mysql/

进入到目录里面启动

./bin/mysqld_safe --defaults-file=/data/mysql/mysql3316/conf/my3316.cnf &

查看mysql3316实例的进程和端口

[root@mysql154 mysql]# ss -tulanp |grep mysqld

tcp   LISTEN 0      70                 *:33060             *:*     users:(("mysqld",pid=2069,fd=30))                    

tcp   LISTEN 0      103                *:3316              *:*     users:(("mysqld",pid=2069,fd=33)) 

连接 MySQL 服务器端

将 mysql 客户端命令做软连接到/usr/bin 目录,叫做 mysql

[root@hanyw-sre-devops ~]# ln -sv /usr/local/mysql/bin/mysql /usr/bin/

"/usr/bin/mysql" -> "/usr/local/mysql/bin/mysql"

查看软链接是否成功

[root@mysql154 mysql]# ls -l /usr/bin/mysql

lrwxrwxrwx. 1 root root 26  1月  3 14:39 /usr/bin/mysql -> /usr/local/mysql/bin/mysql

>箭头指向的是 mysql 命令的源文件

通过 socket 连接到 MySQL 服务器端。

[root@hanyw-sre-devops ~]# mysql -S /data/mysql/mysql3316/run/mysql3316.sock

出现的问题

[root@mysql154 mysql]# mysql -S /data/mysql/mysql3316/run/mysql3316.sock

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决:

安装ncurses-devel

yum -y install ncurses-devel

查找

[root@mysql154 mysql]# find / -name 'libncurses*'

/usr/lib64/libncurses.so.6

/usr/lib64/libncurses.so.6.2

/usr/lib64/libncursesw.so.6

/usr/lib64/libncursesw.so.6.2

/usr/lib64/libncurses++.so.6

/usr/lib64/libncurses++.so.6.2

/usr/lib64/libncurses++w.so.6

/usr/lib64/libncurses++w.so.6.2

/usr/lib64/libncurses++.so

/usr/lib64/libncurses++w.so

/usr/lib64/libncurses.so

/usr/lib64/libncursesw.so

/usr/lib64/libncurses.so.5

查找

[root@mysql154 mysql]# ll /usr/lib64/libncurses.so.6.2

-rwxr-xr-x. 1 root root 183184  8月 21 22:07 /usr/lib64/libncurses.so.6.2

创建软链接

ln -sv /usr/lib64/libncurses.so.6.2 /usr/lib64/libncurses.so.5

[root@mysql154 lib64]# find / -name 'libtinfo*'

/usr/lib64/libtinfo.so.6

/usr/lib64/libtinfo.so.6.2

/usr/lib64/libtinfo.so

/usr/lib64/libtinfo.so.5

创建软链接

ln -sv /usr/lib64/libtinfo.so.6.2 /usr/lib64/libtinfo.so.5

设置变量方便管理

vim /etc/profile

启动

alias my3317start='cd /usr/local/mysql && ./bin/mysqld_safe --defaults-file=/data/mysql/mysql3317/conf/my3317.cnf &'

关闭

alias my3317stop='cd /usr/local/mysql && ./bin/mysqladmin -S /data/mysql/mysql3317/run/mysql3317.sock shutdown'

source /etc/profile

再次进入

[root@mysql154 ~]# mysql -S /data/mysql/mysql3316/run/mysql3316.sock

此时可以进入

查看基本信息

\s

查看用户的信息

select user,host,authentication_string from mysql.user;

两台mysql主机配置完成之后配置mysql主从

配置mysql主从(范例)

mysql主机ip地址为192.168.8.149,192.168.8.164

配置之前首先确认数据库为初始化状态,数据库有数据的话需要将数据库内容全部,备份,之后清空。

149主机为主 164为从

修改149(Mastermysql配置文件

更改配置文件,首先检查你的主服务器上的mysql主配置文件中是否已经在[mysqld]模块下配置了log-bin和server-id,如果没有配置,首先关闭mysql服务器,然后修改配置,接着重启服务器。注意一个架构里面mysql数据库的的server-id值设置为唯一。如果配置文件和本人的配置文件一样,则直接到51行和50行进行修改。

例子:

创建用户,每一个从服务器都需要用到一个账户名和密码来连接主服务器,可以为每一个从服务器都创建一个账户,也可以让全部服务器使用同一个账户。

在主mysql服务器

创建repl用户,密码为Ron_master_1,192.168.8网段都可登录

CREATE USER 'repl'@'192.168.8.%' IDENTIFIED WITH mysql_native_password BY 'Ron_master_1';

REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。赋予repl用户所有权限,并且该网段的所有ip都可登录

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.8.%';

刷新配置

FLUSH PRIVILEGES;

获取149当前binary log文件名和位置,(position)File和Position的值,之后要用。

SHOW MASTER STATUS;

修改164(backupmysql配置文件

更改配置文件,首先检查你的主服务器上的mysql的主配置文件中是否已经在[mysqld]模块下配置了log-bin和server-id,在这里本人配置了log-bin,从服务器不需要配置log-bin也可以实现效果。主msyql服务器和从mysql服务器的server-id值必须不同。

注意:如果配置的时候开启了mysql,配置完成之后重启mysql服务器

之后重新登录,设置以下的配置文件

配置说明:

master_host : 主库的IP地址

master_user : 访问主库进行主从复制的用户名(上面在主库创建的)

master_password : 访问主库进行主从复制的用户名对应的密码

master_log_file : 从哪个日志文件开始同步(上述查询master状态中展示的有)

master_log_pos : 从指定日志文件的哪个位置开始同步(上述查询master状态中展示的有)

master_port=   端口

164主机配置如下

change master to

master_host='192.168.8.149',

master_user='repl',

master_password='Ron_master_1',

master_port=3316,

master_log_file='mysql-bin.000005',

master_log_pos=680;

在slave上查看主从同步状态

show slave status\G;

\G : 在MySQL的sql语句后加上\G,表示将查询结果进行按列打印,可以使每个字段打印到单独的行。即将查到的结构旋转90度变成纵向;

显示两个yes表示没有问题

开启主从同步

start slave;

结束同步

stop slave;

重启同步

reset slave;

刷新

flush privileges;

之后可以测试在主服务器上面创建库创建表,从mysql主机能不能同步过来。

自此mysql主从配置完成

在主mysql上面创建库wordpress1

create database wordpress1;

创建wp1用户密码为Aa&%(&123456   此为主web服务器登录所用的用户

create user 'wp1'@'%' identified by 'Aa&%(&123456';

创建wp1这个用户对 wordpress表的权限

grant all privileges on wordpress1.* to 'wp1'@'%';

刷新权限

flush privileges;

在主mysql上面创建库wordpress2

create database wordpress2;

创建wp2用户密码为Aa&%(&123456   此为从web服务器登录所用的用户

create user 'wp2'@'%' identified by 'Aa&%(&123456';

创建wp2这个用户对 wordpress2表的权限

grant all privileges on wordpress2.* to 'wp2'@'%';

刷新权限

flush privileges;

使用wp1,wp2用户查看是否可以登录

mysql  -hip地址  -u用户  -p'密码' -P端口

进入之后查看库

show databases;

进入库

use 库名称;

测试是否能够创建表,并写入数据

进入库

use wordpress;

创建表

CREATE TABLE school (

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(255) NOT NULL,

address VARCHAR(255) NOT NULL

);

查看字段信息

desc school;

插入两条数据

INSERT INTO school (name, address) VALUES ('清华大学', '北京市海淀区清华东路 10 ');

INSERT INTO school (name, address) VALUES ('北京大学', '北京市海淀区中关村大街 27 ');

查看当前数据库的的school表的信息

select * from school;

配置wordpress

下载

wget -c https://wordpress.org/latest.zip

下载解压软件

yum -y install unzip

解压

unzip  latest.zip

这里注意,因为作者需要将该客户端访问的请求目录挂载到nfs服务器上,但是要挂载空目录,所以只能先挂载之后才能将wordpress解压后的文件复制过来,否则将会报错。

yum -y install nfs-utils

首先查看nfs主机的共享目录

showmount -e   nfs主机的共享目录ip地址  

确定目录下面里面没有文件之后进行挂载,并且注意,需要主web服务器挂载到nfs服务器上的目录和从web服务器不能相同。

挂载(示范)

主从服务器都需挂载

mount -t nfs 192.168.8.30:/data/rsync/nfs-server/web/web151  /data/nginx/www.y001.com/html

mount -t nfs 192.168.8.35:/data/rsync/nfs-server/web/web60   /usr/local/nginx/html 

开机自动挂载

vim /etc/fstab

在最后一行加入

192.168.1.64:/share/dir1      /mnt/test1     nfs       defaults     0 0

nfs的vip    共享的目录    本机的目录    挂载的方式

挂载完成之后再进行复制

将解压后的目录里面的文件,全部放到访问目录中

cp -av /root/wordpress/*  /usr/local/nginx/html/

移动到nginx的访问目录中

cd /usr/local/nginx/html/

将wp-config-sample.php 拷贝到当前,并改名为wp-config.php

cp -av  wp-config-sample.php  wp-config.php

修改wordpress的配置文件

主从web服务器都要配置主mysql数据库的信息

vim wp-config.php

重启

systemctl  restart  php-fpm

将wordpress解压后的所有文件全部变成nginx权限因为运行php的用户为nginx

chown -R nginx.  后面添加路径。

chown -R nginx.  /usr/local/nginx/html/

修改nginx配置文件

备份

cp -av /usr/local/nginx/conf/nginx.conf /opt

[root@lnmp-152 ~]# grep -Ev '^$|#' /usr/local/nginx/conf/nginx.conf

user  nginx;

#修改为运行php wordpress 和nginx的用户

worker_processes  1;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;

        server_name  localhost;

        location / {

            root   html;

            index index.php index.html index.htm;

#添加 index.php

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

        location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

    }

}

检测配置语法

/usr/local/nginx/sbin/nginx  -t

重启

/usr/local/nginx/sbin/nginx  -s reload

之后可以在浏览器上访问主机的ip地址和域名,测试是否可以访问成功

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值