lnmp架构搭建—源码编译(nginx、mysql、php)

含义及理解:

LNMP = Linux+Nginx+Mysql+PHP:LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。LNMP代表的就是linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx中的PHP是以fastcgi的方式结合Nginx的,可以理解为Nginx代理了PHP的fastcgi。

Nginx 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP 是一种在服务器端执行的嵌入HTML文档的脚本语言。

LNMP的工作原理:首先,浏览器发送http request请求到服务器(Nginx)服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx,服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

LNMP特点:Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。

nginx的编译与安装:

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务
开启一台虚拟机作为lnmp服务器主机
准备好lnmp相关的源码包并解压

tar zxf nginx-1.15.9.tar.gz
cd nginx-1.15.9/
ls

在这里插入图片描述
修改配置文件使不显示nginx版本

cd nginx-1.15.9/src/core
vim nginx.h
删除第14行 nginx后面的内容

加快安装,是nginx占用空间更小一点

cd nginx-1.15.9/auto/cc/
vim gcc
将第172行注释掉

解决编译过程中一些软件的依赖性
在实际操作过程中,要根据具体的报错情况来安装软件或插件解决依赖性

yum install gcc pcre-devel openssl-devel -y

编译并安装

./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module
make && make install

编译安装成功查看

cd /usr/local/lnmp/nginx
ls

在这里插入图片描述

创建nginx用户并在配置文件更改

id nginx
useradd nginx
cd /usr/local/lnmp/nginx/conf
vim nginx.conf

在这里插入图片描述
添加软连接并测试

ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
nginx 
nginx
netstat -antlp

在这里插入图片描述
测试
在这里插入图片描述

本地发布网页目录

vim /usr/local/lnmp/nginx/html/index.html

设置后端网页虚拟主机
在lnmp服务器端修改配置文件

cd /usr/local/lnmp/nginx/conf
vim nginx.conf      在末尾行加入
  server {listen       80;server_name  www.cc.com;location / {root html/www;index index.html;
}
}  server {listen       80;server_name  bbs.cc.com;location / {root html/bbs;index index.html;
}
}server {listen       80;server_name  blog.cc.com;location / {root html/blog;index index.html;
}
}  
}

在默认发布目录下创建目录并写入对应网页

cd /usr/local/lnmp/nginx/html
mkdir www
cd www
vim index.html

检测配置文件语法并重启服务

nginx -t
nginx -s reload

测试:
在真机注意更改本地解析

curl www.cc.com
curl bbs.cc.com
curl blog.cc.com

在这里插入图片描述
设置均衡负载
在开启两台虚拟机,安装httpd,写入网页并开启服务

在lnmp服务器虚拟机修改配置文件

cd /usr/local/lnmp/nginx/conf
vim nginx.conf
http {include       mime.types;default_type  application/octet-stream;upstream cc {server 172.25.11.1:80;server 172.25.11.2:80;
}将之前设定的网页虚拟主机注释
server {listen 80;server_name www.cc.com;location / {proxy_pass http://cc;
}  
}
}

检测语法并重启nginx

nginx -t
nginx -s reload

测试:
在这里插入图片描述

mysql的编译安装及设置

在编译安装mysql之前关闭nginx

nginx -s stop

准备好源码包并解压

tar zxf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
ls

安装编译过程中有依赖性的软件(实际操作中,请根据自身情况来安装)

yum install -y cmake-2.8.12.2-4.el7.x86_64.rpm
yum install -y gcc gcc-c++ ncurses-devel
yum install -y bison

安装依赖性软件后进行mysql的编译安装
编译安装时间较长

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/

编译好之后安装

make && make install

安装成功,查看

cd /usr/local/lnmp/mysql
ls

在这里插入图片描述
复制启动脚本到/etc/init.d/

cd /lnmp安装包/mysql-5.7.17/support-files
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

将原来的/etc/my.cnf备份,重新拷贝安装包里的过去

cd /etc
cp my.cnf my.cnf.bak
cd /lnmp安装包/mysql-5.7.17/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket = /usr/local/lnmp/mysql/data/mysql.sock

在这里插入图片描述
添加用户和组

groupadd -g 27 mysql
useradd -u 27 -g 27 mysql (id=27是因为rpm默认安装时mysql用户的id为27,并非强制)
chown mysql.mysql /usr/local/lnmp/mysql -R (修改mysql目录的权限,使其对mysql用户可写)

将mysql命令添加到环境变量

vim ~/.bash_profile
添加:PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source ~/.bash_profile      使文件生效

初始化和安全初始化mysql

