部署分布式LNMP系统

一、基础环境配置

主机名 IP地址 服务 系统
php 192.168.235.140 php-8.1.11 CentOS 7
nginx 192.168.235.141 nginx-1.20.2 CentOS 7
mysql one 192.168.235.142 mysql-5.7.38 CentOS 7
mysql two 192.168.235.143 mysql-5.7.38 CentOS 7

相关服务目录说明

nginx根目录:/usr/local/nginx/html/

使用vm,先对服务器快照

二、安装前配置项

bash 复制代码
1、 hostnamectl set-hostname #服务器名字
su
2、 systemctl stop firewalld
3、 systemctl disable firewalld
4、 setenforce 0
第4步可以修改为永久关闭:
vim /etc/selinux/config
SELINUX=enforcing修改为disabled  

三、nginx部署

2.1、nginx的安装

2.1.1、安装前的工作

bash 复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.1.2、nginx安装两种方式

2.1.2.1、yum安装
bash 复制代码
yum install -y epel-release   (下载epel源)
yum install -y nginx
2.1.2.2、编译安装 Nginx 服务
1、安装依赖包
bash 复制代码
yum -y install pcre-devel zlib-devel gcc gcc-c++ make wget
yum -y groups mark install 'Development Tools'
2、创建运行用户
复制代码
useradd -r -M -s /sbin/nologin nginx
3、创建日志存放目录
bash 复制代码
mkdir -p /var/log/nginx
chown -R nginx.nginx /var/log/nginx
4、下载nginx
bash 复制代码
cd /usr/src/
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar xf nginx-1.20.2.tar.gz 
cd nginx-1.20.2
5、编译安装
bash 复制代码
1、
 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
make -j $(grep 'processor' /proc/cpuinfo | wc -l) && make install
2、
 cd nginx-1.12.0/
 ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
 --group=nginx \
--with-http_stub_status_module
make && make install
6、优化路径
bash 复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
7、添加 Nginx 系统服务
bash 复制代码
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
 
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
systemctl  daemon-reload

2.2、nginx安装后配置

//配置环境变量

bash 复制代码
[root@master ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@master ~]# . /etc/profile.d/nginx.sh
[root@master ~]# nginx
[root@master ~]# ss -anlt
State    Recv-Q   Send-Q     Local Address:Port     Peer Address:Port  Process   
LISTEN   0        128              0.0.0.0:80            0.0.0.0:*               
LISTEN   0        128              0.0.0.0:22            0.0.0.0:*               
LISTEN   0        128                 [::]:22               [::]:*    

服务控制方式,使用nginx命令

-t //检查配置文件语法

-v //输出nginx的版本

-c //指定配置文件的路径

-s //发送服务控制信号,可选值有{stop|quit|reopen|reload}

测试web页面访问

在游览器输入http://IP地址,测试nginx是否可以访问

nginx部署完成,修改信息

创建存放网站名称,写入php网页信息

