day041-web集群架構搭建

文章目錄

  • 0. 老男孩思想-高薪四板斧
  • 1. web集群架構圖
  • 2. 搭建異地備份服務
    • 2.1 服務端-阿里云服務器
      • 2.1.1 查看rsync軟件包
      • 2.1.2 添加rsync配置文件
      • 2.1.3 添加虛擬用戶
      • 2.1.4 創建校驗用戶密碼文件
      • 2.1.5 創建備份目錄
      • 2.1.6 啟動服務
      • 2.1.7 開放安全組端口
      • 2.1.8 發送檢查郵件
    • 2.2 客戶端
      • 2.2.1 檢查與服務端的網絡連通性
      • 2.2.2 創建rsync用戶的密碼文件
      • 2.2.3 測試
      • 2.2.4 編寫定時備份腳本
      • 2.2.5 設置定時任務
  • 3. 搭建實時備份服務
    • 3.1 backup服務器
      • 3.1.1 編輯rsync配置文件
      • 3.1.2 創建虛擬用戶rsync
      • 3.1.3 創建校驗用戶密碼文件
      • 3.1.4 修改備份目錄所屬用戶/組
      • 3.1.5 lsyncd測試
    • 3.2 nfs服務器
      • 3.2.1 添加rsync用戶密碼文件
      • 3.2.2 rsync測試
      • 3.2.3 檢查lsyncd軟件包
      • 3.2.4 修改lsyncd配置文件
      • 3.2.5 創建備份目錄
      • 3.2.6 設置lsyncd服務自啟動
  • 4. 搭建nfs服務
    • 4.1 服務端
      • 4.1.1 查看nfs服務的軟件包
      • 4.1.2 啟動rpc中介服務
      • 4.1.3 創建虛擬用戶:www,修改共享目錄所屬用戶/組
      • 4.1.4 修改nfs配置文件,添加掛載路徑
      • 4.1.5 啟動nfs服務
    • 4.2 客戶端
      • 4.2.1 查看是否有nfs
      • 4.2.2 掛載測試
  • 5. 搭建mariadb數據庫
    • 5.1 安裝mariadb
    • 5.2 數據庫配置
    • 5.3 遠程登錄測試
  • 6. 搭建nginx服務
    • 6.1 配置nginx官方yum源
    • 6.2 下載并啟動nginx
    • 6.3 修改nginx的虛擬用戶并創建該虛擬用戶
    • 6.4 添加站點子配置文件
    • 6.5 創建站點根目錄并修改所屬用戶/組
    • 6.6 在站點跟目錄添加php文件
    • 6.7 部署WordPress代碼
      • 6.7.1 下載壓縮包并解壓
      • 6.7.2 移動代碼至站點目錄,重啟nginx
      • 6.7.3 配置本地hosts解析
      • 6.7.4 本地瀏覽器訪問
    • 6.8 配置數據庫信息
    • 6.9 掛載nfs共享目錄
    • 6.10 重啟nginx
  • 7. 搭建php服務
    • 7.1 下載php
    • 7.2 修改php配置文件
    • 7.3 檢查語法并重啟
  • 8. 測試
  • 9. 踩坑記錄
    • 1. lsyncd.service: Start request repeated too quickly.
    • 2. 云服務器Ubuntu,不能使用中文

0. 老男孩思想-高薪四板斧

  1. 堅持第一個來,最后一個走
  2. 以領導的崗位職責要求自己
    1. 積極主動、勇于承擔
    2. 為領導、其他同事干活
  3. 把公司當做自己的去工作
    1. 不要頻繁的跳槽
    2. 當公司有困難時,要主動承擔責任,為領導、公司解難
    3. 對公司要有一定的忠心
  4. 把前三條堅持做5-10年

薪資的高低和對公司的價值成正比

1. web集群架構圖

在這里插入圖片描述

2. 搭建異地備份服務

  • 服務:rsync
  • 服務端:阿里云Ubuntu
  • 客戶端:backup

2.1 服務端-阿里云服務器

2.1.1 查看rsync軟件包

# Ubuntu默認安裝了rsync
[root@aliyun-ubuntu ~]# dpkg -l |grep rsync
ii  rsync                                  3.2.7-0ubuntu0.22.04.4                  amd64        fast, versatile, remote (and local) file-copying tool

2.1.2 添加rsync配置文件

  • 路徑:/etc/rsyncd.conf
