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 官方下载页面
参考文档
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
具体步骤
- 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
- 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(Master)mysql配置文件
更改配置文件,首先检查你的主服务器上的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(backup)mysql配置文件
更改配置文件,首先检查你的主服务器上的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地址和域名,测试是否可以访问成功