当前位置: 首页 > news >正文

LNMP部署及应用

LNMP部署及应用

概念

LNMP 架构概述

  • LNMP 由 Linux(系统底层)、Nginx(Web 服务器)、MySQL(关系型数据库)、PHP-FPM(动态页面解析)组成,适用于独立主机搭建生产环境。
  • Nginx 优势:资源占用少、并发支持强,可作为 Web 服务器、负载均衡服务器或邮件代理服务器,支持平滑升级与配置重载。
  • MySQL 特点:体积小、速度快、开源免费,采用关系型存储,适合中小型网站数据库需求。
  • PHP-FPM 作用:处理 Nginx 无法解析的动态页面请求,实现动态内容交互。

部署步骤

安装 Nginx 服务
  • 先安装 pcre-devel、zlib-devel 等依赖包,创建专用 nginx 运行用户(禁止 Shell 登录)。
  • 编译安装 Nginx 至 /usr/local/nginx,配置运行用户、状态统计模块,优化路径并创建软链接。
  • 检查配置文件有效性,启动服务并验证监听状态,添加系统服务支持 systemctl 管理。
安装 MySQL 服务
  • 安装 ncurses、cmake 等依赖包,创建 mysql 运行用户。
  • 编译安装 MySQL 至 /usr/local/mysql,调整数据库目录权限,配置 /etc/my.cnf 文件(指定端口、字符集、数据目录等)。
  • 设置环境变量,初始化数据库,配置系统服务并设置开机自启,最后修改 root 密码并登录验证。
安装配置 PHP 解析环境
  • 安装 libxml2-devel、openssl-devel 等大量依赖包及 epel 源,编译安装 PHP 至 /usr/local/php。
  • 配置 php.ini 核心文件(指定 MySQL 套接字、时区),优化 PHP-FPM 配置(复制默认配置文件、设置 PID)。
  • 配置 Nginx 支持 PHP,修改 nginx.conf 文件关联 PHP-FPM 端口,创建测试页面验证解析及数据库连接功能。
部署 Discuz!社区论坛
  • 解压论坛安装包至 Nginx 网站根目录,调整相关目录权限(config、data 等目录设为 777 权限)。
  • 通过浏览器访问安装页面,填写数据库信息(库名 bbs、用户名 bbsuser)及管理员账号,完成安装。
  • 安装后删除或锁定 install 目录,通过前台地址访问论坛、后台地址管理论坛。

LNMP部署

环境准备

nginx配置
[root@localhost ~]# yum -y install pcre-devel zlib-devel#创建程序用户
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# id nginx
uid=1001(nginx) gid=1001(nginx) groups=1001(nginx)#编译安装nginx
[root@localhost ~]# rz -E
rz waiting to receive.
[root@localhost ~]# tar xzvf nginx-1.12.2.tar.gz
[root@localhost ~]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# 
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module[root@localhost nginx-1.12.2]# make && make install#路径优化
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/#查看配置文件语法ok
[root@localhost nginx-1.12.2]# nginx -t
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#查看有哪些文件
[root@localhost nginx-1.12.2]# cd /usr/local/nginx/
[root@localhost nginx]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp[root@localhost sbin]# vim /lib/systemd/system/nginx.service
[root@localhost sbin]# 
[root@localhost sbin]# chmod 754 /lib/systemd/system/nginx.service
[root@localhost sbin]# cat /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=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target[root@localhost sbin]# systemctl start nginx.service
[root@localhost sbin]# systemctl status nginx.service 
● nginx.service - nginxLoaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)Active: active (running) since Fri 2025-11-07 11:08:40 CST; 6s agoProcess: 1953 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)Main PID: 1954 (nginx)CGroup: /system.slice/nginx.service├─1954 nginx: master process /usr/local/nginx/sbin/nginx└─1955 nginx: worker processNov 07 11:08:40 localhost.localdomain systemd[1]: Starting nginx...
Nov 07 11:08:40 localhost.localdomain systemd[1]: Started nginx.
[root@localhost 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@localhost sbin]# netstat -anutp |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1954/nginx: master  #去网站测试nginx

