LNMP架构详解
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,LNMP架构详解(需要本实验的源码包请私信我)Nginx安装挂载源码包[root@localhost ~]# smbclient -L //192.168.100.23/ #访问宿主机Enter S
千家信息网最后更新 2025年01月24日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安全错误
数据库的锁怎样保障安全
灵讯网络技术有限公司怎么样
空间数据库理论及技术
眼动成人数据库
网络安全之注入
软件开发测试与集成的实验
岳阳市网络安全培训班
dns服务器超时什么原因
服务器怎样设置能让网速快
如何做好网络安全工作教师
嘉兴游戏软件开发创新服务
溢出隐藏软件开发
返回原服务器靓号可以恢复吗
服务器搭建集群
utm网络安全教程
服务器生成pdf乱码
ado连接数据库文件后缀
网络安全股票最新视频解析
数据库表和数据库日志的时间
电商消费数据库设计
网络安全讲堂直播
云服务器可以变成公网吗
软件开发测试与集成的实验
php数据库的分析与设计
监控服务器的原理
服务器的mac地址是多少位
不用虚拟服务器可以做网站吗
r存数据到sql数据库
管理服务器的常用方式
人员与网络安全施工的保证
沈阳网络安全课程有口皆碑