千家信息网

LNMP架构详解

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,LNMP架构详解(需要本实验的源码包请私信我)Nginx安装挂载源码包[root@localhost ~]# smbclient -L //192.168.100.23/ #访问宿主机Enter S
千家信息网最后更新 2026年11月01日LNMP架构详解

LNMP架构详解

(需要本实验的源码包请私信我)

Nginx安装

挂载源码包

[root@localhost ~]# smbclient -L //192.168.100.23/  #访问宿主机Enter SAMBA\root's password: OS=[Windows 10 Enterprise 17763] Server=[Windows 10 Enterprise 6.3]    Sharename       Type      Comment    ---------       ----      -------    ADMIN$          Disk      远程管理    C$              Disk      默认共享    D$              Disk      默认共享    E$              Disk      默认共享    F$              Disk      默认共享    G$              Disk      默认共享    IPC$            IPC       远程 IPC    LAMP            Disk          LAMP-C7         Disk          LNMP            Disk          share           Disk          Users           Disk      [root@localhost ~]# mkdir chen/  #创建挂载点[root@localhost ~]# mount.cifs //192.168.100.23/LNMP chen/  #挂载Password for root@//192.168.100.23/LNMP:  

解压nginx包到opt底下

[root@localhost ~]# cd chen/[root@localhost chen]# lsmysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gznginx-1.12.0.tar.gz        php-7.1.10.tar.bz2[root@localhost chen]# tar zxvf nginx-1.12.2.tar.gz -C /opt/

安装nginx环境包

[root@localhost opt]# yum install gcc gcc-c++ pcre-devel zlib-devel -y#c语言,c++语言,pcre语言,数据压缩用的函数库已安装:  gcc.x86_64 0:4.8.5-39.el7          gcc-c++.x86_64 0:4.8.5-39.el7        pcre-devel.x86_64 0:8.32-17.el7    zlib-devel.x86_64 0:1.2.7-18.el7   作为依赖被安装:  cpp.x86_64 0:4.8.5-39.el7                                                glibc-devel.x86_64 0:2.17-292.el7                                        glibc-headers.x86_64 0:2.17-292.el7                                      kernel-headers.x86_64 0:3.10.0-1062.4.1.el7                              libmpc.x86_64 0:1.0.1-3.el7                                              libstdc++-devel.x86_64 0:4.8.5-39.el7                                  作为依赖被升级:  glibc.x86_64 0:2.17-292.el7       glibc-common.x86_64 0:2.17-292.el7    libgcc.x86_64 0:4.8.5-39.el7      libgomp.x86_64 0:4.8.5-39.el7         libstdc++.x86_64 0:4.8.5-39.el7   zlib.x86_64 0:1.2.7-18.el7        

创建nginx用户去管理,安装组件,编译安装

[root@localhost opt]# useradd -M -s /sbin/nologin nginx  #创建nginx用户,不指定家目录,不让它登录本地控制台[root@localhost opt]# id nginxuid=1001(nginx) gid=1001(nginx) 组=1001(nginx)[root@localhost opt]# cd nginx-1.12.2/[root@localhost nginx-1.12.2]# lsauto     CHANGES.ru  configure  html     man     srcCHANGES  conf        contrib    LICENSE  README[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  #编译[root@localhost nginx-1.12.2]# make install  #编译安装

启动服务查看端口有没有被开启

