LNMP部署

news2024/11/25 2:53:50

LNMP部署

  • 一、安装Nginx服务
  • 二、安装mysql服务
  • 三、安装配置PHP解析环境
  • 四、部署 Discuz!社区论坛 Web 应用
  • 五、fpm参数优化

LNMP架构:

  • LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构
  • Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、Ubuntu、fedora、gentoo等
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器
  • Mysql是一个小型关系型数据库管理系统
  • PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
    是四种软件均为免费开源软件,组合到一起,称为一个免费,高效,扩展性强的网站服务系统

一、安装Nginx服务

1、安装依赖包
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
在这里插入图片描述
2、创建运行用户
useradd -M -s /sbin/nologin nginx
3、编译安装
./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
–with-http_stub_status_module
在这里插入图片描述
make -j4 && make install
4、优化路径
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5、添加 Nginx 系统服务
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 -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
在这里插入图片描述
systemctl start nginx
在这里插入图片描述

二、安装mysql服务

1、安装Mysql环境依赖包
yum -y install
ncurses
ncurses-devel
bison
cmake
在这里插入图片描述
2、创建运行用户
useradd -M -s /sbin/nologin mysql
3、编译安装
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
在这里插入图片描述
make -j4 && make install
4、修改mysql 配置文件

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
在这里插入图片描述
5、更改mysql安装目录和配置文件的属主属组
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
6、设置路径环境变量
echo ‘export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile
source /etc/profile 刷新
7、初始化数据库
cd /usr/local/mysql/bin/
./mysqld
–initialize-insecure
–user=mysql
–basedir=/usr/local/mysql
–datadir=/usr/local/mysql/data
在这里插入图片描述
8、添加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
9、修改mysql 的登录密码
mysqladmin -u root -p password “abc123”
在这里插入图片描述
10、授权远程登录
在这里插入图片描述
在这里插入图片描述

三、安装配置PHP解析环境

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
2、编译安装
在这里插入图片描述
./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、路径优化
ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/
4、调整PHP配置文件
php有三个配置文件:
php.ini 主配置文件
php-fpm.conf 进程服务配置文件
www.conf 扩展配置文件

  • 调整主配置文件
    cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini
    vim /usr/local/php/lib/php.ini
    在这里插入图片描述
    在这里插入图片描述
  • 调整进程服务配置文件
    cd /usr/local/php/etc/
    cp php-fpm.conf.default php-fpm.conf
    vim php-fpm.conf
    在这里插入图片描述
  • 调整扩展配置文件
    cd /usr/local/php/etc/php-fpm.d/
    cp www.conf.default www.conf
    5、启动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 进程进行解析。
    cd /opt/php-7.1.10/sapi/fpm
    cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
    systemctl restart php-fpm.service
    6、配置 Nginx 支持 PHP 解析
    vim /usr/local/nginx/conf/nginx.conf
    在这里插入图片描述
    7、验证PHP 测试页
    vim /usr/local/nginx/html/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/
调整论坛目录的权限
chown -R nobody: bbs/
然后浏览器访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
数据库服务器:localhost ###本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
在这里插入图片描述
在这里插入图片描述

五、fpm参数优化

Nginx的PHP解析功能实现如果是交由FPM处理的,为了提高PHP的处理速度,可对FPM模块进行参数的调整
根据服务器的内存与服务负载,调整FPM模块参数
vim /usr/local/php/etc/php-fpm.conf
在这里插入图片描述
vim /usr/local/php/etc/php-fpm.d/www.conf
在这里插入图片描述
–96行–
pm = dynamic #fpm进程启动方式,动态的
–107行–
pm.max_children=20 #fpm进程启动的最大进程数
–112行–
pm.start_servers = 5 #动态方式下启动时默认开启的进程数,在最小和最大之间
–117行–
pm.min_spare_servers = 2 #动态方式下最小空闲进程数
–122行–
pm.max_spare_servers = 8 #动态方式下最大空闲进程数

