当前位置:网站首页>LNMP架构搭建(部署Discuz论坛)
LNMP架构搭建(部署Discuz论坛)
2022-07-27 11:01:00 【不回头的蛙兄】
目录
一、Nginx服务安装
1 实验前的准备
systemctl stop firewalld 关闭防火墙
systemctl disable firewalld 开机自关闭
setenforce 0 关闭增强机制
2 安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
3 创建运行用户
useradd -M -s /sbin/nologin nginx![]()
4 编译安装
cd /opt
tar zxvf nginx-1.12.0.tar.gz -C /opt/''.6hvcf
cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \ 指定Nginx的安装路径
--user=nginx \ 指定用户名
--group=nginx \ 指定组名
--with-http_stub_status_module 启用http_stub_status_module模块
make && make install


![]()
5 优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ 让系统识别Nginx的操作命令![]()
6 添加Nginx系统服务
vim /lib/systemd/system/nginx.service 添加Nginx系统服务配置
[Unit] 服务名称
Description=nginx 描述服务
After=network.target 描述服务类型
[Service] 服务参数
Type=forking 后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid 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 设置开机自启

7 验证结果

二、安装MySQL服务
1 安装MySQL环境依赖包
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
2 创建运行用户
useradd -M -s /sbin/nologin mysql![]()
3 编译安装
cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20/
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 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
编译及安装
make -j4 && make install![]()

![]()
4 修改MySQL配置文件
vim /etc/my.cnf
[client]
port = 3306
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
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
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
5 更改MySQL安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf![]()
6 设置路径环境变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile![]()
7 初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \ 生成初始化密码为空
--user=mysql \ 指定管理用户
--basedir=/usr/local/mysql \ 指定数据库的安装目录
--datadir=/usr/local/mysql/data 指定数据库文件的储存路径
8 添加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 开机自启动
9 修改MySQL的登陆密码
mysqladmin -u root -p password "123456" 给root账号设置密码为123456,提示输入的是原始密码(为空)
10 授权远程登录
mysql -u root -p
grant all privileges on *.* to 'root'@'%' identified by '123456';
#授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限
show databases; #查看当前已有的数据库
三、安装配置PHP解析环境
1 安装环境依赖包
安装GD库和GD库关联程序,用来处理和生成图片
yum -y install gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
2 编译安装
cd /opt
tar jxvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip
make -j2 && make install![]()

![]()
3 路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/![]()
4 调整PHP配置文件
4.1 调整主配置文件
cp /opt/php-7.1.24/php.ini-development /usr/local/php/lib/php.ini
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai
php -m #验证安装的模块
![]()

4.2 调整进程配置文件
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid![]()

4.3 调整扩展配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf![]()
5 启动php-fpm
/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
netstat -anpt | grep 9000![]()
PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。
![]()
6 配置Nginx支持PHP解析
vim /usr/local/nginx/conf/nginx.conf
--65行--取消注释,修改
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; #将 /scripts 修改为nginx的工作目录
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #$document_root 代表当前请求在root指令中指定的值
include fastcgi_params;
}
systemctl restart nginx.service
重启服务
![]()
7 验证PHP测试页
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
重启服务:systemctl restart nginx
浏览器访问

8 验证数据库工作是否正常
mysql -u root -p
#创建一个数据库
CREATE DATABASE bbs;
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码123456
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY '123456'; #刷新数据库
flush privileges; #查看有哪些数据库
show databases;
vim /usr/local/nginx/html/index.php #替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.152.11','bbsuser','123456');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

9 浏览器访问

四、部署Discuz论坛
1 解压论坛压缩包
cd /opt
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
![]()
2 上传站点更新包
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/![]()
3 调整论坛目录的权限
cd /usr/local/nginx/html/bbs/
chown -R nginx ./config/
chown -R nginx ./data/
chown -R nginx ./uc_client/
chown -R nginx ./uc_server/
或
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
4 浏览器访问验证
论坛页面访问
http://192.168.152.11/bbs/install/index.php
#填写数据库信息
数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:123456
管理员账号:admin
管理员密码:123456
#结束
#论坛内部页面
http://192.168.152.11/bbs/index.php
#论坛后台管理员页面

下拉到最后



4.1 管理员账号登录测试

4.2 创建账户测试


边栏推荐
- Gaussian elimination acwing 883. solving linear equations with Gaussian elimination
- LAN SDN technology hard core insider 12 cloud CP's daily love - hardware vxlan forwarding plane
- USB 网卡驱动数据流
- 剑指 Offer 笔记: T57 - I. 和为 s 的两个数字
- 【无标题】多模态模型 CLIP
- The C programming language (2nd) -- Notes -- 1.9
- Find the combination number acwing 885. find the combination number I
- 美现首例孕妇猴痘病例:新生儿被注射免疫球蛋白,已安全出生
- 力扣——10. 正则表达式匹配
- (3) Pass parameters
猜你喜欢

Analysis of distributed database and cache double write consistency scheme (Reprint)

微博评论爬虫+可视化

JUC框架 从Runnable到Callable到FutureTask 使用浅析

Force buckle - 10. Regular expression matching

82. (cesium home) cesium points move on 3D models

What is private traffic?

origin如何作一张图中多张子图是柱状图(或其他图)

Game theory acwing 893. Set Nim game

State compression DP acwing 91. shortest Hamilton path

Knapsack problem acwing 9. grouping knapsack problem
随机推荐
zabbix自定义监控项
Digital triangle model acwing 1018. Minimum toll
(8) Shell function
Maker harmony OS application development training notes 01
What is private traffic?
微商的差商近似
Several banks adjusted the redemption rules of cash management financial products: the confirmation time limit of redemption changed from "t+0" to "t+1"
USB 网卡驱动数据流
第10章 枚举类与注解
Maker Hongmeng application development training 04
Everything cannot be searched for startup_ Lpc11x.s file
[unity entry program] creator kitfps: first person shooting 3D game
LeetCode 01: T1. 两数之和 ; T1108. IP 地址无效化 ; T344. 反转字符串
Digital triangle model acwing 1027. Grid retrieval
多种进制之间的转换
Could not load dynamic library ‘libcudnn.so.8‘;
Force buckle - 10. Regular expression matching
什么是私域流量?
Vscode establishes automatic search of header files under non engineering directories
Maker paper data search training notes