LNMP架构详解
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,LNMP架构详解(需要本实验的源码包请私信我)Nginx安装挂载源码包[root@localhost ~]# smbclient -L //192.168.100.23/ #访问宿主机Enter S
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
地球化学数据库技术
cnv基因公共数据库
天津智慧养老软件开发专业制作
服务器硬盘更换托架
学软件开发linux
网络安全这个专业好不好就业
维护网络安全建言献策
香港电讯服务器
福州昂峻网络技术有限公司
晶和软件开发岗面试
嘉定区信息软件开发定制价钱
MySQL数据库创建数据表截图
爱管家网络安全教育平台
鄞州一站式软件开发工具
网络安全20种指标
巴彦淖尔市网络安全处置
如何设置系统无法连接服务器
东莞微商软件开发公司
汽车网络安全保护
软件开发定金未交齐
北京亚控科技软件开发加班
富士通液体服务器
原神怎么看才知道是哪个服务器
服务器上可以打开网站
锐思数据库怎么样
智能互联网络技术工资
串口服务器怎么接485设备
小学生网络安全班队会记录
华中科大网络安全专业就业前景
计算机网络安全的安全措施