部署分布式LNMP系统

devtools/2024/11/14 13:22:34/

一、基础环境配置

主机名IP地址服务系统
php192.168.235.140php-8.1.11CentOS 7
nginx192.168.235.141nginx-1.20.2CentOS 7
mysql one192.168.235.142mysql-5.7.38CentOS 7
mysql two192.168.235.143mysql-5.7.38CentOS 7

相关服务目录说明

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

使用vm,先对服务器快照

二、安装前配置项

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、安装前的工作

systemctl stop firewalld
systemctl disable firewalld
setenforce 0

2.1.2、nginx安装两种方式

2.1.2.1、yum安装
yum install -y epel-release   (下载epel源)
yum install -y nginx
2.1.2.2、编译安装 Nginx 服务
1、安装依赖包
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、创建日志存放目录
mkdir -p /var/log/nginx
chown -R nginx.nginx /var/log/nginx
4、下载nginx
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、编译安装
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
2cd nginx-1.12.0/./configure \
--prefix=/usr/local/nginx \
--user=nginx \--group=nginx \
--with-http_stub_status_module
make && make install
6、优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
7、添加 Nginx 系统服务
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.targetchmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
systemctl  daemon-reload

2.2、nginx安装后配置

//配置环境变量

[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

<?php phpinfo(); ?>

修改nginx服务的配置

[root@nginx ~]# vi /usr/local/nginx/conf/nginx.conf
server大括号内,修改或添加下列配置信息。

除下面提及的需要添加或修改的配置信息外,其他配置保持默认值即可。

  • 添加或修改location /配置信息。
location / {index index.php index.html index.htm;
}
  • 添加或修改location ~ .php$配置信息。
#添加下列信息,配置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

systemctl restart nginx

四、msyql部署

3.1MySQL的安装

3.1.1MySQL两种安装方式

1. 二进制格式mysql安装
1、下载二进制格式的mysql软件包
[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、创建用户和组
groupadd -r mysql
useradd -M -s /sbin/nologin -g mysql mysql
3、解压软件至/usr/local/
 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的属主属组
[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、添加环境变量
[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、初始化数据库 (得到初始密码)
[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)<F2%V

11、生成配置文件
[root@yxt ~]# vim /etc/my.cnf 
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
sql-mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
12、配置服务启动脚本
[root@yxt support-files]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@yxt ~]# vim /etc/init.d/mysqld     //查找安装路径和数据存放路径并进行修改
basedir=/usr/local/mysql       //安装路径
datadir=/opt/data              /数据存放路劲
13、修改selinux为disabled (/etc/selinux/conf)
14、启动mysql
 /etc/init.d/mysqld start
Starting MySQL.Logging to '/opt/data/yxt.err'.SUCCESS! 
  • Starting MySQL. ERROR! The server quit without updating PID file (/opt/data/mysql.pid).
  • 解决办法: [[常见问题#2.Starting MySQL. ERROR! The server quit without updating PID file (/opt/data/mysql.pid).]]
[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

修改为以下内容

[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

[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             *:*      
  1. mysql配置文件
    mysql的配置文件为**/etc/my.cnf**
    配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效

/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf

  • mysql常用配置文件参数:
参数	说明
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 服务
--------编译安装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-devel3.配置软件模块
tar zxvf mysql-boost-5.7.44.tar.gzcd /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 install5.创建mysql用户
useradd -M -s /sbin/nologin  mysql6.修改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返回NULLPIPES_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 = 1sql_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_QUOTES7.更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf8.设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
source /etc/profile9.初始化数据库
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/data10.添加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

[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安装依赖包

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

wget https://www.php.net/distributions/php-8.1.11.tar.gz

4.1.3解压

tar -zxvf php-8.1.11.tar.gz -C /usr/src/

4.1.4编译安装php

[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、配置环境变量

[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

创建网站目录
[root@php ~]# mkdir -p /usr/local/nginx/html
[root@php ~]# cat > /usr/local/nginx/html/index.php << EOF<?phpphpinfo();?>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节点

预先安装工具

yum install unzip -y

压缩包上传到/root目录

[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节点

预先安装工具

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

将解压后的文件复制到网页根目录

[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节点的网站根目录下

scp /www/wp-config.php root@192.168.100.60:/www/

php节点查看验证一下,可以看到/www目录下面有了这个文件
[root@php ~]# ls /www | grep wp-conf
wp-config.php

创建WordPress数据库
[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 ServerCopyright (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

http://www.ppmy.cn/devtools/6417.html

相关文章

Flutter 的 showDialog 和 showCupertinoDialog 有什么区别?

我将我的 App 里用的 Flutter 升级到了 3.19&#xff0c;没想到&#xff0c;以前我用 showDialog 和 AlertDialog 组合创建的二次确认框&#xff0c;变得无敌难看了&#xff0c;大幅度增加了整个框的圆角和里面默认按钮的圆角。不得已&#xff0c;我必须修改一下&#xff0c;以…

Python 将PDF转为PDF/A和PDF/X,以及PDF/A转回PDF

PDF/A和PDF/X是两种有特定用途的PDF格式&#xff0c;具体查看以下&#xff1a; PDF/A是一种用于长期存档的PDF格式&#xff0c;它旨在确保文档的内容和格式在未来的访问中保持不变。如果您需要对文件进行长期存档&#xff0c;比如法律文件或档案记录&#xff0c;将其转换为PDF…

C# [Flags]属性

在C#中&#xff0c;当你看到[Flags]这个属性被用于枚举&#xff08;enum&#xff09;&#xff0c;它意味着这个枚举设计用来支持位运算&#xff0c;以便可以组合多个枚举值。这通常用于表示可以独立打开或关闭的多个选项或标志。 例如&#xff0c;考虑一个枚举&#xff0c;它代…

Ubuntu 微调训练ChatGLM3大语言模型

Ubuntu 微调训练ChatGLM3大语言模型 LLaMA Factory 的 LoRA 微调提供了 3.7 倍的加速比&#xff0c;同时在广告文案生成任务上取得了更高的 Rouge 分数。结合 4 比特量化技术&#xff0c;LLaMA Factory 的 QLoRA 微调进一步降低了 GPU 显存消耗。 https://github.com/hiyouga…

2233: 【数学】因子游戏

题目描述 桐桐把一个自然数N的正因子个数记为F(N)&#xff0c;例如18的所有正因子为1、2、3、6、9、18&#xff0c;所以F(18)6。现在给出K&#xff0c;桐桐想求出所有满足F(N)K的N中最小的数&#xff0c;你能帮助她吗&#xff1f; 输入 第1行为K&#xff0c;其中0<K<8…

9 个非常流行的Python可视化工具及示例

9 个非常流行的Python可视化工具及应用 1. Matplotlib Matplotlib是一个强大的绘图工具.支持生成各种类型的图表. #示例:绘制简单折线图import matplotlib.pyplot as pltx [1, 2, 3, 4, 5] y [10, 15, 13, 18, 16]plt.plot(x, y) plt.xlabel(X轴) plt.ylabel(Y轴) plt.titl…

李沐45_SSD实现——自学笔记

主体思路&#xff1a; 1.生成一堆锚框 2.根据真实标签为每个锚框打标(类别、偏移、mask) 3.模型为每个锚框做一个预测(类别、偏移) 4.计算上述二者的差异损失&#xff0c;以更新模型weights 先读取一张图像。 它的高度和宽度分别为561和728像素。 %matplotlib inline import …

初识微服务:重塑软件开发的未来

引言 随着信息技术的飞速发展&#xff0c;软件系统的复杂性和规模不断攀升&#xff0c;传统的单体应用架构已经难以满足现代业务的灵活性和可扩展性需求。在这样的背景下&#xff0c;微服务架构应运而生&#xff0c;成为当前软件开发领域的一大热门话题。本文将深入探讨微服务架…