[root@aliyun-ubuntu ~]# cat  /etc/rsyncd.conf 
#created by oldboy 15:01 2009-6-5
##rsyncd.conf start##
fake super = yes 
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = aliyun_rsync_backup
secrets file = /etc/rsync.password
#####################################
[backup]
comment = www by old0boy 14:18 2012-1-13
path = /nfs/backup/blog

2.1.3 添加虛擬用戶

[root@aliyun-ubuntu ~]# id rsync
id: ‘rsync’: no such user
[root@aliyun-ubuntu ~]# useradd -s /sbin/nologin -M rsync
[root@aliyun-ubuntu ~]# id rsync
uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)
[root@aliyun-ubuntu ~]# tail -1 /etc/passwd
rsync:x:1001:1001::/home/rsync:/sbin/nologin

2.1.4 創建校驗用戶密碼文件

[root@aliyun-ubuntu ~]# echo aliyun_rsync_backup:1 >/etc/rsync.password
[root@aliyun-ubuntu ~]# chmod 600 /etc/rsync.password
[root@aliyun-ubuntu ~]# ll /etc/rsync.password
-rw------- 1 root root 22 Jun 24 17:32 /etc/rsync.password

2.1.5 創建備份目錄

[root@aliyun-ubuntu ~]# mkdir -p /nfs/backup/blog
[root@aliyun-ubuntu ~]# ll /nfs/backup/blog -d
drwxr-xr-x 2 root root 4096 Jun 24 17:34 /nfs/backup/blog/
[root@aliyun-ubuntu ~]# chown -R rsync:rsync /nfs/backup/blog 
[root@aliyun-ubuntu ~]# ll /nfs/backup/blog -d
drwxr-xr-x 2 rsync rsync 4096 Jun 24 17:34 /nfs/backup/blog/

2.1.6 啟動服務

[root@aliyun-ubuntu ~]# systemctl enable --now rsync.service 
Synchronizing state of rsync.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rsync
Created symlink /etc/systemd/system/multi-user.target.wants/rsync.service → /lib/systemd/system/rsync.service.
[root@aliyun-ubuntu ~]# systemctl is-active rsync.service
active
[root@aliyun-ubuntu ~]# systemctl is-enabled rsync.service
enabled
[root@aliyun-ubuntu ~]# ps -ef |grep [r]sync
root      128116       1  0 17:36 ?        00:00:00 /usr/bin/rsync --daemon --no-detach
[root@aliyun-ubuntu ~]# ss -lntup |grep rsync
tcp   LISTEN 0      5                 0.0.0.0:873       0.0.0.0:*    users:(("rsync",pid=128116,fd=5))                                        
tcp   LISTEN 0      5                    [::]:873          [::]:*    users:(("rsync",pid=128116,fd=6))  

2.1.7 開放安全組端口

在這里插入圖片描述

2.1.8 發送檢查郵件

  • 配置郵件服務器
    • 下載郵件服務:apt install -y s-nail
    • 郵件服務的配置文件:/etc/s-nail.rc
set from=skx2554798585@163.com
set smtp=smtps://smtp.163.com:465
set smtp-auth-user=skx2554798585@163.com
set smtp-auth-password=CPVZ6355KsCtEUik
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/ 
  • 編寫發送郵件腳本
[root@aliyun-ubuntu /server/scripts]# cat check_rsync_remote_backup.sh 
#!/bin/bash
##############################################################
# File Name: check_rsync_remote_backup.sh
# Version: V1.0
# Author: SunKexu
# Organization: www.oldboyedu.com
# Description:check remote backup
##############################################################
export LANG=en_US.UTF-8# vars
# backup file
file=`mktemp`
# year
year=`date +%Y`
# month
month=`date +%m`
# date
date=`date +%F_%w`
# backup dir
backup="/nfs/backup/blog/"
# title
title="aliyun-backup_check-${date}"
# mail
mail="skx2554798585@qq.com"
# command
echo "Number of documents this month:" >${file}
ls -l "${backup}${year}/${month}" |awk 'NR>1' |wc -l >>${file}
echo "backup dir size:" >>${file}
du -sh ${backup} |cut -f1 >>${file}
# send mail
cat ${file} |s-nail -s "${title}" ${mail}
  • 設置定時任務
[root@aliyun-ubuntu /server/scripts]# crontab -e
crontab: installing new crontab
[root@aliyun-ubuntu /server/scripts]# crontab -l
# rsync remote backup check
0 8 * * * bash /server/scripts/rsync/check_rsync_remote_backup.sh >/dev/null 2>&1

2.2 客戶端

  • 查看本機公網ip
