企业 安装配置LNMP架构

lnmp全称为: Linux 、Nginx、Mysql、Php
因为nginx单独无法支持动态页面的访问,只能支持静态页面,所以需要将动态页面的请求使用php服务来操作。

工作流程:client用户请求 --> 通过cdn、4lb负载均衡等 --> 服务端nginx --> 如果用户请求为html这类静态页面 --> nginx直接返还结果。

client用户请求 --> 通过cdn、4lb负载均衡等 --> 服务端nginx --> 如果用户请求为动态页面 --> 请求转移到fastcgi协议 --> 然后发给php-fpm进程 --> 进一步转发到工作进程wrapper --> 再到php服务 --> 如果需要访问mysql数据库 --> 返回结果到php --> php-fpm --> fastcgi --> nginx --> clint

这是两种lnmp建构方式进行动态和静态访问时的工作方式

搭建lnmp架构

安装 Mysql

第一步:安装包下载:
访问官网找安装包,这里我们需要的是源码包,因为需要添加自己的模块配置
目前来看常用还是5.7版本的,因为数据库在企业中本身使用的情况也是不允许常去更新服务,毕竟数据的重要性不言而喻。
在这里插入图片描述
下载的源码包是:
在这里插入图片描述

第二步:解压、安装
下载完成后正常步骤还是先解压
在这里插入图片描述
说明一下,大多数类型的源码包里都会有 configure 这个脚本来进行安装,但是在mysql里使用的是 configure.cmake
在这里插入图片描述
安装前创建 mysql 用户来启用Mysql 服务
在这里插入图片描述
预编译:cmake ./configure.cmake ,没有cmake直接yum安装即可
这里还需要添加预编译的参数

[root@localhost mysql-5.7.30]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ #指定安装的位置
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \	#指定套接字文件的位置
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \	
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \	#存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \	#存储引擎
> -DWITH_MEMORY_STORAGE_ENGINE=1 \	#存储引擎
> -DWITH_READLINE=1 \	#支持readline库
> -DENABLED_LOCAL_INFILE=1 \	#加载本地数据
> -DMYSQL_USER=mysql \	#只定mysql用户为运行
> -DMYSQL_TCP_PORT=3306	#指定运行端口
> -DWITH_BOOST=boost/boost_1_59_0 #指定boost

如果预编译过程中出现报错,查看报错的信息,会提示需要安装什么组件,并且安装后删除 CMakeCache.txt 文件,这个文件是预编译是的缓存
在这里插入图片描述
提醒,mysql 编译时还需要c++的组件,需要最好提前安装好:yum -y install gcc-c++
可能还会遇到编辑完没有错误,但是后warning,正常是不会影响使用的,但是避免后面出现问题,我们还是解决这个warning,再重新编译:yum -y install bison
在这里插入图片描述
预编译完成后,进行make && make install,这里的安装时间是比较长,不像nginx那种小的包很快,mysql安装需要较长的时间,有条件可以给主机一个比较好的配置缩短时间
在这里插入图片描述
安装完成后可以在指定的目录中看到我们的mysql文件
在这里插入图片描述

第三步:编辑mysql配置
首先需要建立需要在mysql目录里 data 这个目录,因为我们在编译时指定的数据存放就在这个目录里,并且修改这个目录的拥有者为mysql用户
在这里插入图片描述
复制配置文件:cp mysql-test/include/default_my.cnf /etc/my.cnf
在这里插入图片描述
复制 mysql 的启动脚本:

cp -a support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld 	#为脚本添加可执行权限
chkconfig mysqld on		#设置开机启动
ln -s /usr/local/lnmp/mysql/bin/*  /usr/local/bin/	#将mysql命令做软连接,方便使用

在这里插入图片描述
初始化mysql:mysqld --user=mysql --initialize,完成后会给定一个登录的临时密码
在这里插入图片描述

第四步:启动并登录
启动mysql:systemctl start mysqld在这里插入图片描述
登录mysql:mysql -uroot -p ,-u指定用户,-p使用密码,密码就是之前生成的
在这里插入图片描述
这里我们去查看数据库内容是会被拒绝,因为密码没有做安全初始化,所以还需要执行命令安全初始化mysql

在这里插入图片描述
安全初始化命令:mysql_secure_installation
执行后会开始需要输入旧密码,就是生成的那个密码,然后会让你设置新的密码,后面的选项直接回车跳过,除了最后Reload privilege tables now? 输入y 确认重新加载授权表,这样就完成了
在这里插入图片描述

安装 php

第一步安装包下载
同样是去官网下载源码包
在这里插入图片描述
第二步:解压、安装
php里是有congigure的脚本,我们就可以使用来预编译安装
在这里插入图片描述
预编译时还是加上参数,指定安装目录

[root@localhost php-7.4.5]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysqli=/usr/local/lnmp/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/lnmp/mysql --enable-gd --without-pear --enable-fpm

预编译时还是会存在报错,需要相应的插件安装,有的是yum仓库带的,有点则需要去网上下载
如:这里就需要安装libxml2-devel
在这里插入图片描述
这里又需要安装:libpng-devel
在这里插入图片描述
这里看到需要的包 oniguruma 在仓库里是找不到的,就需要去网上下载
需要同时装 oniguruma 和 oniguruma-devel 两个包
在这里插入图片描述
处理完所有的依赖性后完成我们的预编译,然后就可以进行安装了,make && make install
在这里插入图片描述
在这里插入图片描述

第三步:编辑配置文件
复制安装好的php目录中etc下的php-fpm.conf.default,这个是官方给定的配置文件,我们复制来使用
在这里插入图片描述
编辑复制后的配置文件:vim etc/php-fpm.conf。在该文件中打开php的运行进程,“;”在这里表示注释
在这里插入图片描述

再去复制另一个配置文件:cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf
在这里插入图片描述
编辑这个配置文件:vim etc/php-fpm.d/www.conf,首先更改里面的配置user和group,改为nginx,因为我们首先使用的是nginx处理请求,如果是动态请求,nginx就会去调用php进行访问
在这里插入图片描述
最后还需复制一个php的主配置文件,这个配置文件在php的源码包中的php.ini-development
在这里插入图片描述
复制到安装好的php/etc/下:cp ~/Downloads/php-7.4.1/php.ini-development etc/php.ini
在这里插入图片描述
这里我们需要更改的是时区配置,改为:date.timezone = Asia/Shanghai
在这里插入图片描述

第四步:开启php服务
完成配置文件的更改后,复制php的启动脚本,脚本在源码包的中sapi/fpm/里
在这里插入图片描述
复制:cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm,并为启动脚本添加可执行权限
在这里插入图片描述
在执行开启命令时,我们需要建立nginx用户,因为我们前面的配置里写了指定nginx用户:useradd -s /sbin/nologin -M nginx
脚本开启命令:/etc/init.d/php-fpm start,可以查看到php开启的端口是在内循环上的9000。
在这里插入图片描述

安装 nginx

第一步:下载安装包
官网下载nginx安装包
在这里插入图片描述

第二步:解压安装
解压:tar xfz nginx-1.18.0.tar.gz
进行预编译,这里需要添加指定安装目录,需要https模块,还有指定用户和组

[root@localhost nginx-1.18.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx

预编译完成后执行make && make install
在这里插入图片描述安装完这里有两个小问题:
1.我们在查看nginx信息时可以看到nginx的版本号
在企业工作中这样的情况是不允许出现的,
在这里插入图片描述
关闭的方式是在nginx 的源码包中编辑配置:vim nginx-1.18.0/src/core/nginx.h,删除 “nginx/” 后面的版本号变量
在这里插入图片描述

2.nginx安装后的大小是比较大的
在这里插入图片描述
这因为我们编译时使用了debug
编辑nginx源码包 :vim nginx-1.18.0/auto/cc/gcc,注释掉debug功能
在这里插入图片描述
然后删除安装好的nginx目录,进行重新编译和安装
再去查看安装的大小和版本号
在这里插入图片描述
第三步:编辑配置
编辑nginx配置文件:vim conf/nginx.conf
更改默认发布目录,添加index.php文件,首先去访问这个文件
在这里插入图片描述
开启php连接模块,这里开启后,可以看到它会访问127.0.0.1:9000,这是php-fpm开启的,发布页面是index.php。
不开启里面的fastcgi_param功能,修改include 直接访问fastcgi.conf配置文件
在这里插入图片描述
第四步:开启服务
创建软连接对nginx启动命令:ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
然后就可以直接使用nginx命令
查看配置文件是否可正常运行:nginx -t
在这里插入图片描述
开启服务:nginx
在这里插入图片描述

访问测试

我们完成3项服务的配置后来测试访问nginx,这里访问时还需要在火墙添加服务,或者关闭火墙
使用浏览器访问nginx
在这里插入图片描述
这里看到的是nginx的默认页面,上面我们是定义了首先是访问index.php,我们来编写一个php页面作为测试
在这里插入图片描述
编写的内容

<?php
phpinfo()
?>

再进行访问就可以看到 php 的默认页面
在这里插入图片描述
这样我们就完成了lnmp架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Howei__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值