当前位置:网站首页>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 创建账户测试


边栏推荐
猜你喜欢

Everything cannot be searched for startup_ Lpc11x.s file

Game theory acwing 893. Set Nim game

Memory search acwing 901. Skiing

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

【无标题】多模态模型 CLIP

Why choose smart TV?

Proteus8专业版破解后用数码管闪退的解决

Caused by:org.gradle.api.internal. plugins . PluginApplicationException: Failed to apply plugin

Find the combination number acwing 888. find the combination number IV

Game theory acwing 894. Split Nim game
随机推荐
Quantitative industry knowledge summary
[shader realizes shake random shaking effect _shader effect Chapter 10]
Pat (Grade B) 2022 summer exam
C programming language (2nd Edition) -- Reading Notes -- 1.3
(10) File contains
Interval problem acwing 906. Interval grouping
1.Flume 简介及基本使用
LAN SDN technology hard core insider 13 from LAN to Internet
Game theory acwing 893. Set Nim game
求组合数 AcWing 888. 求组合数 IV
Digital triangle model acwing 1015. Picking flowers
Error encountered in adding quick open option to right-click menu:
Arduino常见供电问题与解决
STM32编译出现error: L6235E: More than one section matches selector - cannot all be FIRST/L
局域网SDN技术硬核内幕 11 云网融合CP的关键——层次化端口绑定
Analysis of distributed database and cache double write consistency scheme (Reprint)
When std:: bind meets this
Moveit2 - 1. Start
SMA TE: Semi-Supervised Spatio-Temporal RepresentationLearning on Multivariate Time Series
LAN SDN hard core technology insider 23 looking forward to the future - RDMA (Part 1)