kill -USR2 cat /usr/local/php/var/run/php-fpm.pid #重启php-fpm
netstat -anpt | grep 9000
ps -elf | grep php-fpm

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

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

相关文章

【P47】JMeter JSON断言(JSON Assertion)

文章目录 一、JSON断言(JSON Assertion)参数说明二、准备工作三、测试计划设计3.1、Assert JSON Path exists3.2、Additionally assert value3.3、Expect null3.4、Invert assertion (will fail if above conditions met) 一、JSO…

双链表、循环链表、静态链表

目录 一、双链表1、为什么要引入双链表2、双链表的插入操作3、双链表的插入操作 二、循环链表1、循环单链表2、循环双链表 三、静态链表 一、双链表 1、为什么要引入双链表 单链表结点中只有一个指向其后继的指针,使得单链表只能从头结点依次顺序地向后遍历。要访…

数据治理核心保障数据质量监控开源项目Apache Griffin分享

文章目录 概述定义为何要做数据质量监控基本概念特性架构 安装Docker部署Docker 镜像批处理使用Docker 镜像流处理使用UI界面操作 概述 定义 Apache Griffin 官网地址 https://griffin.apache.org/ 源码release最新版本0.6.0 Apache Griffin 官网文档地址 https://griffin.apa…

MySQL学习(联结,组合查询,全文本搜索)

联结 SQL最强大的功能之一就是能在数据检索查询的执行中联结表; 关系表 为什么要使用关系表? 使用关系表可以储存数据不重复,从而不浪费时间和空间;如果有数据信息变动,只需更新一个表中的单个记录,相关…

研发工程师玩转Kubernetes——Node失效后的Pod的调度实验

在《研发工程师玩转Kubernetes——多Worker Node部署》中,我们创建了Master Node: UbunutA,以及四个Worker Node:UbunutB、UbunutC、UbunutD和UbunutE。本节我们将使用Deployment创建只含有一个nginx的Pod,然后关掉它所在的主机以模拟Node失效…

使用Adobe Acrobat DC对.jpg和.png格式图片转换为.eps图片格式举例

使用Adobe Acrobat DC对.jpg和.png等格式图片转换为.eps图片格式举例 在进行有的文档排版编辑时候(比如使用winEdt进行排版CTEX文件时候),需要添加.eps格式的图片,然而电脑中的画图,word和ppt等中无法实现.eps格式图片…

centos7 glib2.0 arm版本的编译

最近在看bluez代码,想编译个例子来玩一下,然后bluez里的例子会用到 libglib-2.0 库里的接口,于是开始了漫长的编译 arm 版本的 libglib-2.0,Linux 系统有时就是很麻烦,要编译一个库,结果发现依赖一大堆库&a…

Linux命令学习之帮助命令man

cat /proc/version和uname -a可以查看CentOS内核使用版本。 我使用的Linux操作系统发行版本号是7.6.1810,可以通过cat /etc/redhat-release进行查看。 man man是manual的缩写,是操作说明的意思。 使用man touch想要看一下touch的使用帮助,…

OpenMMLab开营笔记

摘要 很高兴能加入OpenMMLab AI实战营,成为第二期4班的一名学员。OpenMMLab经过几年的发展和沉淀,其开源项目已经覆盖到计算机视觉的各个领域。OpenMMLab 为香港中文大学-商汤科技联合实验室 MMLab 开源的算法平台,不到两年时间,…

文件操作之文件包含全解(41)

<!#include file”1.asp”--> 作者&#xff1a;沙漠里的鲸 https://www.bilibili.com/read/cv14178731/ 出处&#xff1a;bilibili 文件包含的作用就是将这个文件包含进去之后&#xff0c;会调用指定文件的代码。先将文件包含才能执行里面的一些相关代码&#xff0c;比如…

SAP-MM-标准报表路径

一、SAP MM模块系统自带的标准报表很多&#xff0c;常见报表都放在每个主题的“清单显示”和“报表”文件夹下&#xff0c;如下图所示&#xff1a; 二、另外&#xff0c;还有一些报表&#xff0c;放在另外一个地方&#xff0c;需要时&#xff0c;可以随时进行查看&#xff0c;前…

