LNMP架构(搭建论坛+博客)

目录

一、LNMP架构概述

1、LNMP架构的概念

2、LNMP架构的优点

二、编译安装nginx软件

1、准备工作

1.1 关闭防火墙

1.2 安装依赖包

1.3 创建运行nginx用户

1.4 压缩包解压

2、编译与安装

3、添加nginx自启动文件

三、编译安装mysql软件

1、准备工作

1.1 安装mysql环境依赖包

1.2 创建运行的mysql用户

1.3 压缩包解压

2、编译与安装

3、修改mysql配置文件

4、更改mysql安装目录和配置文件的属主属组

5、初始化数据库

6、添加mysql自启动文件

7、修改mysql的登录密码

四、编译安装php软件

1、准备工作

1.1 安装php环境依赖包

1.2 压缩包解压

2、编译与安装

3、调整php的三大配置文件

3.1 调整主配置文件

3.2 调整进程服务配置文件

3.3 调整扩展配置文件

4、添加php开机自启动文件

五、配置nginx支持php解析

1、修改nginx的主配置文件

2、验证php测试页

3、测试数据库工作是否正常

六、安装论坛

1、压缩包解压

2、修改论坛目录权限

3、安装论坛并登录

4、注册论坛用户并使用

七、安装博客

1、压缩包解压

2、修改博客目录权限

3、创建数据库的blog用户信息

4、安装博客并登录


一、LNMP架构概述

1、LNMP架构的概念

LNMP架构是一种典型的Web服务器架构,它由Linux、Nginx、MySQL和PHP(或Python、Perl)四个开源软件组成。LNMP架构的主要特点是高性能、高稳定性和高可靠性

  • Linux:作为操作系统,提供了稳定的运行环境

  • Nginx:作为Web服务器,具有高性能和高并发处理能力,可以作为反向代理服务器,负责接收用户的请求并将请求转发给后端的应用服务器

  • MySQL:作为关系型数据库,提供了数据存储和管理的功能

  • PHP(或Python、Perl):作为服务器端脚本语言,用于处理用户的请求,生成动态的网页内容

2、LNMP架构的优点

  • 高性能:Nginx和MySQL都是高性能的开源软件,可以提供快速的数据处理和响应速度
  • 高稳定性:Linux作为操作系统,提供了稳定的运行环境,可以保证系统的稳定性
  • 高可靠性:LNMP架构的各个组件都是开源软件,有大量的用户和开发者,可以提供良好的技术支持和维护

总之,LNMP架构在Web开发和运维中得到了广泛的应用,特别是在高并发和大数据量的场景下,可以提供良好的性能和稳定性

二、编译安装nginx软件

在同一个服务器上配置Nginx、MySQL和PHP服务

1、准备工作

1.1 关闭防火墙

[root@localhost ~]#systemctl disable --now  firewalld
[root@localhost ~]#setenforce 0

1.2 安装依赖包

[root@localhost ~]#yum -y install pcre-devel zlib-devel gcc gcc-c++ make

1.3 创建运行nginx用户

# Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限
[root@localhost ~]#useradd -M -s /sbin/nologin nginx

1.4 压缩包解压

#这里将nginx安装包存放在/opt目录下
[root@localhost ~]#cd /opt[root@localhost opt]#tar zxvf nginx-1.22.0.tar.gz

2、编译与安装

[root@localhost opt]#cd /opt/nginx-1.22.0/
[root@localhost nginx-1.22.0]#./configure \ 
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module[root@localhost nginx-1.22.0]#make && make install#设置软连接,让系统识别nginx的操作命令可以自动补全nginx,$PATH
[root@localhost nginx-1.22.0]#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

 3、添加nginx自启动文件

#配置nginx自启动文件
[root@localhost ~]#vim /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=/bin/kill -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target#重新加载配置
[root@localhost ~]#systemctl daemon-reload[root@localhost ~]#chown -R nginx.nginx /lib/systemd/system/nginx.service
或者chmod 777 /lib/systemd/system/nginx.service[root@localhost ~]#systemctl enable --now nginx.service

三、编译安装mysql软件

1、准备工作

1.1 安装mysql环境依赖包

[root@localhost ~]#yum -y install ncurses ncurses-devel bison cmake
[root@localhost ~]#yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

1.2 创建运行的mysql用户

# Mysql服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限
[root@localhost ~]#useradd -M -s /sbin/nologin  mysql

1.3 压缩包解压