[root@backup ~]# curl ifconfig.io
123.117.19.236

2.2.1 檢查與服務端的網絡連通性

# 阿里云的公網ip
[root@backup ~]# grep aliyun /etc/hosts
8.140.211.162 aliyun
[root@backup ~]# ping aliyun -c1
PING aliyun (8.140.211.162) 56(84) bytes of data.
64 bytes from aliyun (8.140.211.162): icmp_seq=1 ttl=128 time=7.41 ms--- aliyun ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 7.409/7.409/7.409/0.000 ms

2.2.2 創建rsync用戶的密碼文件

[root@backup ~]# echo 1 >/etc/rsync-client.password
[root@backup ~]# ll /etc/rsync-client.password
-rw-r--r-- 1 root root 2  624 17:45 /etc/rsync-client.password
[root@backup ~]# chmod 600 /etc/rsync-client.password
[root@backup ~]# ll /etc/rsync-client.password
-rw------- 1 root root 2  624 17:45 /etc/rsync-client.password

2.2.3 測試

  • 備份路徑:/nfs/backup/blog
  • 創建備份目錄
[root@backup ~]# mkdir -p /nfs/backup/blog/
  • 測試

在這里插入圖片描述

2.2.4 編寫定時備份腳本

[root@backup /server/scripts]# cat rsync_remote_backup.sh 
#!/bin/bash
##############################################################
# File Name:rsync_remote_backup.sh
# Version:V1.0
# Author:SunKexu
# Organization:www.oldboyedu.com
# Desc:rsync 異地備份
##############################################################
export LANG=en_US.UTF-8# vars
username="aliyun_rsync_backup"
server_ip="aliyun"
bak_module="backup"
bak_dir="/nfs/backup/blog/"
client_password="/etc/rsync-client.password"
# command
# rsync同步備份
send_backup_files(){rsync -avz "${bak_dir}" "${username}"@"${server_ip}"::"${bak_module}" --password-file="${client_password}"[ $? -eq 0 ] && echo "rsync success!" || {echo "rsync failed"exit 1}
}
send_backup_files

2.2.5 設置定時任務

[root@backup /nfs/backup/blog]# crontab -e
crontab: installing new crontab
[root@backup /nfs/backup/blog]# crontab -l
#1. sync time by lidao996 at 20230101
*/3 * * * * /sbin/ntpdate ntp.aliyun.com  >/dev/null  2>&1
#2. 異地備份
0 1 * * * bash /server/scripts/rsync_remote_backup.sh >/dev/null 2>&1

3. 搭建實時備份服務

  • 服務:rsync服務、lsyncd服務
  • backup服務器:rsync服務端、lsyncd客戶端
  • nfs服務器:rsync客戶端、lsyncd服務端

3.1 backup服務器

3.1.1 編輯rsync配置文件

[root@backup ~]# cat /etc/rsyncd.conf
#created by oldboy 15:01 2009-6-5
##rsyncd.conf start##
fake super = yes 
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
#hosts allow = 10.0.0.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[backup]
comment = www by old0boy 14:18 2012-1-13
path = /nfs/backup/blog

3.1.2 創建虛擬用戶rsync

[root@backup ~]# id rsync
id: “rsync”:無此用戶
[root@backup ~]# useradd -s /sbin/nologin -M rsync
[root@backup ~]# id rsync
用戶id=1000(rsync) 組id=1000(rsync)=1000(rsync)

3.1.3 創建校驗用戶密碼文件

[root@backup ~]# echo "rsync_backup:1" >/etc/rsync.password 
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 15  624 19:49 /etc/rsync.password

3.1.4 修改備份目錄所屬用戶/組

[root@backup ~]# chown -R rsync:rsync /nfs/backup/blog/
[root@backup ~]# ll -d /nfs/backup/blog/
drwxr-xr-x 2 rsync rsync 4096  624 19:05 /nfs/backup/blog/

接下來backup作為lsyncd客戶端進行配置


3.1.5 lsyncd測試

在這里插入圖片描述

3.2 nfs服務器

3.2.1 添加rsync用戶密碼文件

[root@nfs01 ~]# echo 1 >/etc/rsync-client.password
[root@nfs01 ~]# chmod 600 /etc/rsync-client.password
[root@nfs01 ~]# ll /etc/rsync-client.password 
-rw------- 1 root root 2  624 19:53 /etc/rsync-client.password

3.2.2 rsync測試

在這里插入圖片描述


接下來nfs作為lsyncd服務端進行配置


