LNMP架构,像初恋女友一般给你的温柔。
Posted 28线不知名云架构师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP架构,像初恋女友一般给你的温柔。相关的知识,希望对你有一定的参考价值。
一、LNMP简介
1.1 lnmp概念
LNMP是一个基于centos/debian编写的Linux、nginx、mysql、php,可以在独立主机上轻松安装的LNMP生产环境。
1.2 nginx概念
Nginx作为Web服务器:相比Apache, Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率。Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持Rails 和PHP,也可以支持作为HTTP代理服务器对外进行服务。Nginx 采用C语言进行编写,不论是系统资源开销还是CPU使用效率都比 Perlbal 要好的多。Nginx 作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last/fm 描述了成功并且美妙的使用经验。Nginx安装非常的简单,配置文件非常简洁(还能够支持perl语法)。Nginx支持平滑加载新的配置,还能够在不间断服务的情况下进行软件版本的升级
1.3 mysql概念
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,被Oracle 公司收购。MySQL是最流行的关系型数据库管理系统之一,在WEB 应用方面, MySQL是较好的RDBMS (Relational Database Management System, 关系数据库管理系统)应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的SQL 语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
1.4 PHP概念
PHP-FPM (FastCGI Process Manager: FastCGI进程管理器)是一一个PHPFastCGI 管理器, .
由于Nginx服务器不适合处理动态页面,需要由Nginx 把动态请求交给php-fpm处理。
FastCGI: FastCGI是一个可伸缩地、高速地在HTTP服务器和动态脚本语言间通信的接口(FastCGI接 口在Linux下是socket (可以是文件socket,也可以是ipsocket) ),主要优点是把动态语言和HTTP服务器分离开来。多数流行的HTTP服务器都支持FastCGI,包括Apache、Nginx和lightpd。
FastCGI:作用:把动态语言和HTTP分离开来,动静分离
二、LNMP架构部署
2.1 安装nginx
安装前准备
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
创建运行用户、组
useradd -M -s /sbin/nologin nginx
解压缩安装包,下载需要组件,编译安装
yum -y install pcre-devel zlib-devel gcc gcc-c++ make
cd /opt
tar zxvf nginx-1.15.9.tar.gz
cd nginx-1.15.9/
./configure \\
--prefix=/usr/local/nginx \\
--user=nginx \\
--group=nginx \\
--with-http_stub_status_module
make && make install
路径优化(便于管理员控制)
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
检查配置文件
nginx -t #检查配置文件语法
nginx -t -c + 绝对路径
启动、停止nginx
①查看端口验证
nginx
netstat - antp | grep nginx
②lynx验证
yum install -y lynx
lynx + ip地址
添加nginx系统服务
vim /usr/lib/systemd/system/nginx.service
##要配置参数##
[Unit]
Description=nginx ##描述
After=network.target ##描述服务类别
[Service]
Type=forking ##后台运行类型
PIDFile =/usr/local/nginx/logs/nginx.pid #PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx #启动服务
ExecrReload=/bin/kill -s HUP $MAINPID #根据PID重载配置
ExecrStop=/bin/kill -s QUIT $MAINPID #根据PID终止进程
PrivateTmp=true ##开启
[Install]
WantedBy=multi-user.target #启动级别
=====》wq ##保存退出
chmod 754 /lib/systemd/system/nginx.service ##设置754权限是一种安全优化
ststemctl enable nginx.service ##设置nginx开机自启
检查systemctl命令能否正常使用
Ps:启动报错是因为端口被占用,killall -3 nginx 杀掉进程就好
2.2 安装MySQL服务(5.7.20版本)
安装Mysql环境依赖包
yum -y install ncurses ncurses-devel bison cmake
---------------------------------------------------------
ncurses\\ #字符终端工具包
bison \\ #函数库
创建运行客户
useradd -s /sbin/nologin mysql
编译安装
上传mysql -boost-5.7.20. tar .gz到opt目录下
cd /opt
tar xzvf mysql-boost-5. 7.20. tar.gz
cd /opt/mysq1-5.7.20/
cmake \\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \\ ##指定安装路径(目录)
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \\ ##指定通信文件,连接数据库,通讯协议的载体
-DSYSCONFDIR=/etc \\ ##配置文件目录指向/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql \\ ##指定pid目录文件
-DDEFAULT_CHARSET=utf8 \\ ##字符集设定
-DDEFAULT_COLLATION=utf8_general_ci \\ ##字符集设定
-DWITH_INNOBASE_STORAGE_ENGINE=1 \\ ##以下三行均为存储引擎ENGINE
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \\
-DMYSQL_DATADIR=/usr/local/mysql/data \\ ##指定数据存放位置
-DWITH_BOOST=boost \\ ##底层C++运营库,5.7的版本独立的表空间结构
-DWITH_SYSTEMD=1 ##守护进程id跑在后台的一个支撑服务正常运行的一个特殊进程
make && make install
数据库目录进行权限调整
chown -R mysql:mysql /usr/local/mysql/
修改MySQL配置文件(删除,1000dd)
vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
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
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
chown mysql:mysql /etc/my.cnf
修改环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
初始化数据库
cd /usr/local/mysql/usr/lib/systemd/system
cp mysqld.service /usr/lib/systemd/system
systemctl enable mysqld
以上是关于LNMP架构,像初恋女友一般给你的温柔。的主要内容,如果未能解决你的问题,请参考以下文章