#这里将mysql安装包存放在/opt目录下
[root@localhost ~]#cd /opt
[root@localhost opt]#tar zxvf mysql-boost-5.7.20.tar.gz

2、编译与安装

[root@localhost opt]#cd /opt/mysql-5.7.20/
[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_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[root@localhost mysql-5.7.20]#make && make install#设置路径环境变量,让系统识别mysql的操作命令可以自动补全mysql
[root@localhost mysql-5.7.20]#echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@localhost mysql-5.7.20]#source /etc/profile

3、修改mysql配置文件

[root@localhost ~]#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 = 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

4、更改mysql安装目录和配置文件的属主属组

[root@localhost ~]#chown -R mysql:mysql /usr/local/mysql/
[root@localhost ~]#chown mysql:mysql /etc/my.cnf

5、初始化数据库

[root@localhost ~]#cd /usr/local/mysql/bin/
[root@localhost bin]#./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

6、添加mysql自启动文件

#mysql的自启动文件在安装包已有,只要复制到系统规定目录即可
[root@localhost ~]#cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost ~]#systemctl daemon-reload
[root@localhost ~]#systemctl enable --now mysqld

7、修改mysql的登录密码

#给root账号设置密码为abc123,提示输入的是原始密码(为空)要求输入的是原密码直接回车即可
[root@localhost ~]#mysqladmin -u root -p password "abc123"

#现在可以被授权远程登录到mysql
[root@localhost ~]#mysql -u root -pabc123      #ctrl+z退出

四、编译安装php软件

1、准备工作

1.1 安装php环境依赖包

[root@localhost ~]#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

1.2 压缩包解压

#这里将php安装包存放在/opt目录下
[root@localhost ~]#cd /opt
[root@localhost opt]#tar jxvf php-7.1.10.tar.bz2

2、编译与安装

[root@localhost opt]#cd /opt/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 \
--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[root@localhost php-7.1.10]#make && make install设置软连接,让系统识别php的操作命令可以自动补全php,$PATH
[root@localhost php-7.1.10]#ln -s /usr/local/php/bin/* /usr/local/bin/
[root@localhost php-7.1.10]#ln -s /usr/local/php/sbin/* /usr/local/sbin/

3、调整php的三大配置文件

php有三个配置文件: 

  • php.ini:主配置文件  
  • php-fpm.conf:进程服务配置文件 
  • www.conf:扩展配置文件

3.1 调整主配置文件

[root@localhost ~]#cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
[root@localhost ~]#vim /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock     #第1170行修改date.timezone = Asia/Shanghai                           #第939行去掉注释

3.2 调整进程服务配置文件

[root@localhost ~]#cd /usr/local/php/etc/
[root@localhost etc]#cp  php-fpm.conf.default php-fpm.conf
[root@localhost etc]#vim php-fpm.conf
pid = run/php-fpm.pid     #第17行去掉注释";"

3.3 调整扩展配置文件

[root@localhost ~]#cd /usr/local/php/etc/php-fpm.d/
[root@localhost php-fpm.d]#cp www.conf.default www.conf

4、添加php开机自启动文件

#mysql的自启动文件在安装包已有,只要复制到系统规定目录即可
[root@localhost ~]#cd /opt/php-7.1.10/sapi/fpm
[root@localhost fpm]#cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
[root@localhost fpm]#systemctl daemon-reload
[root@localhost fpm]#systemctl enable --now php-fpm.service

五、配置nginx支持php解析

1、修改nginx的主配置文件

[root@localhost ~]#vim /usr/local/nginx/conf/nginx.conf
#第45行修改
index  index.html index.htm  index.php;#第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;
}[root@localhost ~]#systemctl restart nginx.service

2、验证php测试页

#服务器操作
[root@localhost ~]#vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
#客户端浏览器测试
http://172.16.12.12/index.php

3、测试数据库工作是否正常