mysqld --user=mysql --initialize(以mysql用户身份初始化)
初始化会生成一个临时密码,用于登录mysql(要记住此密码)

在这里插入图片描述
为了安全,再将mysql目录的所有者改为root

chown root /usr/local/lnmp/mysql -R
chown mysql /usr/local/lnmp/mysql/data -R  ##数据目录所有者必须是mysql,不然mysql用户不能写

启动mysql 并安全初始化

/etc/init.d/mysqld start
mysql_secure_installation  然后会提示是否启用密码检测插件,直接回车不启用

测试登陆mysql并查看

在这里插入图片描述

php的编译安装及设置

准备好源码包并解压

yum -y install bzip2
tar jxf php-5.6.35.tar.bz2

解决编译过程中软件的依赖性(实际操作中,请根据自身情况来安装)

yum install -y libxml2-devel libcurl-devel
yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64 libjpeg-turbo-devel-1.2.90-5.el7.x86_64
yum install -y libpng-devel-1.2.49-1.el6_2.x86_64 libpng-devel-1.5.13-7.el7_2.x86_64
yum install -y freetype freetype-devel
yum install -y net-snmp net-snmp-develcd /lnmp安装包
yum install -y re2c-0.13.5-1.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

开始编译并安装

./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhashmake && make install

拷贝更改配置文件

cd /usr/local/lnmp/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
查看配置文件中以下几项是否开启:
user = nginx
group = nginx
pid = run/php-fpm.pid

拷贝更改php主配置文件

cd /lnmp安装包/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini 
cd /usr/local/lnmp/php/etc
vim php.ini
修改时区:
date.timezone = Asia/Shanghai

在这里插入图片描述
拷贝php启动脚本至/etc/init.d/

cd /lnmp/php-5.6.35/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

启动php

/etc/init.d/php-fpm start

查看网络端口

netstat -antlp

在这里插入图片描述

LNMP架构部署

先确保nginx、mysql、php都是开启状态
查看端口:

netstat -antlp

在这里插入图片描述
安装论坛前测试php网页

并修改nginx配置文件

cd /usr/local/lnmp/nginx/conf
vim nginx.conf注释掉之前设定的负载均衡集群
并且开启php界面设定、增加index.php文件

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
检测语语法并重启nginx

nginx -t
nginx -s reload

编写php测试网页

cd /usr/local/lnmp/nginxhtml
vim index.php

在这里插入图片描述
在这里插入图片描述
自行准备好论坛的压缩包
安装解压命令并解压文件到指定目录

yum install -y unzip
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/

切换到解压目录并查看文件
重命名 uoload 为bbs
并给目录增加权限

cd /usr/local/lnmp/nginx/html
ls
mv upload bbs
chmod 777 config/ -R
chmod 777 data/ -R
chmod 777 uc_server/ uc_client/  -R

编辑php主配置文件

并重启php

vim /usr/local/lnmp/php/etc/php.inipdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock
mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock/etc/init.d/php-fpm reload

由于 nginx用户 对于 /usr/local/lnmp/mysql/data 目录没有权限

cd /usr/local/lnmp/mysql
chmod 755 data/

打开浏览器开始安装部署
172.25.11.4/bbs
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
这里输入mysql密码并设定论坛管理者密码

在这里插入图片描述
点击右上角管理中心进入管理
在这里插入图片描述

在这里插入图片描述
发现没有界面

解决如下:

cd /usr/local/lnmp/nginx/html/bbs/install
rm -fr index.php

重新刷新管理界面

在这里插入图片描述

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

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

相关文章

解析xml_Mybatis中mapper的xml解析详解

上一篇文章分析了mapper注解关键类MapperAnnotationBuilder,今天来看mapper的项目了解析关键类XMLMapperBuilder。基础介绍回顾下之前是在分析configuration的初始化过程,已经进行到了最后一步mapperElement(root.evalNode("mappers"))&#x…

lnmp—MemCache的作用

含义及理解: 1 . memcache是一个高性能的分布式的内存对象缓存系统,用于动态web应用以减轻数据库负担。通过在内存里维护一个统一的巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率。 memcache是一…

openresty—实现缓存前移

含义及理解: OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。 其目标是让Web服务直接跑在Nginx服务内部,充分利用Nginx的非阻塞I/O模型&am…

Nginx+Keepalived+Tomcat之动静分离的web集群

NginxKeepalivedTomcat之动静分离的web集群 博客分类: webserverNginxKeepalivedTomcat之动静分离的web集群为小公司提供大概一天持续在100万/日之间访问的高性能、高可用、高并发访问及动静分离的web集群方案NginxKeepalived 高可用、反向代理NginxPHP …

