LNMP搭建及论坛搭建

一、LNMP

LNMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,
能够提供动态Web站点服务及其应用开发环境。LNMP是一个缩写词,具体包括Linux操作系统、nginx网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。


  1. L:(平台)Linux,作为LNMP架构的基础,提供用于支撑Web站点的操作系统,
    能够与其他三个组件提供更好的稳定性,兼容性(NMP组件也支持Windows、UNIX等平台)。
  2. N:(前台)nginx,nginx网站服务,提供前端的静态页面服务。同时具有代理,转发作用。转发后端请求,转发PHP;nginx没有处理动态资源的功能,但是有可以支持转发动态请求的模块。
  3. M:(后台)MySQL,MySQL关系型数据库,保存用户的账号和密码
  4. P:(中间连接)PHP,动态页面的编程语言,负责解释动态网页文件,和nginx以及数据库协同

 二、LNMP搭建

关闭防火墙和安全机制

1. 安装 Nginx 服务

1.1 安装依赖环境

 yum -y install pcre-devel zlib-devel gcc gcc-c++ make

1.2 创建运行用户

useradd -M -s /sbin/nologin nginx

1.3 解源码包

cd /opt
tar zxvf nginx-1.22.0.tar.gz -C /opt/

 1.4 进入安装包,配置安装路径

cd nginx-1.22.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

 1.5 编译安装

make -j 4 && make install  #-j 4 给4核,加快速度

1.6 优化路径 

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

1.7  添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service
[Unit]  #这个部分定义了服务单元的元数据
Description=nginx  #描述该服务单元的信息,描述为"nginx"
After=network.target  #定义服务单元所依赖的其他单元,这里表示服务需要在网络加载完成之后启动
[Service]  #这个部分定义了服务的运行配置
Type=forking  #指定服务的类型,这里是forking,表示服务是一个后台进程(通常是fork出子进程)
PIDFile=/usr/local/nginx/logs/nginx.pid #指定保存主进程ID的文件路径,Nginx将会把主进程ID写入这个文件,以便Systemd可以追踪和管理进程
ExecStart=/usr/local/nginx/sbin/nginx  #指定启动服务的命令。这里是启动Nginx的命令/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID  #指定重新加载配置的命令。当执行此命令时,Systemd将发送HUP信号给主进程,Nginx将重新加载配置文件
ExecStop=/bin/kill -s QUIT $MAINPID  #指定停止服务的命令。当执行此命令时,Systemd将发送QUIT信号给主进程,Nginx将优雅地停止服务
PrivateTmp=true  #将此项设置为true,表示为服务提供独立的临时目录
[Install]  #这个部分定义了服务的安装配置
WantedBy=multi-user.target  #指定服务所属的目标(target),这里是multi-user.target,表示服务在多用户模式下启动

 1.8 给Nginx系统服务文件设置权限

chmod 754 /lib/systemd/system/nginx.service

 1.9 启动nginx服务

systemctl start nginx.service

验证:

2.安装 MySQL 服务

2.1  安装Mysql环境依赖包

yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

2.2 创建运行用户

useradd -M -s /sbin/nologin  mysql

2.3 解源码包

cd /opt
tar zxvf mysql-boost-5.7.20.tar.gz

2.4 进入安装包配置安装路径

cd /opt/mysql-5.7.20/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \  #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \ #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \ #指定默认使用的字符集编码,如utf8
-DDEFAULT_COLLATION=utf8_general_ci \  #指定默认使用的字符集校对规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \  #安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径
-DWITH_BOOST=boost \ #指定boost的路径,
-DWITH_SYSTEMD=1 #生成便于systemctl管理的文件

2.5 编译安装

make -j 4 && make install

2.6 修改mysql配置文件