root@nginx \~\]# rm -rf /usr/local/nginx/html/\* \[root@nginx \~\]# vim /usr/local/nginx/html/index.php \ #### 修改nginx服务的配置 \[root@nginx \~\]# vi /usr/local/nginx/conf/nginx.conf 在`server`大括号内,修改或添加下列配置信息。 除下面提及的需要添加或修改的配置信息外,其他配置保持默认值即可。 * 添加或修改`location /`配置信息。 ```shell location / { index index.php index.html index.htm; } ``` * 添加或修改`location ~ .php$`配置信息。 ```shell #添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求。 location ~ .php$ { root /usr/local/nginx/html/; #将/usr/share/nginx/html替换为您的网站根目录,本文使用/usr/share/nginx/html作为网站根目录。 fastcgi_pass 127.0.0.1:9000; #php环境主机的IP。 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; #Nginx调用fastcgi接口处理PHP请求。 } ``` ### 2.3、重新启动nginx ```bash systemctl restart nginx ``` ## 四、msyql部署 ### 3.1MySQL的安装 #### 3.1.1MySQL两种安装方式 ##### 1. 二进制格式mysql安装 ###### 1、下载二进制格式的mysql软件包 ```bash [root@yxt ~]# cd /usr/src/ [root@yxt src]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz ``` ###### 2、创建用户和组 ```bash groupadd -r mysql useradd -M -s /sbin/nologin -g mysql mysql ``` ###### 3、解压软件至/usr/local/ ```bash tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ [root@yxt src]# ls /usr/local/ apr httpd-2.4.54.tar.gz apr-1.6.5 include apr-1.6.5.tar.gz lib apr-util lib64 apr-util-1.6.1 libexec apr-util-1.6.1.tar.gz mysql-5.7.38-linux-glibc2.12-x86_64 bin sbin etc share games src httpd-2.4.54 [root@yxt src]# cd /usr/local/ [root@yxt local]# ln -sv mysql-5.7.38-linux-glibc2.12-x86_64/ mysql 'mysql' -> 'mysql-5.7.38-linux-glibc2.12-x86_64/' [root@yxt local]# ls apr httpd-2.4.54.tar.gz apr-1.6.5 include apr-1.6.5.tar.gz lib apr-util lib64 apr-util-1.6.1 libexec apr-util-1.6.1.tar.gz mysql bin mysql-5.7.38-linux-glibc2.12-x86_64 etc sbin games share httpd-2.4.54 src ``` ###### 4、修改目录/usr/local/mysql的属主属组 ```bash [root@yxt local]# chown -R mysql:mysql /usr/local/mysql [root@yxt local]# ll /usr/local/mysql -d lrwxrwxrwx. 1 mysql mysql 36 Jul 27 12:40 /usr/local/mysql -> mysql-5.7.38-linux-glibc2.12-x86_64/ ``` ###### 5、添加环境变量 ```bash [root@yxt ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@yxt ~]# source /etc/profile.d/mysql.sh [root@yxt ~]# echo $PATH /usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/apache/bin/:/root/bin ``` ###### 6、头文件 \[root@yxt \~\]# ln -sv /usr/local/mysql/include/ /usr/include/mysql '/usr/include/mysql' -\> '/usr/local/mysql/include/' ###### 7、库文件 \[root@yxt \~\]# vim /etc/ld.so.conf.d/mysql.conf /usr/local/mysql/lib/ \[root@yxt \~\]# ldconfig ###### 8、man文档 \[root@yxt \~\]# vim /etc/man_db.conf //添加 MANDATORY_MANPATH /usr/local/mysql/man ###### 9、建立数据存放目录 \[root@yxt \~\]# mkdir /opt/data \[root@yxt \~\]# chown -R mysql:mysql /opt/data/ ###### 10、初始化数据库 (**得到初始密码**) ```bash [root@yxt ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/data/ 2022-07-27T07:37:05.550738Z 1 [Note] A temporary password is generated for root@localhost: ph3w7r,1))2L ``` Uz!iQo)\

bash 复制代码
[root@yxt ~]# ps -ef | grep mysql
root       53498       1  0 15:44 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/opt/data --pid-file=/opt/data/mysql.pid
mysql      53698   53498  1 15:44 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/opt/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=yxt.err --pid-file=/opt/data/mysql.pid --socket=/tmp/mysql.sock --port=3306
root       53728   53116  0 15:44 pts/0    00:00:00 grep --color=auto mysql
[root@yxt ~]# ss -anlt|grep 3306
LISTEN 0      80                 *:3306             *:*       
15、修改密码
16使用临时密码登录