3.2.3 檢查lsyncd軟件包

[root@nfs01 ~]# rpm -qa |grep lsyncd
lsyncd-2.2.3-2.ky10.x86_64
[root@nfs01 ~]# rpm -ql lsyncd
/etc/logrotate.d/lsyncd
/etc/lsyncd.conf
/etc/sysconfig/lsyncd
……

3.2.4 修改lsyncd配置文件

[root@nfs01 ~]# cat /etc/lsyncd.conf
--全局部分主要配置lsyncd服務,日志,pid文件.
settings {--※※※※※日志文件,主要查看日志文件.logfile    = "/var/log/lsyncd.log",--pid文件pidfile    = "/var/run/lsyncd.pid",--服務狀態文件statusFile = "/var/log/lsyncd.status",--改為非守護進程模式,默認.rsync命令,lsyncdnodaemon   = true,--控制最多用于傳輸數據的進程數量 rsync進程數(最大)--※※※※※根據cpu核心數來 一致或2倍maxProcesses = 2
}--配置rsync命令,rsync服務端與客戶端模式
--sync部分可以有多個.
sync {--指定rsync工作模式default.rsync,--※※※※※ 指定lsyncd監控目錄,源目錄 source    = "/nfs/backup/blog",--※※※※※ 指定目標 rsync服務端    用戶名@rsync ip地址::模塊名字target    = "rsync_backup@172.16.1.41::backup",--※※※※※ 每隔5秒同步一次.delay     = 5,--rsync命令的  --delete 選項  保存客戶端與服務端 內容一致.delete    = true,-- 配置rsync命令位置,rsync命令選項,rsync     = {-- 命令位置binary   = "/usr/bin/rsync",-- rsync命令的 -a選項archive  = true,-- rsync命令的  -z選項 壓縮compress = true,-- ※※※※※配置rsync--password-file密碼文件password_file = "/etc/rsync-client.password"}
}

3.2.5 創建備份目錄

[root@nfs01 ~]# mkdir -p /nfs/backup/blog
[root@nfs01 ~]# ll -d /nfs/backup/blog
drwxr-xr-x 2 root root 6  624 20:19 /nfs/backup/blog

3.2.6 設置lsyncd服務自啟動

[root@nfs01 ~]# systemctl enable --now lsyncd.service 
Created symlink /etc/systemd/system/multi-user.target.wants/lsyncd.service → /usr/lib/systemd/system/lsyncd.service.
[root@nfs01 ~]# systemctl is-active lsyncd.service 
active
[root@nfs01 ~]# systemctl is-enabled lsyncd.service 
enabled

4. 搭建nfs服務

  • 服務:nfs
  • 服務端:nfs服務器
  • 客戶端:web服務器

4.1 服務端

4.1.1 查看nfs服務的軟件包

[root@nfs01 ~]# rpm -qa |grep -E 'nfs-utils|rpcbind'
nfs-utils-2.5.1-5.p04.ky10.x86_64
rpcbind-1.2.5-2.p01.ky10.x86_64
rpcbind-help-1.2.5-2.p01.ky10.noarch
nfs-utils-help-2.5.1-5.p04.ky10.x86_64

4.1.2 啟動rpc中介服務

[root@nfs01 ~]# systemctl enable --now  rpcbind.service 
[root@nfs01 ~]# systemctl is-active rpcbind.service 
active
[root@nfs01 ~]# systemctl is-enabled rpcbind.service 
enabled
[root@nfs01 ~]# rpcinfo -pprogram vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper
……

4.1.3 創建虛擬用戶:www,修改共享目錄所屬用戶/組

[root@nfs01 ~]# id www
id: “www”:無此用戶
[root@nfs01 ~]# useradd -s /sbin/nologin -M -u 1999 www
[root@nfs01 ~]# id www
用戶id=1999(www) 組id=1999(www)=1999(www)
[root@nfs01 ~]# tail -1 /etc/passwd
www:x:1999:1999::/home/www:/sbin/nologin
[root@nfs01 ~]# chown -R www:www /nfs/backup/blog/
[root@nfs01 ~]# ll -d /nfs/backup/blog/
drwxr-xr-x 3 www www 87  624 20:25 /nfs/backup/blog/

4.1.4 修改nfs配置文件,添加掛載路徑

[root@nfs01 ~]# cat /etc/exports |grep '/nfs/backup/blog'
/nfs/backup/blog 172.16.1.0/24(rw,all_squash,anonuid=1999,anongid=1999)