vim /etc/my.cnf
[client]
port = 3306 #客户端连接MySQL服务器使用的端口号,默认为3306。
socket=/usr/local/mysql/mysql.sock #客户端连接MySQL服务器使用的Unix socket文件路径,默认为/tmp/mysql.sock。在该配置文件中指定的路径是/usr/local/mysql/mysql.sock[mysqld]
user = mysql #MySQL服务器运行时的用户名,一般设置为mysql
basedir=/usr/local/mysql #MySQL安装目录的路径
datadir=/usr/local/mysql/data #存放MySQL数据文件的路径
port = 3306 #MySQL服务器监听的端口号,默认为3306
character-set-server=utf8 #MySQL服务器使用的默认字符集,这里设置为UTF-8编码(utf8)
pid-file = /usr/local/mysql/mysqld.pid #保存MySQL服务器进程ID的文件路径,默认为/var/run/mysqld/mysqld.pid。在该配置文件中指定的路径是/usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock #MySQL服务器监听的Unix socket文件路径,默认为/tmp/mysql.sock。在该配置文件中指定的路径是/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0 #MySQL服务器绑定的IP地址,默认为127.0.0.1,这里设置为0.0.0.0表示允许任何IP地址访问MySQL服务器
skip-name-resolve #禁用DNS反向解析,可以提高性能,尤其是在有大量连接时
max_connections=2048 #MySQL服务器支持的最大并发连接数,默认为151,这里设置为2048
default-storage-engine=INNODB #设置默认的存储引擎为InnoDB
max_allowed_packet=16M #设置MySQL服务器接收的最大数据包大小,默认为4MB,这里设置为16MB
server-id = 1 #设置MySQL服务器的唯一ID,在主从复制设置中使用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

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

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

 2.8 设置路径环境变量

echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	source /etc/profile

2.9 初始化数据库

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 2.10 添加mysqld系统服务

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

2.11 修改mysql 的登录密码

mysqladmin -u root -p password "123456"

 2.12 授权远程登录

mysql -u root -p
show databases;grant all privileges on *.* to 'root'@'%' identified by '123456';        (有分号)
#授予root用户可以在所有终端远程登录,使用的密码是123456,并对所有数据库和所有表有操作权限flush privileges; #刷新权限

2.13  连接数据库

 

 

3.安装配置 PHP 解析环境

3.1 安装环境依赖包

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

3.2 解源码包

cd /opt
tar jxvf php-7.1.10.tar.bz2

3.3 进入安装包,配置安装路径

cd 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

3.4 编译安装

make -j 4 && make install

3.5 路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

 3.6 调整主配置文件

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
vim /usr/local/php/lib/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

php -m                     #验证安装的模块

3.7  调整进程服务配置文件

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
--17行--去掉";"注释
pid = run/php-fpm.pid

 3.8  调整扩展配置文件

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

3.9 启动php-fpm

/usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
##PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 
由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。netstat -anpt | grep 9000   #查看php服务端信息是否正确cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service

3.10 配置 Nginx 支持 PHP 解析

vim /usr/local/nginx/conf/nginx.conf
--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;
}

3.11  验证PHP 测试页

vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>

浏览器访问
http://192.168.247.30/index.php
3.12 验证数据库工作是否正常

mysql -u root -p
create database bbs;
show databases; #查看是否创建成功
GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#GRANT: 这是授权语句的关键字,用于授予特定的权限给指定用户。
#all: 表示授予所有权限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP等。
#bbs.*: 这是指定数据库和表的位置,其中bbs表示数据库名,*表示所有表。
#因此,这个语句授予bbsuser用户在bbs数据库的所有表上的所有权限。
#'bbsuser'@'%': 这是授予权限的用户和主机的标识。'bbsuser'是用户名,'%'表示任何主机。
#所以,bbsuser用户可以从任何主机连接并拥有授予的权限。
#IDENTIFIED BY 'admin123': 这是设置bbsuser用户的密码为admin123,这样用户在连接时需要提供相应的密码。GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
#这条语句与第一条类似,但是主机部分不同。'bbsuser'@'localhost'表示用户bbsuser只能从本地主机(即MySQL服务器所在的主机)连接,并拥有相同的权限。
#bbsuser用户被授予在bbs数据库的全部权限,允许从任何主机和本地主机连接MySQL服务器,并且密码为admin123.flush privileges;