#服务器操作
[root@localhost ~]#mysql -u root -pabc123
CREATE DATABASE bbs;
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;[root@localhost ~]#vim /usr/local/nginx/html/index.php   #替换原来测试页内容
<?php
$link=mysqli_connect('172.16.12.12','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

#客户端浏览器测试
http://172.16.12.12/index.php

六、安装论坛

1、压缩包解压

[root@localhost ~]#cd /opt
[root@localhost opt]#unzip Discuz_X3.4_SC_UTF8.zip  
[root@localhost opt]#cd /opt/dir_SC_UTF8/
[root@localhost dir_SC_UTF8]#cp -r upload/ /usr/local/nginx/html/bbs/

2、修改论坛目录权限

[root@localhost ~]chmod -R 777 ./config/
[root@localhost ~]chmod -R 777 ./data/
[root@localhost ~]chmod -R 777 ./uc_client/
[root@localhost ~]chmod -R 777 ./uc_server/

3、安装论坛并登录

#客户端服务器访问
http://172.16.12.12/bbs/install/index.php数据库服务器:localhost     #本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:123

4、注册论坛用户并使用

七、安装博客

1、压缩包解压

[root@localhost ~]#cd /opt
[root@localhost opt]#unzip wordpress-6.1.1-zh_CN.zip  
[root@localhost opt]#cp -r wordpress  /usr/local/nginx/html/

2、修改博客目录权限

[root@localhost ~]#cd /usr/local/nginx/html/
[root@localhost ~]#chmod 777 wordpress/ -R

3、创建数据库的blog用户信息

[root@localhost ~]#mysql -u root -p abc123
CREATE DATABASE blog;
GRANT all ON blog.* TO 'bloguser'@'%' IDENTIFIED BY 'admin123';
GRANT all ON blog.* TO 'bloguser'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

4、安装博客并登录

http://172.16.12.12/wordpress/wp-admin/install.php
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/709348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

width:100%和width:auto有啥区别

项目中使用了with属性&#xff0c;突然好奇auto 和 100% 的区别&#xff0c;特地搜索实践总结了一下观点 一、 width属性介绍二、 代码带入三、 分析比较四、 总结 一、 width属性介绍 width 属性用于设置元素的宽度。width 默认设置内容区域的宽度&#xff0c;但如果 box-siz…

Vue3切换路由白屏刷新后才显示页面内容

1.首先检查页面路由以及页面路径配置是否配置错误。 在router-view 中给路由添加key标识。 &#xff01;&#xff01;注意&#xff1a;有使用layout封装布局的&#xff0c;是在layout下的主页面中的 router-view 添加标识&#xff0c;不是在src根目录下main.vue中修改&#xf…

基于vue-office实现docx、xlsx、pdf文件的在线预览

概述 在做项目的时候会遇到docx、xlsx、pdf等文件的在线预览需求&#xff0c;实现此需求可以有多种解决方式&#xff0c;本文基于vue-office实现纯前端的文件预览。 效果 如下图&#xff0c;分别为docx、xlsx、pdf三种类型的文件在线加载后的效果。你也可以访问官方预览网址…

sawForceDimensionSDK安装,sigma7+ros

force dimension的sdk中没有关于ros&#xff0c;借助开源的sawForceDimensionSDK实现对于数据的封装和可视化&#xff0c;方便后续使用 链接&#xff1a; GitHub - jhu-saw/sawForceDimensionSDK 具体步骤&#xff1a; 安装qt和ros&#xff0c;官网下载Force Dimension SDK …

小马识途营销顾问解析舆情处置方法

大部分知名企业都逃不过负面舆情这一关&#xff0c;有负面不一定企业就不规范&#xff0c;产品就不好。其实&#xff0c;企业做大了&#xff0c;难以做到尽善尽美&#xff0c;有时候是同行不正当竞争造成的…… 总之&#xff0c;网络平台上面的负面舆情信息的影响不可小视&…

什么是回表、索引覆盖、索引下推【重点】

参考链接 【1】https://xiaolincoding.com/mysql/index/index_interview.html#%E6%8C%89%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E5%88%86%E7%B1%BB 【2】https://www.toutiao.com/article/7095749260137726476/?wid1709192807222 【3】https://zhuanlan.zhihu.com/p/401198674…

算法沉淀——动态规划之两个数组的 dp(下)(leetcode真题剖析)

算法沉淀——动态规划之两个数组的 dp 01.正则表达式匹配02.交错字符串03.两个字符串的最小ASCII删除和04.最长重复子数组 01.正则表达式匹配 题目链接&#xff1a;https://leetcode.cn/problems/regular-expression-matching/ 给你一个字符串 s 和一个字符规律 p&#xff0c…

产品经理岗位的任职资格和职业规划

产品经理主要是商业银行以客户为导向的&#xff0c;具体负责组织银行某一金融产品线的创新设计、生产营销和管理服务的工作。这类人士主要负责应用实施工作&#xff0c;其中产品线由一系列的产品构成&#xff0c;公司的产品经理主要分为全过程产品创新设计专家、全过程产品生产…

武汉灰京文化:跨平台和云游戏,手游行业的未来发展趋势

随着科技的不断进步和智能设备的普及&#xff0c;手游行业正迎来新的发展机遇。武汉灰京文化认为&#xff0c;在这个过程中&#xff0c;跨平台游戏和云游戏作为两大关键技术将推动手游行业迈向更加丰富、便捷和多元化的发展。 跨平台游戏的出现将为玩家带来全新的游戏体验。在…

java常用环境docker安装

配置目录 rocketmqredismysql不配置binlog配置binlog Nacoszookeeper 本文为精简安装&#xff0c;部分不带容器卷映射&#xff0c;仅供以学习使用。 rocketmq nameservice sudo docker run -d \ --privilegedtrue \ --name rmqnamesrv \ -p 9876:9876 \ -e "MAX_HEAP_SI…

visio、ppt、office等另存图片,如何设置更清晰

visio、ppt、office等另存图片&#xff0c;如何设置更清晰 选中要另存为的部分——文件——另存为——选好位置——格式选jpg——保存——按下图设置&#xff1a;质量100%&#xff0c;分辨率选打印机&#xff0c;大小选屏幕——确定

android开发前景2019,android高级面试framework

到底是公司养活了我&#xff0c;还是我养活了公司&#xff1f; 1. 很难在一家公司干到退休 在我父母那一代&#xff0c;一个上班的职工&#xff0c;往往可以在一家单位干到退休&#xff0c;名副其实的“铁饭碗”。甚至更早之前的年代&#xff0c;职工的子女还可以接父母的班&a…

计算机专业大学四年应该如何规划(Java方向)

计算机专业的学生&#xff0c;如何在大学四年内提高自己的竞争力&#xff0c;毕业之后直接进大厂工作&#xff1f; 以下将从大学四年计算机专业的学习规划、课程设置、能力提升、参考书籍等方面&#xff0c;为同学们提供一些建议和指导。 大一&#xff1a; 主攻技能学习并且达…

数据结构之数组

一、定义 数组&#xff08;Array&#xff09;是一种用连续的内存空间存储相同数据类型数据的线性数据结构。 二、内存结构 1.创建数组 我们创建一个数组 int[] array {22,33,88,66,55,25} &#xff0c;在内存结构如下图所示&#xff1a; 首先创建了array数组&#xff0c;会…

Node.js基础---npm与包

包 概念&#xff1a;Node.js 中的第三方模块又叫做包 来源&#xff1a;由第三方个人或团队开发出来的&#xff0c;免费使用&#xff0c;且为开源 为什么需要&#xff1a;Node.js的内置模块只有一些底层API&#xff0c;开发效率低 包是基于内置模块封装出来的&#xff0c;提供更…

python实现跨进程(跨py文件)通信01

前言 项目中总会遇到数据需要跨进程通信的问题&#xff0c;今天就给大家带来一套简单的跨进程通信代码。代码分为服务端与客户端两部分。 一、server端 import multiprocessing import timedef do_socket(conn, addr, ):try:while True:if conn.poll(1) False:time.sleep(0…

ZCANPRO基础操作流程

硬件准备 测试单关节需要准备如下工具&#xff1a; 电源&#xff1a; 推荐使用20-27V直流电源。关节峰值功率为额定功率的三倍。 CAN卡&#xff1a; 推荐使用周立功USB转CANFD卡&#xff0c;我们的单关节测试软件适配了该型号CAN卡驱动。 WHJ系列关节模组 WHJ系列关节模组包含…

2024最新大厂Android面试真题解析,三年老Android经验面经

前言 不知道大家面试的时候&#xff0c;有没有遇到这种情况&#xff0c;面试工资谈的是10K&#xff0c;最后干着40K的活&#xff01;说着冠冕堂皇&#xff0c;提升大家能力的话&#xff0c;做着死命压榨员工&#xff0c;996成了程序员心里的魔咒&#xff01; 初级安卓开发工程…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的活体人脸检测系统(Python+PySide6界面+训练代码)

摘要&#xff1a;本篇博客详细讲述了如何利用深度学习构建一个活体人脸检测系统&#xff0c;并且提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并进行了与前代算法YOLOv7、YOLOv6、YOLOv5的细致对比&#xff0c;展示了其在图像、视频、实时视频流和批量文件处…