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 = 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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

循环队列的实现

文章目录 循环队列的概念循环队列的实现循环队列的判空和判满链表or数组 循环队列的概念 设计你的循环队列实现。 循环队列是一种线性数据结构&#xff0c;其操作表现基于 FIFO&#xff08;先进先出&#xff09;原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓…

网站文章被百度快速收录的工具

百度是中国最主要的搜索引擎之一&#xff0c;对于网站管理员来说&#xff0c;网站文章被百度快速收录是至关重要的&#xff0c;因为这直接影响着文章的曝光和网站的流量。然而&#xff0c;许多网站管理员都会问一个常见的问题&#xff1a;文章百度收录需要几天&#xff1f;在这…

【HTML】HTML基础1(第一个网站!)

目录 软件使用 HTML的基本结构 案例示范 用记事本编写网页 软件使用 注释&#xff1a;<!-- -->中的内容是注释内容&#xff0c;自己写代码的时候可以没有&#xff01; HTML的基本结构 <!DOCTYPE html> <!-- 文档声明&#xff0c;位于文档最前面位置 -->…

STM32 IIC协议基础概念

文章目录 前言一、IIC协议介绍二、IIC硬件框图和程序层次三、IIC协议1.IIC协议通信流程2.IIC的引脚为什么需要加入上拉电阻3.IIC的引脚为什么需要配置为开漏输出 四、STM32 IIC硬件结构总结 前言 本篇文章将带大家学习IIC通信协议的一些基础概念和使用。 一、IIC协议介绍 I2…

国产数据库兼容性认证再下两城,极狐GitLab 国产适配更进一步

近日&#xff0c;极狐GitLab 与两大国产数据库 TDSQL 和人大金仓完成兼容性认证。极狐GitLab 在国产化适配、国产化生态建设上有了进一步的发展。 极狐GitLab 团队分别和 TDSQL 和人大金仓数据库团队做了严格的测试验证&#xff0c;完成了这两大国产数据库和极狐GitLab 企业级一…

面试题JS篇

目录 Js 基本数据类型有哪些Ajax 如何使用如何判断一个数据是 NaN&#xff1f;Js 中 null 与 undefined 区别闭包是什么&#xff1f;有什么特性&#xff1f;对页面会有什么影响JS中模块化的方法Js 中常见的内存泄漏什么是事件冒泡&#xff1f;如何阻止事件冒泡&#xff1f;事件…

服务器git安装python包失败,如何手动下载github项目包并安装到虚拟环境中(简单易懂)

背景&#xff1a; 想要复现一个项目&#xff0c;建立好虚拟环境后&#xff0c;准备安装项目需要的包&#xff0c;故输入命令pip install -r requirements.txt requirements.txt如下图 其他包我都安装成功了&#xff0c;只有最后一个包失败了&#xff0c;是需要服务器git链接…

CUDA C:查看GPU设备信息

相关阅读 CUDA Chttps://blog.csdn.net/weixin_45791458/category_12530616.html?spm1001.2014.3001.5482 了解自己设备的性能是很有必要的&#xff0c;为此CUDA 运行时(runtime)API给用户也提供了一些查询设备信息的函数&#xff0c;下面的函数用于查看GPU设备的一切信息。 …

Android PDFView 提示401 pom

背景 在开发安卓app&#xff0c;使用PDF组件来解析URL地址 &#xff0c;从github找到一个开源组件 AndroidPdfViewer 遇到一个大坑&#xff0c;一直提示下载依赖401 pom 打开控制台链接弹出需要登录jitpack 原因分析&#xff1a; 这个组件项目依赖库链接到了需要鉴权的…

VuePress + GitHub 搭建个人博客踩坑记录

最近想给我教练搭个网站,本来选的是 VuePress 框架,也折腾完了,起码是搭建出来了,踩的坑也都总结好了 但是最近发现了一个更简洁的模板: VuePress-theme-hope ,所以最终网站使用的样式是这个 不过我觉得这里面踩坑的记录应该还是有些价值的,分享出来,看看能不能帮到一些小伙伴~…

ODOO12设置收发邮件服务器教程

一、设置-技术 二、设置–技术–发件服务器 信息填写完整后&#xff0c;点击‘测试连接’&#xff0c;若提示成功&#xff0c;则发件服务器设置成功。 三、设置–技术–收件服务器 四、设置–参数–系统参数 修改之前的email系统参数&#xff1a; mail.catchall.alias: 收件服…

【Maven】Maven 基础教程(二):Maven 的使用

《Maven 基础教程》系列&#xff0c;包含以下 2 篇文章&#xff1a; Maven 基础教程&#xff08;一&#xff09;&#xff1a;基础介绍、开发环境配置Maven 基础教程&#xff08;二&#xff09;&#xff1a;Maven 的使用 &#x1f60a; 如果您觉得这篇文章有用 ✔️ 的话&#…

「MySQL」基本操作类型

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;数据库 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 数据库的操作 创建、显示数据库 使用 create 创建一个数据库 create database goods;然后可以用 show databases 来查看已经创建的数…

人大金仓与mysql的差异与替换

人大金仓中不能使用~下面的符号&#xff0c;字段中使用”&#xff0c;无法识别建表语句 创建表时语句中只定义字段名.字段类型.是否是否为空 Varchar类型改为varchar&#xff08;长度 char&#xff09; Int(0) 类型为int4 定义主键&#xff1a;CONSTRAINT 键名 主键类型&#x…

32单片机基础:TIM输出比较

这个输出比较功能是非常重要的&#xff0c;它主要是用来输出PWM波形,PWM波形又是驱动电机的必要条件&#xff0c;所以你如果想用STM32做一些有电机的项目&#xff0c;比如智能车&#xff0c;机器人等。 IC: Input Capture 输入捕获 CC:Capture/Compare一般表示输入捕获和输出…

爱心商城|爱心商城系统|基于Springboot的爱心商城系统设计与实现(源码+数据库+文档)

爱心商城系统目录 目录 基于Springboot的爱心商城系统设计与实现 一、前言 二、系统功能设计 三、系统功能设计 1、商品管理 2、捐赠管理 3、公告管理 4、公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#x…

spring boot学习第十三篇:使用spring security控制权限

该文章同时也讲到了如何使用swagger。 1、pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instanc…

华为配置WLAN高密业务示例

配置WLAN高密业务示例 组网图形 图1 配置高密WLAN环境网络部署组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 体育场由于需要接入用户数量很大&#xff0c;AP间部署距离较小&#xff0c;因此AP间的干扰较大&#xff0c;可能导致用户上网网…

PostgreSQL从入门到精通教程 - 第45讲:poc-tpcc测试

PostgreSQL从小白到专家&#xff0c;是从入门逐渐能力提升的一个系列教程&#xff0c;内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容&#xff0c;希望对热爱PG、学习PG的同学们有帮助&#xff0c;欢迎持续关注CUUG PG技术大讲堂。 第45讲&#…

【知识整理】Git 使用实践问题整理

问题1、fatal: refusing to merge unrelated histories 一、Git 的报错 fatal: refusing to merge unrelated histories 新建了一个仓库之后&#xff0c;把本地仓库进行关联提交、拉取的时候&#xff0c;出现了如下错误&#xff1a; fatal: master does not appear to be a g…