安装完成后的配置_cent os7 默认安装后的一般配置

在安装cent os7后,进入系统会出现一些命令无法执行。这是因为最小化没有安装包含的软件包。这时候先要配置一下基本的IP参数,(包括动态,静态,或者是双网卡绑定)。我们在虚拟机中模拟操作一下,配置文件在/etc/sysconfig…

lnmp构架——对tomcat详解

tomcat的安装部署 安装jdk和tomcat tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/ tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/做好软连接便于访问 cd /usr/local ln -s jdk1.7.0_79/ java ln -s apache-tomcat-7.0.37/ tomcat配置环境变量 vim /etc/profile…

zabbix监控部署 与添加主机

zabbix介绍: zabbix([zbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决…

打开是什么样子的图片_情侣头像 | 无论是什么样子的你 我都好喜欢

点击【情侣图片大全】- 右上角找到【…】立刻设我为星标/置顶 - 不迷路哦情侣图片大全“时光真疯狂,我一路执迷与匆忙”情侣/闺蜜/动漫/闺蜜网名长按图片保存 点击图片放大图片高清,建议在 W i f i 下浏览这个世界是多么神奇我竟然遇见了你无论是什么…

zabbix监控平台添加服务(http,nginx,mysql)

1 . 监控httpd服务: 首先确保已经搭建zabbix监控平台,并且将需要监控的主机已经添加。 对主机server2 上的http服务进行监控,首先确保server2主机安装了http服务。 使用http在zabbix中自带监控模版 点击配置->主机->server2->模…

zabbix使用JMX监控tomcat

JMX 全称是Java Management Extensions,即Java管理扩展。Java程序会开放一些端口,用来获取运行状况。 从Zabbix2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway ",在Zabbix Serve上会启动名为"Zabbix Java Gateway "的进程&…

自定义控件添加属性_|AutoCAD LT 2019 Mac自定义功能区的方法

AutoCAD LT是一款非常好用的CAD三维设计绘图软件,最新版本2019拥有改进的桌面、新应用实现跨设备工作流,以及DWG比较等新功能,并且AutoCAD LT 2019 Mac可以根据你的需要和工作习惯来自定义功能区,下面为大家带来自定义功能区的详细…

Zabbix监控——proxy 分布式监控配置

proxy分布式监控 Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构, proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,极大的减轻了server的负载压力,使…

AutoCAD_acadiso.dwt卡死

2019独角兽企业重金招聘Python工程师标准>>> 问题描述:每次执行到打开acadiso.dwt就卡死,且电脑显示有网,确打不开网页 可能原因:可能是因为AotuCAD是盗版的 解决办法: 1.在任务管理器中把WSCommCntr.exe进…

docker简介与搭建

1 . 对docker的理解: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间…

007_Web to lead

转载于:https://www.cnblogs.com/bandariFang/p/6229491.html

设置header_Nginx的这些安全设置,你都知道吗?

Nginx 是最流行的 Web 服务器,可以只占用 2.5 MB 的内存,却可以轻松处理 1w 的 http 请求。做为网站的入口,Nginx 的安全设置重要性不言而喻。下面带你一起去认识一下这些安全配置吧!nginx.conf是 Nginx 最主要的配置文件&#xf…

ISP运营商实验室测试机架拓扑搭建经验分享

大家好,有些日子没更新干货了,近期难得有假期进行修整,思前顾后还是坐下来聊聊自己长期负责维护和搭建的实验室环境。废话不多说,直接上图。因为图较大,分上下部分进行上传。网络主框架(上)服务…

关于二手交易用户指南怎么写_让用户拍案叫绝文案怎么写?试试这3个方法

“共鸣”到底是什么? 为什么有些文章会引起共鸣,而有些则没有。现在假设为产品家用手持式美容仪写一份副本。 由于主要重点是“家庭使用”,因此您立即想到了“家庭美容”的口号。 尽管这句话很简单易懂,但谈论起来总是很简单……似…

Centos7+Nginx+Keepalived实现Apache服务的高可用负载均衡

Centos7NginxKeepalived实现Apache服务的高可用&负载均衡今天是2017年的第一天,昨天也就是2016年的最后一天,我尝试部署了Centos7NginxKeepalived实现WEB服务的高可用负载均衡服务,终于在2017年的第一天前完成了,所以在此分享…

docker设置镜像加速器

设置镜像加速器 一般情况下,直接从官方仓库中直接拉取镜像会比较慢,可以设置镜像加速器,相当于一个反向代理。以阿里云为例 1 . 首先获取自己的加速器地址 www.aliyun.com 登陆自己的账号(可以是支付宝账号) 首页点…