4.1.5 啟動nfs服務

[root@nfs01 ~]# systemctl enable --now nfs
[root@nfs01 ~]# systemctl is-active nfs
active
[root@nfs01 ~]# systemctl is-enabled nfs
enabled
[root@nfs01 ~]# rpcinfo -p |grep nfs100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl
[root@nfs01 ~]# showmount -e |grep '/nfs/backup/blog'
/nfs/backup/blog 172.16.1.0/24

4.2 客戶端

4.2.1 查看是否有nfs

[root@web01 ~]# rpcinfo -p nfs01 |grep nfs100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl
[root@web01 ~]# showmount -e nfs01 |grep '/nfs/backup'
/nfs/backup/blog 172.16.1.0/24

4.2.2 掛載測試

[root@web01 ~]# mount -t nfs nfs01:/nfs/backup/blog /mnt/
[root@web01 ~]# df -hT /mnt/
文件系統               類型  容量  已用  可用 已用% 掛載點
nfs01:/nfs/backup/blog nfs4   77G  4.1G   73G    6% /mnt
[root@web01 ~]# ll -d /mnt/
drwxr-xr-x 3 www www 87  624 20:25 /mnt/
[root@web01 ~]# ll /mnt/
總用量 0
-rw-r--r-- 1 www www 0  624 20:23 孫克旭.com
-rw-r--r-- 1 www www 0  624 20:24 oldboy-lidao-孫克旭.com
drwxr-xr-x 2 www www 6  624 20:25 skx
-rw-r--r-- 1 www www 0  624 20:24 skx.com

5. 搭建mariadb數據庫

  • 服務器:db01

5.1 安裝mariadb

[root@web01 ~]# yum install -y mariadb-server
上次元數據過期檢查:1:15:23 前,執行于 2025年06月23日 星期一 18時21分42秒。
軟件包 mariadb-server-3:10.3.39-1.p01.ky10.x86_64 已安裝。
依賴關系解決。
無需任何處理。
完畢!
# 設置開機自啟動
[root@web01 ~]# systemctl enable --now mariadb-server
[root@web01 ~]# systemctl is-active mariadb.service 
active
[root@web01 ~]# systemctl is-enabled mariadb.service 
enabled
# 檢查
[root@db01 ~]# ps -ef |grep [m]ysql
mysql       1015       1  0 09:22 ?        00:00:17 /usr/libexec/mysqld
[root@db01 ~]# ss -lntup |grep mysql
tcp     LISTEN   0        80                     *:3306                *:*       users:(("mysqld",pid=1015,fd=33))  

5.2 數據庫配置

  • 安裝配置:mysql_secure_installation
  • 創建blog數據庫:create database blog;
  • 添加blog用戶,并設置權限,可以遠程登錄:grant all on blog.* to 'blog'@'172.16.1.%' identified by '1';

5.3 遠程登錄測試

  • 數據庫客戶端:web01
[root@web01 ~]# mysql -ublog -p1 -h db01
……
MariaDB [(none)]> select user();
+------------+
| user()     |
+------------+
| blog@web01 |
+------------+
1 row in set (0.001 sec)MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| blog               |
| information_schema |
+--------------------+
2 rows in set (0.001 sec)

6. 搭建nginx服務

  • 服務器:web01

6.1 配置nginx官方yum源

[root@web01 ~]# cat /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

6.2 下載并啟動nginx

[root@web01 /etc/yum.repos.d]# yum install -y nginx
上次元數據過期檢查:0:03:22 前,執行于 2025年06月22日 星期日 11時49分44秒。
軟件包 nginx-1:1.26.1-2.el7.ngx.x86_64 已安裝。
依賴關系解決。
無需任何處理。
完畢!   
[root@web01 /etc/yum.repos.d]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@web01 /etc/yum.repos.d]# systemctl status nginx
……

6.3 修改nginx的虛擬用戶并創建該虛擬用戶

[root@web01 /etc/nginx]# grep -nE '^user ' nginx.conf 
3:user  www;
[root@web01 /app/code/blog]# useradd -s /sbin/nologin -M www
[root@web01 /app/code/blog]# id www
用戶id=1999(www) 組id=1999(www)=1999(www)

6.4 添加站點子配置文件