3.13 替换原来的测试页内容

vim /usr/local/nginx/html/index.php      		#替换原来的测试页内容
<?php
$link=mysqli_connect('192.168.247.10','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
#使用mysqli_connect()函数连接到MySQL数据库服务器。#'192.168.247.10':表示MySQL服务器的IP地址。
#'bbsuser':表示要连接的MySQL用户。
#'admin123':表示MySQL用户的密码。
#如果连接成功,即$link不为空,就输出<h1>Success!!</h1>,显示"Success!!"这个标题。
#如果连接失败,即$link为空,就输出Fail!!,显示"Fail!!"这个信息。

浏览器访问
http://192.168.247.30/index.php

 三、部署 Discuz!社区论坛 Web 应用

cd /opt
unzip Discuz_X3.4_SC_UTF8.zip  -d /opt/dis
cd /opt/dis/dir_SC_UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/#调整论坛目录的权限:
cd /usr/local/nginx/html/bbs/
chown -R nginx ./config/
chown -R nginx ./data/
chown -R nginx ./uc_client/
chown -R nginx ./uc_server/
#或
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

论坛页面访问
http://192.168.247.10/bbs/install/index.php

 

 

 

 

 

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

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

相关文章

【无标题】uniapp引入萤石云 真机无法运行 踩坑集合

Uniapp 接入萤石云 踩坑 1.先用了 UIKit Javascript 就是在 pc端 那套流程 npm install ezuikit-jsimport EZUIKit from ezuikit-js;这套流程貌似只适用于pc端&#xff0c;我在接入uniapp的时候没看官网 以为都是一套流程&#xff0c;然后就在uniapp中也来了这一套&#xff0…

python与深度学习(十五):CNN和宝可梦模型

目录 1. 说明2. 宝可梦模型2.1 导入相关库2.2 建立模型2.3 模型编译2.4 数据生成器2.5 模型训练2.6 模型保存 3. 宝可梦的CNN模型可视化结果图4. 完整代码5. 宝可梦的迁移学习 1. 说明 本篇文章是CNN的另外一个例子&#xff0c;宝可梦模型&#xff0c;是自制数据集的例子。之前…

快速文件传输常见问题

我们所处的世界充斥着各种信息&#xff0c;能够迅速获得正确的数据往往是企业成功的关键因素。将文件从A点移动到B点需要考虑很多问题&#xff0c;但是当涉及需要在最短时间内送达全球各地收件人的大型关键任务文件时&#xff0c;就不能再使用Dropbox和 Google Drive 等方案了。…

互联网的发展

目录 1.什么是互联网 2.互联网的发展历史 3.中国互联网的发展历程 4.互联网对人们生活的影响 5.互联网给人类带来了哪些负面影响 1.什么是互联网 互联网&#xff08;Internet&#xff09;是一个全球性的计算机网络系统&#xff0c;它连接了数十亿台计算机和其他设备。它是由…

il汇编整数相加

在这里尝试了IL汇编字符串连接&#xff1b; IL汇编字符串连接_bcbobo21cn的博客-CSDN博客 下面来看一下IL汇编整数相加&#xff1b; 大概的看一下一些资料&#xff0c;下面语句&#xff0c; ldc.i4 20 ldc.i4 30 add 看上去像是&#xff0c;装载整数20到一个类似于…

无涯教程-Perl - 面向对象

Perl中的面向对象概念很大程度上基于引用以及匿名数组和哈希。让我们开始学习面向对象Perl的基本概念。 定义类 在Perl中定义一个类非常简单。类以最简单的形式对应于Perl软件包。要在Perl中创建一个类&#xff0c;我们首先构建一个包。 Perl软件包在Perl程序中提供了一个单…

EditPlus取消自动.bak备份

Tools->Preferences->File 将√取消

Vulnhub靶机DC-2 writeup

靶机介绍 靶机介绍&#xff1a;https : //download.vulnhub.com/dc/DC-2.zip ​ 信息搜集 获取IP地址 扫描靶机的IP的方法 1. nmap -sP 192.168.142.0/24 #nmap进行ping扫描发现存活主机 2. arp-scan -l #基于ARP发现内网存活主机 3. netdiscover -r 192.168.142.0/24 -…

qt富文本编辑基本知识(QTextBlockFormat、QTextListFormat)

可以参考该文章&#xff1a;QTextBlockFormat、QTextListFormat - 程序员大本营 核心知识如下&#xff1a; 如果想开发一个富文本编辑器&#xff08;html&#xff0c;markdown等常见格式&#xff09;&#xff0c;Qt已经为用户完成了几乎所有与编辑有关的具体工作&#xff0c;…

uniapp android底部弹框

uniapp android底部弹框&#xff0c;带有动画效果 <view class"popup_box"><view class"bottom_more" click"handleClickCancel"><image src"/static/images/rescue/icon_more.png"></image></view><…

AutoDL从0到1搭建stable-diffusion-webui

前言 AI绘画当前非常的火爆&#xff0c;随着Stable diffusion&#xff0c;Midjourney的出现将AI绘画推到顶端&#xff0c;各大行业均受其影响&#xff0c;离我们最近的AI绘画当属Stable diffusion&#xff0c;可本地化部署&#xff0c;只需电脑配备显卡即可完成AI绘画工作&…

Git常见问题

git clone 提示OpenSSL SSL_read git clone 时提示Connection was reset, errno 10054类错误 fatal: unable to acce ss https://github.com/fex-team/ueditor.git/: OpenSSL SSL_read: Connection was reset, errno 10054 备注&#xff1a;以下方法只是归纳整理&#xff0c;…

使用事件侦听器和 MATLAB GUI 查看 Simulink 信号研究

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

仓库管理系统有哪些功能,如何对仓库进行有效管理

阅读本文&#xff0c;您可以了解&#xff1a;1、仓库管理系统有哪些功能&#xff1b;2、如何对仓库进行有效管理。 仓库是制造业的开端&#xff0c;原材料的领料开始。企业的仓库管理是涉及企业生产、企业资金流和企业的经营风险的关键环节。在众多的工业企业、制造型企业、贸…

Linux 安装软件 - yum工具

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行…

FFmpeg下载安装及Windows开发环境设置

1 FFmpeg简介 FFmpeg&#xff1a;FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。项目的名称来自MPEG视频编码标准&#xff0c;前面的"FF"代表…

mysql函数及用法

目录 一、前言 二、函数 2.1五大聚合函数 2.2 日期函数 3.字符串函数 三. 总结&#xff1a; 一、前言 mySQL 是一种常见的关系型数据库管理系统&#xff0c;提供了大量的函数可以帮助开发者有效地操作和管理数据库。mySQL根据这些函数将数据更好的进行操作&#xff0c;从…

《向量数据库》——怎么安装向量检索库Faiss?

装 Faiss 以下教程将展示如何在 Linux 系统上安装 Faiss: 1. 安装 Conda。 在安装 Faiss 之前,先在系统上安装 Conda。Conda 是一个开源软件包和环境管理系统,可在 Windows、macOS 和 Linux 操作系统上运行。根据以下步骤在 Linux 系统上安装 Conda。 2. 从官网…

Python:Spider爬虫工程化入门到进阶(1)创建Scrapy爬虫项目

Python&#xff1a;Spider爬虫工程化入门到进阶系列: Python&#xff1a;Spider爬虫工程化入门到进阶&#xff08;1&#xff09;创建Scrapy爬虫项目Python&#xff1a;Spider爬虫工程化入门到进阶&#xff08;2&#xff09;使用Spider Admin Pro管理scrapy爬虫项目 本文通过简…

MySQL 重置root 密码

5.7 版本 首先要把服务mysql57 关闭 net stop MySQL57 在安装的mysql57的程序的bin中 运行cmd&#xff08;管理员运行&#xff09; mysqld --defaults-file‘mysql存放数据的位置\my.ini’ --skip-grant-tables 上图 错误 注意&#xff1a;如果遇到mysqld: Can’t change dir…