[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/  #做个软链接让系统能识别nginx的命令[root@localhost nginx-1.12.2]# nginx -t  #检查nginx配置语法有没有错误nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost logs]# nginx  #开启nginx服务[root@localhost nginx-1.12.2]# netstat -ntap | grep nginx  #查看nginx端口tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      8878/nginx: master  [root@localhost nginx-1.12.2]# systemctl stop firewalld.service  #关闭防火墙[root@localhost nginx-1.12.2]# setenforce 0  #关闭增强功能

做个脚本让service管理器方便管理nginx服务

[root@localhost init.d]# cd /usr/local/nginx/logs/[root@localhost logs]# lsaccess.log  error.log  nginx.pid[root@localhost logs]# cat nginx.pid   #查看nginx的进程号,我们关闭,启动,都是靠这个进程号8878[root@localhost nginx-1.12.2]# cd /etc/init.d/  #到系统脚本中[root@localhost init.d]# vim nginx  #添加nginx脚本#!/bin/bash#chkconfig: - 99 20  #注释信息#description: Nginx Service Control ScriptPROG="/usr/local/nginx/sbin/nginx"  #这个变量,指向我的命令文件PIDF="/usr/local/nginx/logs/nginx.pid"  #这个变量,指向nginx的进程号case "$1" in    start)        $PROG                                                      ;;    stop)        kill -s QUIT $(cat $PIDF)         ;;    restart)                                                          $0 stop        $0 start        ;;    reload)                                                          kill -s HUP $(cat $PIDF)        ;;    *)                                                                           echo "Usage: $0 {start|stop|restart|reload}"                exit 1esacexit 0[root@localhost logs]# chmod +x /etc/init.d/nginx #添加执行权限[root@localhost logs]# chkconfig --add nginx  #添加nginx[root@localhost logs]# service nginx stop  #关闭nginx[root@localhost logs]# service nginx start  #开启nginx[root@localhost logs]# netstat -ntap | grep nginxtcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9185/nginx: master  

mysql安装配置

安装环境包,创建程序用户

[root@localhost logs]# cd ~[root@localhost ~]# yum -y install \gcc \  #c语言gcc-c++ \ #c++语言ncurses \  ncurses-devel \  #控制终端屏幕显示的库bison \  #语法分析工具cmake  #cmake工具[root@localhost ~]# useradd -s /sbin/nologin mysql  #创建程序性用户

解压缩,编译安装

[root@localhost ~]# cd chen/[root@localhost chen]# lsmysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gznginx-1.12.0.tar.gz        php-7.1.10.tar.bz2[root@localhost chen]# tar zxvf mysql-boost-5.7.20.tar.gz -C /opt #解压缩到opt底下[root@localhost chen]# cd /opt/[root@localhost opt]# cd mysql-5.7.20/cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  #安装路径-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  #定义sock文件连接数据库文件-DSYSCONFDIR=/etc \  #配置文件目录-DSYSTEMD_PID_DIR=/usr/local/mysql \  #PID文件目录-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 #编译[root@localhost mysql-5.7.20]#make install #编译安装

配置mysql

[root@localhost mysql-5.7.20]#cd /usr/local/[root@localhost local]# chown -R mysql:mysql mysql/ #提升mysql权限,属祝,属组[root@localhost local]# cd /opt/mysql-5.7.20/[root@localhost mysql-5.7.20]# vim /etc/my.cnf     ##调整配置文件[client]                            ##客户端port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysql]                           ##客户端     port = 3306default-character-set=utf8socket = /usr/local/mysql/mysql.sock[mysqld]                         ##服务器        user = mysql                  ##用户basedir = /usr/local/mysql      ##设置mysql的安装目录datadir = /usr/local/mysql/data    ##设置mysql数据库的数据的存放目录port = 3306                    ##设置3306端口character_set_server=utf8            ##中文字符集pid-file = /usr/local/mysql/mysqld.pid     ##pid文件路径socket = /usr/local/mysql/mysql.sock     ##sock文件路径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

使系统能识别mysql所有命令

[root@localhost local]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile#设置环境变量,使系统能识别bin和lib下的所有命令[root@localhost local]# echo 'export PATH' >> /etc/profile#全局变量[root@localhost local]# source /etc/profile #重新启动系统环境变量

初始化数据库

[root@localhost local]# cd /usr/local/mysql/bin/mysqld \--initialize-insecure \  #初始化--user=mysql \  #指定用户--basedir=/usr/local/mysql \ #指定安装目录--datadir=/usr/local/mysql/data #数据库数据文件目录

开启mysql数据库

[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/#把mysql启动脚本放到系统中可以systemctl可以管理[root@localhost mysql]# systemctl start mysqld.service[root@localhost mysql]# netstat -ntap | grep 3306tcp6       0      0 :::3306                 :::*                    LISTEN      73971/mysqld        

设置mysql密码

[root@localhost mysql]# mysqladmin -u root -p password #一开始是空的密码,可以设置abc123Enter 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 -u root -pEnter password: 

安装配置PHP

安装环境包

yum install -y \libjpeg \                              ##jpeg图片格式和开发包libjpeg-devel \libpng libpng-devel \           ##png图片和开发包freetype freetype-devel \    ##字体库libxml2 \                              ##xml文件库libxml2-devel \zlib zlib-devel \                    ##压缩库 curl curl-devel \                   ##支持数据文件下载工具openssl openssl-devel        ##安全访问连接

解压,压缩

[root@localhost chen]# cd chen/[root@localhost chen]# tar zxvf php-7.1.20.tar.gz -C /opt/[root@localhost chen]# cd /opt/[root@localhost opt]# lsmysql-5.7.20  nginx-1.12.2  php-7.1.20  rh

安装PHP组件

[root@localhost opt]# 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-mysqli                                    ##客户端支持库--with-zlib                                         ##压缩--with-curl                                        ##支持上传下载功能--with-gd                                          ##gd图像支持图片处理库--with-jpeg-dir                                  ##jpeg--with-png-dir                                   ##png--with-freetype-dir                            ##字体--with-openssl                                  ##安全访问连接--enable-fpm                                    ##fpm支持动态请求模块--enable-mbstring                            ##支持多字节的字符串--enable-xml                                    ##xml文件--enable-session                             ##session支持会话--enable-ftp                                     ##ftp服务--enable-pdo                                   ##驱动连接管理--enable-tokenizer                          ##PHP自带函数--enable-zip                                    ##zip压缩包

编译安装

[root@localhost php-7.1.20]# make[root@localhost php-7.1.20]# make install

配置PHP

PHP有三个配置文件,php.ini核心配置文件 php-fpm.conf进程服务配置文件

www.conf 扩展配置文件

cp php.ini-development /usr/local/php/lib/php.ini  #把核心文件复制一份出来工作目录底下vim /usr/local/php/lib/php.ini1170 行mysql.default_socket= /usr/local/mysql/mysql.sock#添加mysql   sock路径 939 行 date.timezone = Asia/Shanghai#添加时区,上海的时区/usr/local/php/bin/php -m #验证安装模块#配置及优化FPM模块[root@localhost php-7.1.20]# cd /usr/local/php/etc/[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf#开启监控PID[root@localhost etc]# vim php-fpm.confpid = run/php-fpm.pid#扩展的文件中我们复制一份出来[root@localhost etc]# cd php-fpm.d/[root@localhost php-fpm.d]# lswww.conf.default[root@localhost php-fpm.d]# cp www.conf.default www.conf#启动用sbin配置文件指向lib下的配置文件[root@localhost php-fpm.d]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini 

查看端口有没有被开启

[root@localhost php-fpm.d]# netstat -natp | grep 9000tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      92879/php-fpm: mast 

做个软链接让系统能识别PHP下的所有命令

[root@localhost php-fpm.d]# ln -s /usr/local/php/bin/* /usr/local/bin/[root@localhost php-fpm.d]#cd /usr/local/nginx/conf/[root@localhost php-fpm.d]#vim nginx.conf#让nginx能支持PHP功能#指定站点目录路径       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 conf]# systemctl stop nginx.service[root@localhost conf]# systemctl start nginx.service

修改网页文件

[root@localhost conf]# cd /usr/local/nginx/html/[root@localhost html]# ls50x.html  index.html[root@localhost html]# mv index.html  index.php[root@localhost html]#vim index.php#把原来的内容删掉,写PHP的网页

到这里我们的LNMP架构已经好了,去客户机测试一下网页

安装,配置论坛

[root@localhost html]# mysql -u root -pmysql> CREATE DATABASE bbs;  #创建数据库mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; #提权数据库当中的所有表格用户bbsuser为管理员设定密码mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';mysql> flush privileges; #刷新数据库mysql> quit[root@localhost opt]# cd ~mount.cifs //192.168.100.23/LNMP /opt/[root@localhost ~]# cd /opt/[root@localhost opt]# lsDiscuz_X3.4_SC_UTF8.zip    nginx-1.12.0.tar.gz  php-7.1.10.tar.bz2mysql-boost-5.7.20.tar.gz  nginx-1.12.2.tar.gz  php-7.1.20.tar.gz

解压安装论坛包

[root@localhost opt]# unzip Discuz_X3.4_SC_UTF8.zip -d /mnt/
[root@localhost opt]# cd /mnt/
[root@localhost mnt]# ls
dir_SC_UTF8 说明.htm
[root@localhost mnt]# cd dir_SC_UTF8/
[root@localhost dir_SC_UTF8]# ls
readme upload utility

[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs#复制/opt目录里的内容到html站点的bbs目录中
[root@localhost dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/ ##进入bbs站点目录

给程序用户提权

[root@localhost bbs]# chown -R root:nginx ./config/chown -R root:nginx ./data/chown -R root:nginx ./uc_client/chown -R root:nginx ./uc_server/chmod -R 777 ./config/chmod -R 777 ./data/chmod -R 777 ./uc_client/chmod -R 777 ./uc_server/

到网站上去加载数据包,加载论坛



登录论坛

以上就是我们全部的内容了

文件 数据 配置 目录 数据库 用户 支持 系统 路径 管理 编译 服务 变量 命令 环境 脚本 语言 字符 客户 模块 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 云南咖啡 互联网科技企业 湖南永感互联网科技有限公司 互联网科技金融 上游互联网科技 华中科技有哪些互联网大佬 阿里巴巴算科技企业还是互联网 互联网科技实习生岗位职责 全球顶尖互联网科技公司 崇明区互联网教育科技诚信经营 内蒙古九一互联网科技 电子商务与互联网科技的关系 富国互联网金融科技混合基金 普陀区互联网教育科技管理办法 同城互联网络科技 亚光科技低轨卫星互联网 北京品多多互联网科技有限公司 杭州科技互联网公司有哪些 承德科技产业互联网平台 上海旺乐尼互联网科技有限公司 华服互联网科技怎么样 金融科技 互联网金融 中国的互联网科技企业的崛起 互联网金融科技公司干啥的 互联网公司科技股 互联网公司黑科技创始人 华夏恒生科技与互联网科技 互联网科技企业商标注意事项 万物互联网智能科技 银川新华互联网科技学校是国营吗
0