[root@web01 /etc/nginx/conf.d]# cat blog.oldboy.cn.conf
server {listen 80;server_name blog.oldboy.cn;root /app/code/blog;error_log /var/log/nginx/blog.oldboy.cn-error.log notice;access_log /var/log/nginx/blog.oldboy.cn-access.log main;location / {index index.php;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}

6.5 創建站點根目錄并修改所屬用戶/組

[root@web01 /app/code/blog]# mkdir -p /app/code/blog/
[root@web01 /app/code/blog]# chown -R www:www /app/code/blog/

6.6 在站點跟目錄添加php文件

[root@web01 /app/code/blog]# cat chk_db.php
<?php
//數據庫地址
$db_host='db01'
$db_user='blog'
$db_pass='1'
//數據庫名字
$db_name='blog'$link_id=mysqli_connect($db_host,$db_user,$db_pass,$db_name);
if($link_id){echo "mysql successflu by oldboy lidao996!\n";
}else{echo "connection failed!\n"
}
?>

6.7 部署WordPress代碼

6.7.1 下載壓縮包并解壓

[root@web01 ~]# wget https://cn.wordpress.org/latest-zh_CN.zip
[root@web01 ~]# unzip latest-zh_CN.zip 

6.7.2 移動代碼至站點目錄,重啟nginx

[root@web01 ~]# mv wordpress/* /app/code/blog/
[root@web01 ~]# chown -R www:www /app/code/blog/
[root@web01 /app/code/blog]# systemctl reload nginx.service 

6.7.3 配置本地hosts解析

在這里插入圖片描述

6.7.4 本地瀏覽器訪問

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

  • 在文章中上傳一張圖片

在這里插入圖片描述

6.8 配置數據庫信息

  • 查看下數據庫信息是否正確
[root@web01 /app/code/blog]# grep 'DB' wp-config.php
define( 'DB_NAME', 'blog' );
define( 'DB_USER', 'blog' );
define( 'DB_PASSWORD', '1' );
define( 'DB_HOST', 'db01' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

6.9 掛載nfs共享目錄

[root@web01 /app/code/blog/wp-content/uploads]# df -h
文件系統                容量  已用  可用 已用% 掛載點
devtmpfs                962M     0  962M    0% /dev
tmpfs                   979M     0  979M    0% /dev/shm
tmpfs                   979M  9.0M  970M    1% /run
tmpfs                   979M     0  979M    0% /sys/fs/cgroup
/dev/mapper/klas-root    77G  4.6G   73G    6% /
/dev/sda1               2.0G  178M  1.9G    9% /boot
tmpfs                   196M     0  196M    0% /run/user/0
nfs01:/nfs/backup/blog   77G  4.1G   73G    6% /mnt
[root@web01 /app/code/blog/wp-content/uploads]# umount /mnt 
[root@web01 /app/code/blog/wp-content/uploads]# mkdir /backup/up -p
[root@web01 /app/code/blog/wp-content/uploads]# mv ./* /backup/up
[root@web01 /app/code/blog/wp-content/uploads]# mount -t nfs nfs01:/nfs
/nfs/backup/blog  /nfs/blog         /nfsdata          /nfs/pics   
[root@web01 /app/code/blog/wp-content/uploads]# mount -t nfs nfs01:/nfs/backup/blog ./
[root@web01 /app/code/blog/wp-content/uploads]# df -hT /app/code/blog/wp-content/uploads/
文件系統               類型  容量  已用  可用 已用% 掛載點
nfs01:/nfs/backup/blog nfs4   77G  4.1G   73G    6% /app/code/blog/wp-content/uploads
[root@web01 /app/code/blog/wp-content/uploads]# mv /backup/up/* ./
  • 上面是臨時掛載,可以永久掛載
[root@web01 ~]# tail -n1 /etc/fstab
nfs01:/nfs/backup/blog /app/code/blog/wp-content/uploads	nfs	defaults        0 0

6.10 重啟nginx

[root@web01 ~]# systemctl reload nginx.service 

7. 搭建php服務

  • 服務器:web01

7.1 下載php

yum -y install php php-bcmath php-cli php-common php-devel php-embedded php-fpm php-gd php-intl php-mbstring php-mysqlnd php-opcache php-pdo   php-process php-xml php-json
# Ubuntu
apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
  • 開機自啟動
[root@web01 ~]# systemctl enable --now php-fpm

7.2 修改php配置文件

[root@web01 ~]# grep -En '^(user|group|listen) ' /etc/php-fpm.d/www.conf
24:user = www
26:group = www
38:listen = 127.0.0.1:9000

7.3 檢查語法并重啟

[root@web01 ~]# php-fpm -t
[24-Jun-2025 21:52:40] NOTICE: configuration file /etc/php-fpm.conf test is successful[root@web01 ~]# systemctl reload php-fpm.service 

8. 測試

在這里插入圖片描述

在這里插入圖片描述

  • 查看數據庫文本信息:SELECT post_title, post_content FROM wp_posts WHERE post_type = ‘post’;

在這里插入圖片描述

  • 測試總結
    • 太過完美🙂

在這里插入圖片描述

9. 踩坑記錄

1. lsyncd.service: Start request repeated too quickly.

在這里插入圖片描述


在這里插入圖片描述

  • lsyncd監聽的目錄沒創建(;???)

2. 云服務器Ubuntu,不能使用中文

在這里插入圖片描述

  • 修改字符集:localectl set-locale LANG=en_US.UTF-8

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/86771.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/86771.shtml
英文地址,請注明出處:http://en.pswp.cn/web/86771.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

day44-Django RestFramework(drf)下

1.5 Django RestFramework(下) drf 內置了很多便捷的功能,在接下來的課程中會給大家依次講解下面的內容: 快速上手請求的封裝版本管理認證權限限流序列化視圖條件搜索分頁路由解析器10. 分頁 在查看數據列表的API中,如果 數據量 比較大,肯定不能把所有的數據都展示給用…

機器學習基礎 線性回歸與 Softmax 回歸

機器學習基礎 線性回歸與 Softmax 回歸 文章目錄 機器學習基礎 線性回歸與 Softmax 回歸1. 最小二乘法1.1 數據集定義1.2 最小二乘的矩陣推導1.3 最小二乘的幾何解釋1.4 概率視角下的最小二乘估計 2. 正則化2.1 L1 范數與 L2 范數2.2 正則化的作用2.3 Lasso 回歸的求解2.3.1 L-…

6.27_JAVA_面試(被抽到了)

1.MYSQL支持的存儲引擎有哪些, 有什么區別 ? In-no-DB&#xff08;默認&#xff09;&#xff1a;支持事務安全&#xff08;數據庫運行時&#xff0c;能保證數據的一致性、完整性&#xff09;&#xff0c;支持表行鎖&#xff0c;支持物理和邏輯外鍵。占用磁盤空間大。 MEMORY&…

YOLOv13震撼發布:超圖增強引領目標檢測新紀元

YOLOV13最近發布了&#xff0c;速速來看。 論文標題&#xff1a;YOLOv13&#xff1a;融合超圖增強的自適應視覺感知的實時目標檢測 論文鏈接&#xff1a;https://arxiv.org/pdf/2506.17733 代碼鏈接&#xff1a;https://github.com/iMoonLab/yolov13 話不多說&#xff0c;直…

Docker錯誤問題解決方法

1. Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) https://zhuanlan.zhihu.com/p/24228872523 2. no configuration file provided: …

大模型在惡性心律失常預測及治療方案制定中的應用研究

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與方法 1.3 研究創新點 二、大模型技術概述 2.1 大模型基本原理 2.2 常見大模型類型及特點 2.3 大模型在醫療領域的應用現狀 三、心律失常的術前預測與準備 3.1 術前心律失常預測的重要性 3.2 大模型在術前預測中的應…

【視頻芯片選型】

一、邊緣 AI 芯片選型邏輯與未來趨勢 &#xff08;一&#xff09;嘉楠 K230、全志 V853、瑞芯微 RK3588 對比選型 核心場景適配 嘉楠 K230&#xff1a; 適合低功耗邊緣 AI場景&#xff0c;如智能家居中控&#xff08;支持語音 視覺雙模態交互&#xff09;、電池供電設備&#…

JavaScript---DOM篇

1. DOM 概念 文檔對象模型&#xff1a;將 HTML 文檔映射為樹形結構&#xff0c;JS 可通過 DOM 操作頁面。 2. 獲取元素 document.getElementById(id) document.querySelector(CSS選擇器) document.querySelectorAll() 獲取多個 3. 操作元素 屬性操作&#xff1a; element.getAt…

第三次課:實驗室安全用電

觸電的危害 觸電的方式 安全用電與預防措施 觸電急救 時間就是生命 安全自省 安全用電常識補充

NV064NV065美光固態閃存NV067NV076

美光NV系列固態閃存技術深度解析與應用指南 技術架構革新&#xff1a;垂直堆疊與浮柵技術的突破 美光NV系列固態閃存的核心競爭力在于其232層NAND閃存技術&#xff0c;通過垂直堆疊工藝將存儲單元層層疊加&#xff0c;如同在指甲蓋面積內構建超過200層“數據樓宇”&#xff0…

設計模式精講 Day 18:備忘錄模式(Memento Pattern)

【設計模式精講 Day 18】備忘錄模式&#xff08;Memento Pattern&#xff09; 文章內容 開篇 在“設計模式精講”系列的第18天&#xff0c;我們來探討備忘錄模式&#xff08;Memento Pattern&#xff09;。這是一種行為型設計模式&#xff0c;其核心思想是在不破壞封裝性的前…

SpringCloud系列(35)--使用HystrixDashboard進行服務監控

前言&#xff1a;在上一節中我們使用了Hystrix進行服務熔斷處理&#xff0c;至此關于Hystrix的使用到此為止&#xff0c;本節內容關注的是如何使用HystrixDashboard對調用進行監控。 1、HystrixDashboard概述 Hystrix提供的準實時的調用監控(HystrixDashboard)&#xff0c;Hys…

爬蟲簡單實操2——以貼吧為例爬取“某吧”前10頁的網頁代碼

需求是將貼吧的【某個吧】里面【n頁】的網頁代碼爬取下來&#xff0c;保存至本地 首先我們要思考這個貼吧爬蟲的框架&#xff0c;要有方法可以構造url列表&#xff08;就可以一次獲取多個url&#xff09;&#xff0c;能請求獲取相應&#xff0c;能把html保存到本地。 import …

webpack5 css-loader 配置項中的modules

在 Webpack 的 css-loader 中&#xff0c;modules 選項是一個核心配置&#xff0c;它直接關系到 CSS 的模塊化處理方式。下面從概念、原理、使用場景和實踐技巧四個方面詳細解析&#xff1a; 概念解析&#xff1a;CSS Modules 是什么&#xff1f; CSS Modules 是一種讓 CSS 類…

springboot+Vue駕校管理系統

概述 基于springbootVue開發的駕校管理系統。該系統采用主流技術棧開發&#xff0c;功能完善&#xff0c;既包含用戶端便捷的操作界面&#xff0c;又具備強大的后臺管理功能。 主要內容 一、用戶端功能模塊 ??核心功能導航??&#xff1a; 首頁展示駕校推薦信息及最新動態…

#華為鯤鵬#華為計算#鯤鵬開發者計劃2025#

#華為鯤鵬#華為計算#鯤鵬開發者計劃2025# <新版開發者計劃>的內容鏈接&#xff1a;鯤鵬開發者計劃2025-鯤鵬社區 通過學習畢昇編譯器整體介紹&#xff0c;以及安裝使用流程、新增特性、調優工具的使用及相關指導文件獲取&#xff0c;對畢異編譯器有了更深的認識。 我剛…

小程序學習筆記:聲明式導航的多種玩法

在小程序開發中&#xff0c;頁面導航是實現用戶流暢交互體驗的關鍵環節。今天&#xff0c;咱們就一起來深入學習小程序里通過聲明式導航實現頁面跳轉、切換 tab 頁、后退等功能的技巧&#xff0c;還會附上詳細代碼示例&#xff0c;讓大家輕松掌握&#xff01; 一、什么是頁面導…

Linux中《動/靜態庫原理》

目錄 目標文件ELF文件ELF從形成到加載輪廓ELF形成可執行readelf命令ELF可執行文件加載 理解連接與加載靜態鏈接ELF加載與進程地址空間虛擬地址/邏輯地址 重新理解進程虛擬地址空間 動態鏈接與動態庫加載進程如何看到動態庫進程間如何共享庫的動態鏈接動態鏈接到底是如何工作的&…

Android大圖加載優化:BitmapRegionDecoder深度解析與實戰

在移動端開發中&#xff0c;超大圖片加載一直是性能優化的難點。本文將深入剖析BitmapRegionDecoder原理&#xff0c;提供完整Kotlin實現方案&#xff0c;并分享性能調優技巧。 一、為什么需要大圖加載優化&#xff1f; 典型場景&#xff1a; 醫療影像&#xff1a;2000015000…

基于ApachePOI實現高德POI分類快速導入PostgreSQL數據庫實戰

目錄 前言 一、高德POI分類簡介 1、數據表格 2、分類結構 二、從Excel導入到Postgresql 1、Excel解析流程 2、Mybatis批量導入 3、數據入庫 三、總結 前言 在大數據與地理信息深度交融的當下&#xff0c;地理信息系統&#xff08;GIS&#xff09;的觸角已延伸至各個領域…