陷入困境?Taos创建超表带来的错误!

taos创建超表时报错 运行如下命令 let res await cursor.query("CREATE STABLE meters1 (ts TIMESTAMP, value FLOAT, slot INT,rack INT,nameId VARCHAR(32),adName VARCHAR(32),dbNumber INT,dataType VARCHAR(28), unit VARCHAR(28)) TAGS (location binary(64), gr…

2GT齿轮的齿形参数

文章目录 2GT齿轮的齿形参数概述笔记齿的种类方形齿半圆弧齿全圆弧齿精确圆弧齿修正圆弧齿梯形齿齿形参数用SW画一个2GT齿END 2GT齿轮的齿形参数 概述 零件上用到了2GT的同步轮和惰轮, 想在装配图上将2个齿轮皮带都画上, 看看有没有干涉. 整体修改是否合理. 在淘宝店家的主页…

Linux系统下imx6ull QT编程——开发环境及 U盘拷贝文件(十)

Linux QT编程 文章目录 Linux QT编程前言一、开发环境二、文件拷贝 前言 前面学习了一些基础&#xff0c;然后qt我也有学过&#xff0c;直接动手在开发板上进行编程吧&#xff0c;但是开发板需要安装环境&#xff0c;需要拷贝一些文件&#xff0c;我使用得是U盘。 一、开发环…

【C++进阶5-红黑树】噩梦般的存在?手提AVLTree暴揍红黑树!

今天&#xff0c;带来无数人的噩梦——红黑树的讲解。文中不足错漏之处望请斧正&#xff01; 如果还没看过AVLTree讲解的一定要去看看&#xff0c;看完才能更好理解红黑树&#xff01; 是什么 红黑树是自平衡的二叉搜索树。 红黑树的规则: 每个结点非黑即红 根结点为黑叶子…

程序设计综合实习(C语言):考勤管理系统

一、目的 1&#xff0e;调动创新能力的培养 二、实习环境 Visual Studio 2022 三、实习内容与步骤 问题描述&#xff1a; 每个员工信息包括工号、姓名、年龄、性别、部门等&#xff1b; 功能要求&#xff1a; &#xff08;1&#xff09;能够增加、删除、修改员工信息。 &…

[CTFTraining] ASIS CTF 2019 Quals Unicorn shop

​ 我们随便买一件商品&#xff0c;1~3都显示&#xff1a; ​ 只有第4个显示&#xff1a; ​ 只允许输入一个字符&#xff0c;题目叫Unicorn&#xff0c;猜测为Unicode。在Unicode - Compart搜索比千大的Unicode码&#xff1a; ​ 最后填进去买下商品得到flag。 另外&#…

CDGA 认证:第四章 数据架构(重点章节)习题集解析

1. 企业架构不包括哪项&#xff1f;&#xff08; &#xff09; A 业务架构 B 数据架构 C 系统架构 D 技术架构 【答案解析】DAMA-DMBOK2 P72 2. 关于架构设计生命周期描述错误的是&#xff1f;( ) A 可以是针对当前的 B 可以是面向未来的 C 可以是已实施完成的 D 可以是已经…

Flutter 对话框【代码实践】

Flutter 对话框【代码实践】 文章目录 Flutter 对话框【代码实践】一、普通对话框1、示例一&#xff1a;圆角、背景截图代码 一、普通对话框 1、示例一&#xff1a;圆角、背景 截图 代码 Center(child: ElevatedButton(onPressed: () {showDialog(context: context,builder:…

Spring Boot如何实现分布式系统中的服务发现和注册?

Spring Boot如何实现分布式系统中的服务发现和注册&#xff1f; 随着互联网的快速发展&#xff0c;越来越多的企业开始将自己的业务迁移到分布式系统中。在这种情况下&#xff0c;服务发现和注册变得尤为重要。对于分布式系统中的每个服务来说&#xff0c;它需要知道其他服务的…