【云运维】LNMP 架构部署与应用

LNMP 架构部署与应用

一、前言

LNMP 是一套基于 Linux 操作系统,整合 Nginx(Web 服务器)、MySQL(数据库服务器)、PHP(动态脚本语言)的开源技术架构,广泛应用于中小型 Web 应用部署。相比 LAMP 架构(Apache 作为 Web 服务器),LNMP 具有资源占用少、并发处理能力强、运行效率高等优势,尤其适合论坛、博客、电商等动态网站场景。

二、LNMP 架构核心组件说明

1. Nginx

  • 核心作用:处理静态资源请求、反向代理动态请求、负载均衡、邮件代理
  • 核心功能:静态资源缓存、URL 重写、SSL 终结、反向代理动态 PHP 请求至 PHP-FPM

2. MySQL

  • 核心作用:存储 Web 应用的结构化数据(用户信息、帖子内容等)
  • 优势特性:体积小、速度快、开源免费、支持多存储引擎(InnoDB 为主流)、SQL 标准兼容
  • 适用场景:中小型网站数据存储,支持高并发读写场景

3. PHP-FPM

  • 核心作用:作为 PHP 的 FastCGI 进程管理器,处理 Nginx 转发的动态 PHP 请求
  • 核心价值:解决 Nginx 无法直接解析 PHP 的问题,通过进程池管理提升 PHP 运行效率和稳定性

三、部署环境准备