root@yxt \~\]# yum install libncurses\* \[root@yxt \~\]# /usr/local/mysql/bin/mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \\g. Your MySQL connection id is 3 Server version: 5.7.38 Copyright © 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement. mysql\> set password = password('123456'); Query OK, 0 rows affected, 1 warning (0.01 sec) ###### 17、将mysql加入到systemctl服务控制 \[root@yxt \~\]# cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/mysqld.service \[root@yxt \~\]# vim /usr/lib/systemd/system/mysqld.service #### 修改为以下内容 ```bash [Unit] Description=mysql After=network.target [Service] Type=forking //后台运行模式 ExecStart=/usr/local/mysql/support-files/mysql.server start ExecStop=/usr/local/mysql/support-files/mysql.server stop ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target ``` #### 重新加载MySQL ```bash [root@yxt ~]# systemctl daemon-reload [root@yxt ~]# systemctl stop firewalld [root@yxt ~]# systemctl disable firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@yxt ~]# vim /etc/selinux/config SELINUX=disabled [root@yxt ~]# setenforce 0 [root@yxt ~]# systemctl start mysqld [root@yxt ~]# ss -anlt|grep 3306 LISTEN 0 80 *:3306 *:* ``` 2. mysql配置文件 mysql的配置文件为\*\*/etc/my.cnf\*\* 配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效 /etc/my.cnf --\> /etc/mysql/my.cnf --\> --default-extra-file=/PATH/TO/CONF_FILE --\> \~/.my.cnf * mysql常用配置文件参数: ```bash 参数 说明 port = 3306 设置监听端口 socket = /tmp/mysql.sock 指定套接字文件位置 basedir = /usr/local/mysql 指定MySQL的安装路径 datadir = /data/mysql 指定MySQL的数据存放路径 pid-file = /data/mysql/mysql.pid 指定进程ID文件存放路径 user = mysql 指定MySQL以什么用户的身份提供服务 skip-name-resolve 禁止MySQL对外部连接进行DNS解析 使用这一选项可以消除MySQL进行DNS解析的时间。 若开启该选项,则所有远程主机连接授权都要使用IP地址方式否则MySQL将无法正常处理连接请求 ``` ##### 2、编译安装mysqld 服务 ```bash --------编译安装mysqld 服务-------- 1.将安装mysql 所需软件包传到/opt目录下 mysql-boost-5.7.44.tar.gz #其中包含支持c++的运行库 2.安装环境依赖包 yum -y install \ gcc \ gcc-c++ \ ncurses \ #字符终端下图形互动功能的动态库 ncurses-devel \ #ncurses开发包 bison \ #语法分析器 cmake #mysql需要用cmake编译安装 ---------------------------------------------------------------------------------------------------------- yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel 3.配置软件模块 tar zxvf mysql-boost-5.7.44.tar.gz cd /opt cd mysql-5.7.44/ cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径 -DSYSCONFDIR=/etc \ #指定配置文件的存储路径 -DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定进程文件的存储路径 -DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码,如 utf8 -DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则 -DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集编码 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安装FEDERATED存储引擎 -DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径 -DWITH_BOOST=/usr/local/boost \ #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost -DWITH_SYSTEMD=1 #生成便于systemctl管理的文件,生成在/usr/local/mysql/usr/lib/的子目录中 存储引擎选项: MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。 静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1 可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema) ---------------------------------------------------------------------------------------------------------- cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DSYSCONFDIR=/etc \ -DSYSTEMD_PID_DIR=/usr/local/mysql \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DWITH_BOOST=boost \ -DWITH_SYSTEMD=1 注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧 4.编译及安装 make && make install 5.创建mysql用户 useradd -M -s /sbin/nologin mysql 6.修改mysql 配置文件 vim /etc/my.cnf #删除原配置项,再重新添加下面内容 [client] #客户端设置 port = 3306 socket = /usr/local/mysql/mysql.sock [mysql] #服务端设置 port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash #开启自动补全功能 [mysqld] #服务全局设置 user = mysql #设置管理用户 basedir=/usr/local/mysql #指定数据库的安装目录 datadir=/usr/local/mysql/data #指定数据库文件的存储路径 port = 3306 #指定端口 character-set-server=utf8 #设置服务器字符集编码格式为utf8 pid-file = /usr/local/mysql/mysqld.pid #指定pid 进程文件路径 socket=/usr/local/mysql/mysql.sock #指定数据库连接文件 bind-address = 0.0.0.0 #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开 skip-name-resolve #禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址 max_connections=4096 #设置mysql的最大连接数 default-storage-engine=INNODB #指定默认存储引擎是INNODB max_allowed_packet=32M#设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。 server-id = 1 #指定服务ID号##做后端SQL集群的时候,每个server都有自己的编号 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES ---------------------------------------------------------------------------------------------------------- sql_mode常用值如下: NO_ENGINE_SUBSTITUTION 如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常 STRICT_TRANS_TABLES 在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_AUTO_CREATE_USER 禁止GRANT创建密码为空的用户 NO_AUTO_VALUE_ON_ZERO mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错 NO_ZERO_IN_DATE 不允许日期和月份为零 NO_ZERO_DATE mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告 ERROR_FOR_DIVISION_BY_ZERO 在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULL PIPES_AS_CONCAT 将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似 ANSI_QUOTES 启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符 ---------------------------------------------------------------------------------------------------------- [client] port = 3306 socket=/usr/local/mysql/mysql.sock [mysql] port = 3306 socket = /usr/local/mysql/mysql.sock auto-rehash [mysqld] user = mysql basedir=/usr/local/mysql datadir=/usr/local/mysql/data port = 3306 character-set-server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket=/usr/local/mysql/mysql.sock bind-address = 0.0.0.0 skip-name-resolve max_connections=4096 default-storage-engine=INNODB max_allowed_packet=32M server-id = 1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES 7.更改mysql安装目录和配置文件的属主属组 chown -R mysql:mysql /usr/local/mysql/ chown mysql:mysql /etc/my.cnf 8.设置路径环境变量 echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile source /etc/profile 9.初始化数据库 cd /usr/local/mysql/bin/ ./mysqld \ --initialize-insecure \ #生成初始化密码为空 --user=mysql \ #指定管理用户 --basedir=/usr/local/mysql \ #指定数据库的安装目录 --datadir=/usr/local/mysql/data #指定数据库文件的存储路径 ---------------------------------------------------------------------------------------------------------- ./mysqld \ --initialize-insecure \ --user=mysql \ --basedir=/usr/local/mysql \ --datadir=/usr/local/mysql/data 10.添加mysqld系统服务 cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/ #用于systemctl服务管理 systemctl daemon-reload #刷新识别 systemctl start mysqld.service #开启服务 systemctl enable mysqld #开机自启动 netstat -anpt | grep 3306 #查看端口 11.修改mysql 的登录密码 mysqladmin -u root password "abc123" #给root账号设置密码为abc123,原始密码为空 12.授权远程登录 mysql -u root -p mysql -uroot -p密码 ##可以免交互登录 只能本地登录 grant all privileges on *.* to 'root'@'%' identified by 'abc123'; ##grant 就是授权 all privileges可以享受所有特权 on *.*作用于所有库所有表 ##'root'@'%'中表示%表示作用所有,身份认证即密码是abc123 ##表示授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限 ##数据库的命令学习 show databases; #查看当前已有的数据库 create database 库名; #创建新的库名 grant all on 库名.* to 'root'@'主机(网段,ip,localhost,%所有)' identified by 'root在mysql的密码' flush privileges; #刷新库的权限 quit; #退出 ``` #### 设置数据库密码,进入数据库,授权mysql ```bash [root@21bbe49c32fa mysql-5.6.29]# mysqladmin -uroot -p password Enter password: New password: Confirm new password: ##创建wordpress表 mysql> create database wordpress default charset utf8 COLLATE utf8_general_ci; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye ``` \[root@21bbe49c32fa mysql-5.6.29\]# exit exit ## 五、PHP部署 ### 4.1 PHP安装 #### 4.1.1安装依赖包 ```bash yum -y install gcc gcc-c++ vim make wget libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd wget ``` #### 4.1.2下载PHP ```bash wget https://www.php.net/distributions/php-8.1.11.tar.gz ``` #### 4.1.3解压 ```bash tar -zxvf php-8.1.11.tar.gz -C /usr/src/ ``` #### 4.1.4编译安装php ```bash [root@php ~]# yum -y install libsqlite3x-devel libzip-devel http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm [root@php ~]# cd /usr/src/php-8.1.11/ [root@php php-8.1.11]# ./configure --prefix=/usr/local/php8 --with-config-file-path=/etc --enable-fpm --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-openssl --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --enable-exif --enable-ftp --enable-gd --with-jpeg --with-zlib-dir --with-freetype --with-gettext --enable-json --enable-mbstring --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-readline --enable-shmop --enable-simplexml --enable-sockets --with-zip --enable-mysqlnd-compression-support --with-pear --enable-pcntl --enable-posix [root@php php-8.1.11]# make && make install ``` ### 4.2配置PHP #### 1、配置环境变量 ```bash [root@php ~]# echo 'export PATH=/usr/local/php8/bin/:$PATH' > /etc/profile.d/php8.sh [root@php ~]# source /etc/profile.d/php8.sh [root@php ~]# php -v PHP 8.1.11 (cli) (built: Oct 11 2022 04:03:30) (NTS) Copyright (c) The PHP Group Zend Engine v4.1.11, Copyright (c) Zend Technologies ``` #### 2、配置php-fpm ##### 1、进入的时php的解压目录 \[root@php \~\]# cd /usr/src/php-8.1.11/ \[root@php php-8.1.11\]# cp php.ini-production /etc/php.ini cp: overwrite '/etc/php.ini'? y \[root@php php-8.1.11\]# cd sapi/ \[root@php sapi\]# ls apache2handler cgi cli embed fpm fuzzer litespeed phpdbg \[root@php sapi\]# ls apache2handler cgi cli embed fpm fuzzer litespeed phpdbg \[root@php sapi\]# cd fpm/ \[root@php fpm\]# cp init.d.php-fpm /etc/init.d/php-fpm \[root@php fpm\]# chmod +x /etc/init.d/php-fpm \[root@php fpm\]# service php-fpm status php-fpm is stopped \[root@php fpm\]# cp /usr/local/php8/etc/php-fpm.conf.default /usr/local/php8/etc/php-fpm.conf \[root@php fpm\]# cp /usr/local/php8/etc/php-fpm.d/www.conf.default /usr/local/php8/etc/php-fpm.d/www.conf #### 3、启动php-fpm \[root@php fpm\]# service php-fpm start Starting php-fpm done \[root@php fpm\]# ss -anlt State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 127.0.0.1:9000 0.0.0.0:\* LISTEN 0 128 0.0.0.0:22 0.0.0.0:\* LISTEN 0 128 \[::\]:22 \[::\]😗 #### 连接nginx和php ##### 创建网站目录 ```bash [root@php ~]# mkdir -p /usr/local/nginx/html [root@php ~]# cat > /usr/local/nginx/html/index.php << EOF EOF [root@php ~]# vim /usr/local/php8/etc/php-fpm.d/www.conf //修改 listen = 192.168.160.139:9000 listen.allowed_clients = 192.168.160.132 [root@php ~]# service php-fpm restart ``` ## 六、部署wordpress ### nginx节点 #### 预先安装工具 ```bash yum install unzip -y ``` #### 压缩包上传到/root目录 ```bash [root@nginx ~]# ls anaconda-ks.cfg wordpress-4.7.3-zh_CN.zip ``` #### 解压压缩包 unzip wordpress-4.7.3-zh_CN.zip \[root@nginx \~\]# ls anaconda-ks.cfg wordpress wordpress-4.7.3-zh_CN.zip #### 将解压后的文件复制到网页根目录 \[root@nginx \~\]# mv wordpress/\* /usr/local/nginx/html ### php节点 #### 预先安装工具 ```bash yum install unzip -y ``` 压缩包上传到/root目录,并解压 \[root@php \~\]# unzip wordpress-4.7.3-zh_CN.zip \[root@php \~\]# ls anaconda-ks.cfg wordpress wordpress-4.7.3-zh_CN.zip #### 将解压后的文件复制到网页根目录 ```bash [root@php ~]# mv wordpress/* /www/ WordPress应用提供了wp-config-sample.php模板文件 将模板文件复制为wp-config.php并修改 [root@nginx ~]# cp /www/wp-config-sample.php /www/wp-config.php [root@nginx ~]# vi /www/wp-config.php // ** MySQL 设置 - 具体信息来自您正在使用的主机 ** // /** WordPress数据库的名称 */ define('DB_NAME', 'wordpress'); /** MySQL数据库用户名 */ define('DB_USER', 'root'); /** MySQL数据库密码 */ define('DB_PASSWORD', '000000'); /** MySQL主机 */ define('DB_HOST', '192.168.100.30'); /** 创建数据表时默认的文字编码 */ define('DB_CHARSET', 'utf8'); /** 数据库整理类型。如不确定请勿更改 */ define('DB_COLLATE', ''); 注意:/** MySQL主机 */下面一行配置的是主数据库mysql1的IP地址 按照上述文件修改配置文件,保存并退出 ``` 使用scp命令将配置文件传送至php节点的网站根目录下 ```bash scp /www/wp-config.php [email protected]:/www/ ``` php节点查看验证一下,可以看到/www目录下面有了这个文件 \[root@php \~\]# ls /www \| grep wp-conf wp-config.php ##### 创建WordPress数据库 ```bash [root@mysql1 ~]# mysql -uroot -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 6 Server version: 5.5.68-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database wordpress; Query OK, 1 row affected (0.02 sec) MariaDB [(none)]> exit Bye ```

相关推荐
数据智能老司机9 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机10 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
数据智能老司机11 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
IT成长日记11 小时前
【Kafka基础】Kafka工作原理解析
分布式·kafka
州周12 小时前
kafka副本同步时HW和LEO
分布式·kafka
爱的叹息14 小时前
主流数据库的存储引擎/存储机制的详细对比分析,涵盖关系型数据库、NoSQL数据库和分布式数据库
数据库·分布式·nosql
千层冷面15 小时前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby
ChinaRainbowSea15 小时前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
敖正炀15 小时前
基于RocketMQ的可靠消息最终一致性分布式事务解决方案
分布式
一條狗17 小时前
随笔 20250402 分布式 ID 生成器 Snowflake 里面的坑
分布式