在这里插入图片描述

mysql配置
[root@localhost ~]# 
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake#程序用户
[root@localhost sbin]# useradd -s /sbin/nologin  mysql
[root@localhost sbin]# id mysql
uid=1002(mysql) gid=1002(mysql) groups=1002(mysql)[root@localhost opt]# tar xzvf mysql-boost-5.7.20.tar.gz
[root@localhost ~]# ls
anaconda-ks.cfg  Downloads             mysql-5.7.20               nginx-1.12.2.tar.gz  Templates
Desktop          initial-setup-ks.cfg  mysql-boost-5.7.20.tar.gz  Pictures             Videos
Documents        Music                 nginx-1.12.2               Public#初始化数据库
[root@localhost 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_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[root@localhost mysql-5.7.20]# make -j4
[root@localhost mysql-5.7.20]# make install#数据库目录进行权限调整
[root@localhost mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost mysql-5.7.20]# vim /etc/my.cnf
[root@localhost mysql-5.7.20]# 
[root@localhost mysql-5.7.20]# 
[root@localhost mysql-5.7.20]# cat /etc/my.cnf
[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 = 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_QUOTES
[root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf#设置环境变量
[root@localhost mysql-5.7.20]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# echo 'export PATH' >> /etc/profile
[root@localhost mysql-5.7.20]# source /etc/profile#初始化
[root@localhost mysql-5.7.20]# cd /usr/local/mysql/
[root@localhost mysql]# bin/mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
2025-11-07T05:37:43.778469Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2025-11-07T05:37:44.104945Z 0 [Warning] InnoDB: New log files created, LSN=45790
2025-11-07T05:37:44.155343Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2025-11-07T05:37:44.211495Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e274c902-bb9b-11f0-acbe-000c29fff886.
2025-11-07T05:37:44.212358Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2025-11-07T05:37:44.213156Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.#复制执行脚本
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/[root@localhost mysql]# systemctl enable mysqld --now
[root@localhost mysql]# netstat -anpt | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      22194/mysqld     #设置密码
[root@localhost mysql]# mysqladmin -u root -p password
Enter password: 
New password: 
Confirm new password: 
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.#登录
[root@localhost mysql]# mysql -uroot -p123
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 distributionCopyright (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> 
PHP配置
#安装环境包
[root@localhost ~]# 
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-devel#安装epel源
yum install -y epel-releaseyum -y install libmcrypt \
libmcrypt-devel#编译安装
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg       nginx-1.12.2         Pictures
Desktop          Music                      nginx-1.12.2.tar.gz  Public
Documents        mysql-5.7.20               php-7.1.10           Templates
Downloads        mysql-boost-5.7.20.tar.gz  php-7.1.10.tar.bz2   Videos
[root@localhost ~]# cd php-7.1.10/[root@localhost 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@localhost php-7.1.10]# make -j4
[root@localhost php-7.1.10]# make install[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost php-7.1.10]# vim /usr/local/php/lib/php.ini 
/1170 mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai#验证安装的模块
[root@localhost php-7.1.10]# /usr/local/php/bin/php -m
[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]#配置及优化FPM模块
[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@localhost etc]# cp  php-fpm.conf.default php-fpm.conf
[root@localhost etc]# cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# cd /usr/local/php/etc/
[root@localhost etc]# vim php-fpm.conf
pid = run/php-fpm.pid#启动
[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@localhost etc]# netstat -anpt | grep 9000
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      46300/php-fpm: mast [root@localhost etc]# ln -s /usr/local/php/bin/* /usr/local/bin/#查看正在进行的进程
[root@localhost etc]# ps aux | grep -c "php-fpm"
4

配置nginx支持PHP

[root@localhost etc]# vim /usr/local/nginx/conf/nginx.conf
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; ####注意目录名称include        fastcgi_params;
}[root@localhost etc]# vim /usr/local/nginx/html/index.php
[root@localhost etc]# cat /usr/local/nginx/html/index.php
<?php
phpinfo();
?># 在网页测试“http://192.168.100.41/index.php”

在这里插入图片描述

测试数据库


[root@localhost etc]# mysql -uroot -p123
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 5
Server version: 5.7.20 Source distributionCopyright (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> create database bbs;
Query OK, 1 row affected (0.01 sec)mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> grant all on bbs.* to 'bbsuser'@'localhost' identified by 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)mysql> 

测试

[root@localhost etc]# vim /usr/local/nginx/html/index.php
[root@localhost etc]# cat /usr/local/nginx/html/index.php
<?php
$link=mysqli_connect('192.168.100.68','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
[root@localhost etc]# systemctl restart nginx#去网站访问测试

在这里插入图片描述

LNMP应用部署

安装论坛

#把所需文件复制到根目录下面
[root@localhost ~]# rz -E
rz waiting to receive.
[root@localhost ~]# ls
anaconda-ks.cfg          initial-setup-ks.cfg       nginx-1.24.0.tar.gz  Templates
Desktop                  Music                      php-7.1.10           Videos
Discuz_X3.4_SC_UTF8.zip  mysql-5.7.20               php-7.1.10.tar.bz2
Documents                mysql-boost-5.7.20.tar.gz  Pictures
Downloads                nginx-1.24.0               Public[root@localhost ~]# unzip Discuz_X3.4_SC_UTF8.zip  -d /tmp[root@localhost ~]# cd /tmp/dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs/
ata/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
[root@localhost bbs]# chown -R root:nginx ./config/
[root@localhost bbs]# chown -R root:nginx ./data/
[root@localhost bbs]# chown -R root:nginx ./uc_client/
[root@localhost bbs]# chown -R root:nginx ./uc_server/
[root@localhost bbs]# 
[root@localhost bbs]# chmod -R 777 ./config/
[root@localhost bbs]# chmod -R 777 ./data/
[root@localhost bbs]# chmod -R 777 ./uc_client/
[root@localhost bbs]# chmod -R 777 ./uc_server/#去浏览器安装

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/581487.html

相关文章:

  • 优质做网站哪家正规wordpress附件修复
  • Java-HTTP响应以及HTTPS(下)
  • [人工智能-大模型-135]:词向量的演进,对词向量的对Transformer架构理解的前提与关键。
  • 【1Panel】1、安装1Panel
  • JAVA:Spring Boot3 新特性解析的技术指南
  • 数据结构系列之十大排序算法
  • Spring Boot接收前端参数的注解总结
  • .c .o .a .elf .a2l hex map 这些后缀文件的互相之间的联系和作用
  • 纯静态网站seowordpress内页模板
  • 包装公司网站模板下载哈尔滨网络seo公司
  • 基于协同过滤算法的小说推荐系统_django+spider
  • VSCODE 插件 rust-analyzer 使用遇到的问题 快捷键查看定义
  • 个人网页设计制作网站模板西宁做网站制作的公司
  • Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折腾记
  • npm i / npm install 卡死不动解决方法
  • 安装GPT4Free(也就是g4f)的最新版:g4f-6.5.7
  • h5四合一网站建设做新闻的网站怎样赚钱
  • SG-CAN-4G-410(4 路 CAN 转 4G 网关)
  • 潍坊做网站的做网站销售一个星期的计划
  • Spring三级缓存通俗易懂讲解
  • Windows10/Windows11家庭版系统关闭自动更新
  • 基于 Flink CDC 的 MySQL → Kafka Streaming ELT 实战
  • Redis内存回收,缓存问题
  • 一项基于高灵敏度sCMOS相机的光镊成像实验
  • wordpress 调用分类名上海不限关键词优化
  • 运维高级故障排除与恢复-SysRq
  • word插入的图片显示不完全解决方法
  • 北京响应式h5网站开发网站优化排名推广
  • 面向强化学习的状态空间建模:RSSM的介绍和PyTorch实现(3)
  • 网站建设如何上传图片阿里云虚拟主机可以做几个网站吗