环境项 具体配置
操作系统 CentOS 7
核心组件版本 Nginx 1.24.0、MySQL 5.7、PHP 7.1、Discuz! X3.4
前置操作 关闭防火墙(systemctl stop firewalld && systemctl disable firewalld)关闭 SELinux(setenforce 0,永久关闭需修改/etc/selinux/config
工具依赖 wget、unzip、gcc、gcc-c++(可通过yum -y install wget unzip gcc gcc-c++安装)

四、LNMP 架构部署步骤

(一)安装 Nginx 服务

1. 安装依赖包

Nginx 编译需依赖 pcre(正则解析)、zlib(数据压缩)开发库:

bash 复制代码
[root@ooo ~]# yum -y install pcre-devel zlib-devel
2. 创建专用运行用户

避免使用 root 用户运行 Nginx,提升安全性:

bash 复制代码
[root@ooo ~]# useradd -M -s /sbin/nologin nginx  # -M不创建家目录,-s禁止Shell登录
[root@ooo ~]# id nginx
uid=1001(nginx) gid=1001(nginx) 组=1001(nginx)
3. 编译安装 Nginx
  1. 上传安装包至/opt目录(推荐版本:nginx-1.24.0.tar.gz)
  1. 解压并编译安装:
bash 复制代码
[root@ooo ~]# cd /opt
[root@ooo opt]# rz -E    # 这是把软件包拖进来自动形成的,不是手敲得
rz waiting to receive.
[root@ooo opt]# tar xzvf nginx-1.24.0.tar.gz
[root@ooo opt]# cd nginx-1.24.0/

# 安装gcc及编译依赖(一次性安装所有必要工具)
[root@ooo nginx-1.24.0]# yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel

# 配置编译参数(指定安装路径、运行用户、启用状态统计模块)
[root@ooo nginx-1.24.0]# 
./configure \   # ./configure:Nginx源码编译的配置脚本,用于指定安装参数和启用模块
--prefix=/usr/local/nginx \  # 指定Nginx安装目录(核心路径,后续程序、配置、日志等均在此目录下)
--user=nginx \  # 指定Nginx运行时的用户(安全配置,避免用root用户运行)
--group=nginx \  # 指定Nginx运行时的用户组(与上面的用户对应,统一权限管理)
--with-http_stub_status_module  # 启用HTTP Stub Status模块(用于查看Nginx运行状态,如连接数、请求数等)

[root@ooo nginx-1.24.0]# make -j4 && make install  # 编译并安装
4. 路径优化(创建软链接)

让系统识别nginx命令,无需输入完整路径:

bash 复制代码
[root@ooo nginx-1.24.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@ooo nginx-1.24.0]# ls -l /usr/local/sbin/nginx
lrwxrwxrwx 1 root root 27 11月  07 15:17 /usr/local/sbin/nginx -> /usr/local/nginx/sbin/nginx
5. 配置文件检查

验证配置文件语法正确性:

bash 复制代码
[root@ooo nginx-1.24.0]# nginx -t  # 输出"test is successful"表示正常
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
6. 启动与控制 Nginx
  • 启动:nginx
  • 停止:killall -s QUIT nginxnginx -s stop
  • 重载配置:killall -s HUP nginxnginx -s reload
  • 查看状态:netstat -anpt | grep nginx(默认监听 80 端口)
bash 复制代码
[root@ooo nginx-1.24.0]# nginx 
[root@ooo nginx-1.24.0]# netstat -anpt | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4592/nginx: master  

# 通过检查 Nginx 程序的监听状态,或者在浏览器中访问此 Web 服务(默认页面将显示"Welcom to nginx!"),可以确认 Nginx 服务是否正常运行。

访问http://192.168.100.102/得到下面的图像即为成功

7. 添加系统服务(支持 systemctl 管理)

创建服务配置文件:

bash 复制代码
[root@ooo nginx-1.24.0]# cd /usr/local/nginx/sbin/
[root@ooo sbin]# vim /lib/systemd/system/nginx.service

Nginx 1.24 + 新版本配置(增加配置校验):

ini 复制代码
[Unit]
# 描述:Nginx 高性能Web服务器
Description=nginx - high performance web server
# 启动顺序:网络、远程文件系统、域名解析服务就绪后,再启动Nginx
After=network.target remote-fs.target nss-lookup.target

[Service]
# 服务类型:后台运行(创建子进程后父进程退出)
Type=forking
# PID文件路径:记录Nginx主进程ID,用于进程管理
PIDFile=/usr/local/nginx/logs/nginx.pid
# 启动前:先测试配置文件语法是否正确
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
# 启动命令:启动Nginx(指定自定义安装的配置文件)
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# 重载命令:平滑重载配置(不中断连接)
ExecReload=/usr/local/nginx/sbin/nginx -s reload
# 停止命令:快速停止Nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
# 退出命令:优雅退出(等待连接完成)
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
# 安全配置:给Nginx分配独立临时目录
PrivateTmp=true

[Install]
# 安装目标:系统多用户命令行模式下,支持开机自启
WantedBy=multi-user.target

设置权限并启用自启:

bash 复制代码
[root@ooo sbin]# chmod 754 /lib/systemd/system/nginx.service
[root@ooo sbin]# systemctl enable nginx.service  # 开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

# 第六步已经启动了,此处不必再次开启
# [root@ooo sbin]# systemctl start nginx.service  # 启动服务
# [root@ooo sbin]# netstat -anutp |grep nginx
# tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      4650/nginx: master  

(二)安装 MySQL 服务

1. 安装依赖包
bash 复制代码
[root@ooo sbin]# yum -y install ncurses ncurses-devel bison cmake
2. 创建运行用户
bash 复制代码
[root@ooo sbin]# useradd -s /sbin/nologin mysql
# useradd:Linux 创建新用户的核心命令
# -s /sbin/nologin:指定用户的登录shell为/sbin/nologin(禁止该用户直接登录系统,仅用于运行服务)
# mysql:新创建的用户名(专门用于运行MySQL数据库服务的系统用户,提升安全性)

[root@ooo sbin]# id mysql
uid=1002(mysql) gid=1002(mysql) 组=1002(mysql)
3. 编译安装 MySQL
  1. 上传安装包至/opt目录(推荐版本:mysql-boost-5.7.20.tar.gz,含 boost 库)
  2. 解压并编译安装:
bash 复制代码
[root@ooo ~]# cd /opt
[root@ooo opt]# rz -E
rz waiting to receive.
[root@ooo opt]# ls
mysql-boost-5.7.20.tar.gz  nginx-1.24.0  nginx-1.24.0.tar.gz

[root@ooo opt]# tar xzvf mysql-boost-5.7.20.tar.gz
[root@ooo opt]# cd mysql-5.7.20/
# 配置编译参数
[root@ooo mysql-5.7.20]# 
 cmake \          # cmake:MySQL源码编译的配置命令,用于指定安装参数
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  # MySQL安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  # Unix套接字文件路径(进程间通信)
-DSYSCONFDIR=/etc \  # 配置文件(my.cnf)存放目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \  # Systemd管理的PID文件目录
-DDEFAULT_CHARSET=utf8 \  # 默认字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci \  # 默认字符排序规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \  # 启用InnoDB存储引擎(核心引擎)
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \  # 启用Archive存储引擎(归档用)
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \  # 启用Blackhole存储引擎(数据黑洞)
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \  # 启用Performance Schema(性能监控)
-DMYSQL_DATADIR=/usr/local/mysql/data \  # 数据库数据文件存放目录
-DWITH_BOOST=boost \  # 指定Boost库路径(MySQL依赖)
-DWITH_SYSTEMD=1  # 启用Systemd服务支持(可通过systemctl管理MySQL)

[root@ooo mysql-5.7.20]# make -j4 && make install  # 编译时间较长,耐心等待

注意:若编译报错,需删除CMakeCache.txt文件后重新配置:rm -rf CMakeCache.txt

4. 权限配置

设置数据库目录权限归属 mysql 用户:

bash 复制代码
[root@ooo mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
5. 配置 MySQL 主配置文件
bash 复制代码
[root@ooo mysql-5.7.20]# vim /etc/my.cnf

配置内容:

ini 复制代码
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[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
server-id = 1

# SQL模式配置(严格模式,避免非法数据录入)
# 设置MySQL服务器的SQL模式,包括了一系列的行为控制选项,如不使用替代存储引擎、严格的事务表处理、不允许自动创建用户、不允许自增列从0开始、不允许日期中有零值等
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

设置配置文件权限:

bash 复制代码
[root@ooo mysql-5.7.20]# ll /etc/my.cnf
-rw-r--r-- 1 root root 855 11月  9 18:13 /etc/my.cnf

[root@ooo mysql-5.7.20]# chown mysql:mysql /etc/my.cnf

[root@ooo mysql-5.7.20]# ll /etc/my.cnf
-rw-r--r-- 1 mysql mysql 855 11月  9 18:13 /etc/my.cnf
6. 设置环境变量

让系统识别 MySQL 命令:

bash 复制代码
[root@ooo mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@ooo mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@ooo mysql-5.7.20]# source /etc/profile  # 生效环境变量
7. 初始化数据库
bash 复制代码
[root@ooo mysql-5.7.20]# cd /usr/local/mysql/
[root@ooo mysql]# bin/mysqld \
--initialize-insecure \  # 不设置root初始密码(生产环境建议设置)
--user=mysql \           # 指定运行MySQL服务器的系统用户为mysql
--basedir=/usr/local/mysql \   # 设置MySQL服务器的安装基础目录为/usr/local/mysql
--datadir=/usr/local/mysql/data  # 设置MySQL服务器的数据目录为/usr/local/mysql/data
8. 配置系统服务
bash 复制代码
[root@ooo mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

启动并设置自启:

bash 复制代码
[root@ooo mysql]# systemctl enable mysqld.service  --now
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@ooo mysql]# systemctl status mysqld  # 查看运行状态
[root@ooo mysql]# netstat -anpt | grep 3306   # 验证3306端口监听
tcp6       0      0 :::3306                 :::*                    LISTEN      23005/mysqld        
9. 设置 MySQL root 密码
bash 复制代码
[root@ooo mysql]# mysqladmin -u root -p password  # 初始无密码,直接回车,然后输入新密码(如123)
Enter password: '回车'
New password: '123'
Confirm new password: '123'
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
10. 登录验证
bash 复制代码
[root@ooo mysql]# mysql -u root -p123  # 输入密码登录,成功进入MySQL命令行即正常
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.20 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit
Bye

(三)安装配置 PHP 解析环境

1. 安装依赖包

PHP 编译需依赖多个图像处理、加密、网络相关库:

bash 复制代码
[root@ooo mysql]# yum -y install \
> libxml2 \
> libxml2-devel \
> openssl \
> openssl-devel \
> bzip2 \
> bzip2-devel \
> libcurl \
> libcurl-devel \
> libjpeg \
> libjpeg-devel \
> libpng \
> libpng-devel \
> freetype \
> freetype-devel \
> gmp \
> gmp-devel \
> libmcrypt \
> libmcrypt-devel \
> readline \
> readline-devel \
> libxslt \
> libxslt-devel \
> zlib \
> zlib-devel \
> glibc \
> glibc-devel \
> glib2 \
> glib2-devel \
> ncurses \
> curl \
> gdbm-devel \
> db4-devel \
> libXpm-devel \
> libX11-devel \
> gd-devel \
> gmp-devel \
> expat-devel \
> xmlrpc-c \
> xmlrpc-c-devel \
> libicu-devel \
> libmcrypt-devel \
> libmemcached-deve

# 安装EPEL源(提供libmcrypt补充包)
[root@ooo mysql]# yum install epel-release -y
[root@ooo mysql]# yum -y install libmcrypt libmcrypt-devel
2. 编译安装 PHP
  1. 上传安装包至/opt目录(推荐版本:php-7.1.10.tar.bz2)
  2. 解压并编译安装:
bash 复制代码
[root@ooo mysql]# cd /opt
[root@ooo opt]# tar xjvf php-7.1.10.tar.bz2
[root@ooo opt]# cd php-7.1.10/
# 配置编译参数(启用FPM、支持MySQL、GD图像处理等)
[root@ooo php-7.1.10]#
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/etc \
--enable-fpm \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-libxml-dir \
--with-xmlrpc \
--with-openssl \
--with-mcrypt \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache

[root@ooo php-7.1.10]# make -j4 && make install  # 编译安装
3. 配置 PHP 核心文件
  1. 复制默认配置文件:
bash 复制代码
[root@ooo php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini  
# 开发环境用development,生产环境用production
  1. 修改关键配置:
bash 复制代码
[root@ooo php-7.1.10]# vim /usr/local/php/lib/php.ini

找到并修改以下参数:

ini 复制代码
1170 mysqli.default_socket = /usr/local/mysql/mysql.sock  # 关联MySQL套接字
939 date.timezone = Asia/Shanghai  # 设置时区(避免时间错误)
  1. 验证安装模块:
bash 复制代码
[root@ooo php-7.1.10]# /usr/local/php/bin/php -m  # 查看已安装的PHP模块
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib

[Zend Modules]
4. 配置 PHP-FPM 服务

PHP-FPM 的配置文件分为主配置(php-fpm.conf)和扩展配置(www.conf):

bash 复制代码
# 复制主配置文件
[root@ooo php-7.1.10]# cd /usr/local/php/etc/
[root@ooo etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d

[root@ooo etc]# cp php-fpm.conf.default php-fpm.conf

# 复制扩展配置文件
[root@ooo etc]# cd php-fpm.d/
[root@ooo php-fpm.d]# ls
www.conf.default

[root@ooo php-fpm.d]# cp www.conf.default www.conf

[root@ooo php-fpm.d]# cd ..
[root@ooo etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d

# 修改主配置文件(启用PID文件)
[root@ooo etc]# vim /usr/local/php/etc/php-fpm.conf
17 pid = run/php-fpm.pid  # 取消注释,启用PID记录
5. 启动 PHP-FPM 并验证
bash 复制代码
[root@ooo etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini  # 启动FPM
[root@ooo etc]# netstat -anpt | grep 9000  # 验证9000端口监听(FPM默认端口)
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      59488/php-fpm: mast 

[root@ooo etc]# ln -s /usr/local/php/bin/* /usr/local/bin/  # 路径优化
[root@ooo etc]# ps aux | grep -c "php-fpm"  # 查看FPM进程数
4
6. 配置 Nginx 支持 PHP 解析

修改 Nginx 主配置文件,让 Nginx 能转发 PHP 请求至 PHP-FPM:

bash 复制代码
[root@ooo etc]# vim /usr/local/nginx/conf/nginx.conf

http -> server块中添加 PHP 解析配置:

nginx 复制代码
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;  # 转发至PHP-FPM监听地址
    fastcgi_index  index.php;
    # 指定PHP脚本路径(需与Nginx根目录一致)
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
    include        fastcgi_params;  # 引入FastCGI通用配置
}

同时确保index指令包含index.php

nginx 复制代码
location / {
    root   html;
    index  index.html index.htm index.php;  # 添加index.php
}

重启 Nginx 生效:

bash 复制代码
[root@ooo etc]# systemctl restart nginx
7. 验证 PHP 解析功能

创建 PHP 测试文件:

bash 复制代码
[root@ooo etc]# vim /usr/local/nginx/html/index.php

内容如下:

php 复制代码
<?php
phpinfo();  # 输出PHP环境信息
?>

访问测试:在浏览器输入http://192.168.100.102/index.php,能看到 PHP 信息页面即表示解析正常。

8. 验证 MySQL 与 PHP 连接

修改测试文件,测试数据库连接:

bash 复制代码
[root@ooo etc]# vim /usr/local/nginx/html/index.php

内容如下:

php 复制代码
<?php
# 连接MySQL(参数:数据库地址、用户名、密码)
$link=mysqli_connect('localhost','root','123');
if($link) echo "<h1>MySQL连接成功!</h1>";
else echo "MySQL连接失败!";
?>

访问http://192.168.100.102/index.php,显示 "MySQL 连接成功" 即表示数据库与 PHP 通信正常。

五、部署 Discuz! 社区论坛

1. 准备论坛程序

  1. 上传 Discuz! 安装包至/opt目录(推荐版本:Discuz_X3.4_SC_UTF8.zip)
  2. 解压并复制到 Nginx 网站根目录:
bash 复制代码
[root@ooo etc]# cd /opt
[root@ooo opt]# unzip Discuz_X3.4_SC_UTF8.zip -d /tmp  # 解压到/tmp目录
[root@ooo opt]# cd /tmp/dir_SC_UTF8/
[root@ooo dir_SC_UTF8]# ls
readme  upload  utility

[root@ooo dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/  # 复制论坛程序到bbs目录

访问http://192.168.100.102/bbs/index.php/得到如下图片即成功

2. 配置目录权限

Discuz! 需要特定目录的读写权限,执行以下命令:

bash 复制代码
[root@ooo dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
# 设置目录归属(root用户+nginx组)
[root@ooo bbs]# chown -R root:nginx ./config/
[root@ooo bbs]# chown -R root:nginx ./data/
[root@ooo bbs]# chown -R root:nginx ./uc_client/
[root@ooo bbs]# chown -R root:nginx ./uc_server/
# 设置读写权限
[root@ooo bbs]# chmod -R 777 ./config/
[root@ooo bbs]# chmod -R 777 ./data/
[root@ooo bbs]# chmod -R 777 ./uc_client/
[root@ooo bbs]# chmod -R 777 ./uc_server/

效果图:

3. 数据库准备

创建论坛专用数据库和用户(避免使用 root 用户):

bash 复制代码
[root@ooo etc]# mysql -u root -p123  # 登录MySQL

执行以下 SQL 语句:

sql 复制代码
mysql> CREATE DATABASE bbs;  # 创建数据库bbs
# 创建用户bbsuser,允许本地和远程连接(密码admin123)
mysql> GRANT ALL ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
mysql> GRANT ALL ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
mysql> FLUSH PRIVILEGES;  # 刷新权限
mysql> exit;  # 退出MySQL

4. 网页安装 Discuz!

  1. 访问安装页面:在浏览器输入http://192.168.100.102/bbs/install/index.php
  2. 安装步骤:
    • 第一步:同意许可协议,点击 "下一步"
    • 第二步:环境检测(全部显示 "√" 即可,若有目录权限警告需重新设置权限)
    • 第三步:选择 "全新安装",点击 "下一步"
    • 第四步:填写数据库信息(数据库名:bbs,用户名:bbsuser,密码:admin123),设置管理员账号(如 admin/123)
    • 第五步:等待安装完成,点击 "访问论坛"

6. 访问论坛

  • 前台地址:http://192.168.100.102/bbs/index.php
  • 后台地址:http://192.168.100.102/bbs/admin.php(使用安装时设置的管理员账号登录)

首页如图:

到此部署结束!

记得打个快照哟!

相关推荐
亮子AI2 小时前
【Nginx】怎样清除 Nginx 的缓存?
运维·nginx·缓存
vvw&3 小时前
如何在 Ubuntu 24.04 上安装和使用 AdGuard
linux·运维·服务器·ubuntu·adguard
weixin_453253653 小时前
python+playwright自动化如何解决文件上传问题
运维·自动化
King's King3 小时前
超详细的自动化立体仓库技术标书-模板
运维·自动化
TTBIGDATA3 小时前
【Ambari开启Kerberos】Step1-KDC服务初始化安装-适合Ubuntu
运维·数据仓库·hadoop·ubuntu·ambari·hdp·bigtop
qq_167401514 小时前
使用 dash 构建整洁架构应用
架构·dash
Fr2ed0m4 小时前
Nginx防御HTTP Host头注入漏洞:实战配置漏洞修复教程
运维·nginx·http
安审若无5 小时前
linux怎么检查磁盘是否有坏道
linux·运维·服务器
HalvmånEver5 小时前
Linux的第二章 : 基础的指令(二)
linux·运维·服务器·开发语言·学习