LNMP架构的基本搭建(mysql+php+nginx)

封装一台全新的虚拟机。

LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux, N指Nginx, M一般指MySQL,也可以指MariaDB, P一般指PHP,也可以指Perl 或Python

在这里插入图片描述

(2)工作原理

首先,浏览器发送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的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

1. 编译安装mysql

1 )解压安装mysq|
tar zxf mysql-boost-5.7.28.tar.gz
2 )创建mysql用户
[root@server4 mysql-5.7.27]# useradd -s /sbin/nologin -M mysql (-M不创建主目录)

yum install -y cmake
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
编译过程耗时比较长。
编译完成后:

在这里插入图片描述
复制配置文件
cd /usr/local/lnmp/mysql/mysql-test/include
cp default_my .cnf /etc/my.cnf
cd /usr/local/lnmp/mysql/support-files
cp -a mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig mysqld on
systemctlstatus mysqld
在这里插入图片描述初始化
mysqld --user=mysql --initialize (以mysql用户身份初始化)
初始化会生成一个临时密码,用于登录mysql(要记住此密码)
#如:
‘2019-01-03T09:06:09.448851Z1[Note]A temporary password is generated for root@localhost: r#9VqAoA/au’

启动mysql:systemctl start mysqld

进入mysql:mysql -uroot -pr#9VqAoA/au #使用刚才的临时密码 执行:show databases; 会报错

需要执行:mysql_secure_installation,然后会提示是否启用密码检测插件,直接回车不启用,否则会要求密码有大小写和特殊字符等要求
剩余全部选 y
在这里插入图片描述在这里插入图片描述备注:如果密码忘记,重新初始化,rm -rf data里面的数据,然后重新
mysqld --user=mysql --initialize

启动 mysql:systemctl start mysqld
mysql_secure_installation

mysql 安装配置完成

2. php编译安装

1)解压:tar zxf php-7.4.1.tar.gz
yum -y install bzip2
2)进入解压后的目录,开始编译

./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 install-y libxml2-devel

yum install-y libpng-devel

3)编译报错,逐步解决依赖性
yum install -y oniguruma-*
在这里插入图片描述

4)make && make install
在这里插入图片描述编译过程时间也较长。

在这里插入图片描述
拷贝更改配置文件

5)拷贝更改配置文件
[root@server5 etc]# pwd
/usr/local/lnmp/php/etc
[root@server5 etc]# cp php-fpm.conf.defaultphp-fpm.conf
查看配置文件中以下几项是否开启:
pid = run/php-fpm.pid

6)拷贝子配置文件
[root@server5 php-fpm.d]# pwd
/usr/local/lnmp/php/etc/php-fpm.d
[root@server4 php-fpm.d]# cp www.conf.defaultwww.conf
[root@server4 php-fpm.d]# vim www.conf
user = nginx
group =nginx

在这里插入图片描述
7)拷贝更改php主配置文件
[root@server5 php-7.4.1]#
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
修改时区:date.timezone = Asia/Shanghai
在这里插入图片描述
8)拷贝php启动脚本至/etc/init.d/
[root@server5 fpm]# pwd
/root/php-7.4.1/sapi/fpm
[root@server5 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
添加执行权限:chmod +x /etc/init.d/php-fpm

9)启动 /etc/init.d/php-fpm

FastCGI =Fast Common Gateway Interface(快速通用网关接口)
HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具
启动报错可能因为没有nginx用户,需要手动创建
在这里插入图片描述

3. nginx编译安装

1)解压nginx:tar zxf nginx-1.16.0.tar.gz

2)进入nginx解压包: vim src/core/nginx.h 修改:#define NGINX_VER “nginx/”(将此行末尾显示nginx版本号的配置删除)

vim auto/cc/gcc 修改:

#debug 
#CFLAGS="$CFLAGS -g"(将这2行注释调,关闭debug) 

3)编译安装nginx: ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx

根据提示解决依赖性 ##此处应该还需要安装pcre-devel

4)make && make install
在这里插入图片描述在这里插入图片描述

5)修改nginx配置文件,开启php模块
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
6)将nginx启动脚本链接到/usr/local/sbin/
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
[root@server5 ~]# nginx -t ##检测语法
[root@server5 ~]# nginx ##开启nginx
在这里插入图片描述
7)尝试访问:http://172.25.0.1 ##是nginx默认页面
在nginx默认发布目录添加 index.php
vim /usr/local/lnmp/nginx/html/index.php

在这里插入图片描述

在这里插入图片描述
可以看到php的默认页面
8)启动nginx并访问:http://172.25.254.1
nginx安装配置完成

在这里插入图片描述

这样,到现在为止,LNMP初步框架已经搭建成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值