LNMP基础知识介绍及搭建(mysql,php,nginx的安装)

1.什么是LNMP?

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

LNMP架构原理

1.用户通过 http 协议发起请求,请求会先抵达 LNMP 架构中的 Nginx
2.Nginx 会根据用户的请求进行判断,这个判断是有 Location 进行完成
3.判断用户请求的是静态页面, Nginx 直接进行处理
4.判断用户请求的是动态页面, Nginx 会将该请求交给 fastcgi 协议下发
5.fastgi 会将请求交给 php-fpm 管理进程, php-fpm 管理进程接收到后会调用具体的工作进程 warrap
6.warrap 进程会调用 php 程序进行解析,如果只是解析代码 php 直接返回
7.如果有查询数据库操作,则由 php 连接数据库(用户 密码 IP)发起查询的操作
8.最终数据由 mysql->php->php-fpm->fastcgi->nginx->http->user

2.源码安装mysql

(1)解压安装 mysql

tar zxf mysql-boost-5.7.28.tar.gz

(2)创建 mysql 用户

[root@server1 mysql-5.7.28]# useradd -s /sbin/nologin -M mysql		#-M表示不分配主目录
[root@server1 mysql-5.7.28]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
[root@server1 mysql-5.7.28]# yum install -y cmake			#安装编译器

(3)指定编译参数\

[root@server1 mysql-5.7.28]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ 		#安装位置
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ # 指定套接字文件位置
> -DEXTRA_CHARSETS=all \ #扩展字符集
> -DDEFAULT_CHARSET=utf8 \	#默认字符集
> -DDEFAULT_COLLATION=utf8_general_ci \ #默认字符校对
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装 innodb 存储引擎
> -DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装 myisam 存储引擎
> -DWITH_MEMORY_STORAGE_ENGINE=1 \		##安装 memory 存储引擎
> -DWITH_READLINE=1 \		#支持 readline 库
> -DENABLED_LOCAL_INFILE=1 \ #启用加载本地数据
> -DMYSQL_USER=mysql \ #指定 mysql 运行用户
> -DMYSQL_TCP_PORT=3306 #指定 mysql 端口

编译时会提示需要依赖性

(4)根据提示解决依赖性问题

需要安装包:yum install -y gcc gcc-c++ ncurses-devel openssl-devel -y

安装好依赖性后再进行编译还会报错:

##报错##
CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
This CMake script will look for boost in <directory>. If it is not there,
it will download and unpack it (in that directory) for you.
If you are inside a firewall, you may need to use an http proxy:
export http_proxy=http://example.com:80

重新编译时,需要清除原来的对象文件和缓存信息’

扫描二维码关注公众号,回复: 10197415 查看本文章
make clean
rm -fr CmakeCache.txt

上面报错的信息是缺少-DWITH_BOOST=<directory> 参数:
##解决##
-DWITH_BOOST=boost/boost_1_59_0/加到编译参数的后面
后面编译会有一个 warning:

CMake Warning at cmake/bison.cmake:20 (MESSAGE):
Bison executable not found in PATH
Call Stack (most recent call first):
sql/CMakeLists.txt:514 (INCLUDE)

解决:

yum install -y bison

(5)安装

make && make install     #### (过程较长,可能需要30-60min)=

如果 make 还有问题,删除原来的目录,重新解压编译
(6)修改权限

cd /usr/local/lnmp/mysql
mkdir data
chown -R root .
chown -R mysql data
ln -s /usr/local/lnmp/mysql/bin/* /usr/local/bin/

(7)复制配置文件

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
systemctl status mysqld

(8)初始化

mysqld --user=mysql --initialize    ##(以 mysql 用户身份初始化)

初始化会生成一个临时密码,用于登录 mysql(要记住此密码)

#如:2019-01-03T09:06:09.448851Z 1 [Note] A temporary password is generated for root@localhost: r#9VqAoA/au:

(9)启动 mysql:

systemctl start mysqld

(10)进入 mysql:

mysql -uroot -pr#9VqAoA/au: 		##使用刚才的临时密码

执行:show databases; 会报错,需exit退出mysql,执行安全初始化:mysql_secure_installation,输入初始化密码后修改新密码,然后会提示是否启用密码检测插件,直接回车不启用,否则会要求密码有大小写和特殊字符等要求,剩余全部选 y
mysql 安装配置完成

3.源码安装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 sqlite-devel.x86_64 -y
yum install -y libxml2-devel
yum install -y libpng-devel

3)编译报错,逐步解决依赖性
如没有需到https://pkgs.org 官网自行下载
在这里插入图片描述

yum install -y oniguruma-*

(4)安装

make && make install

(5)拷贝更改配置文件

[root@server1 etc]# pwd
/usr/local/lnmp/php/etc
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf

查看配置文件中以下几项是否开启:

[root@server1 etc]# vim php-fpm.conf
把pid注释去掉
 17 pid = run/php-fpm.pid			#需要把注释去掉

(6)拷贝子配置文件

[root@server1 php-fpm.d]# pwd
/usr/local/lnmp/php/etc/php-fpm.d
[root@server1 php-fpm.d]# cp www.conf.default www.conf
[root@server1 php-fpm.d]# vim www.conf

 23 user = nginx
 24 group = nginx 

(7)拷贝更改 php 主配置文件

[root@server1 php-fpm.d]# cd
[root@server1 ~]# cd lnmp/php-7.4.1/
[root@server5 php-7.4.1]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 php-7.4.1]# vim /usr/local/lnmp/php/etc/php.ini
修改时区:
 961 date.timezone = Asia/Shanghai

(8)拷贝 php 启动脚本至/etc/init.d/

[root@server1 php-7.4.1]# cd /root/lnmp/php-7.4.1/sapi/fpm
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm

添加执行权限:

[root@server1 fpm]# chmod +x /etc/init.d/php-fpm

添加用户:

[root@server1 fpm]# useradd -u 900 nginx

(9)启动

/etc/init.d/php-fpm start
#FastCGI = Fast Common Gateway Interface		
#(快速通用网关接口)

HTTP 服务器与你的或其它机器上的程序进行“交谈”的一种工具
启动报错可能因为没有 nginx 用户,需要手动创建
PHP配置完成

4.源码安装nginx

(1)解压 nginx:1)

[root@server1 lnmp]# tar zxf nginx-1.14.0.tar.gz 

(2)进入 nginx 解压包:

[root@server1 lnmp]# cd nginx-1.14.0
[root@server1 nginx-1.14.0]# vim src/core/nginx.h

 14 #define NGINX_VER          "nginx/"			#将此行末尾显示 nginx 版本号的配置删除

[root@server1 nginx-1.14.0]# vim auto/cc/gcc
171 # debug
172 #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

根据提示解决依赖性
(4)安装

make && make install

(5)修改 nginx 配置文件,开启 php 模块

 [root@server1 nginx-1.14.0]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
修改如下:
 2 user  nginx nginx;

 45             index  index.php index.html index.htm;		#添加 php 页面

 65         location ~ \.php$ {
 66             root           html;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
 70             include        fastcgi.conf;
 71         }

6)将 nginx 启动脚本链接到/usr/local/sbin/

[root@server1 conf]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
[root@server1 conf]# nginx -t			##检测语法
nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful
[root@server1 conf]# nginx				##开启 nginx

7)尝试访问:

在 nginx 默认发布目录添加 index.php

[root@server1 conf]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# vim index.php
<?php			#可以看到 php 的默认页面
phpinfo()
?>

8)启动 nginx 并访问:

浏览器中输入:  http://172.25.1.1

在这里插入图片描述
nginx 安装配置完成

发布了149 篇原创文章 · 获赞 1 · 访问量 3022

猜你喜欢

转载自blog.csdn.net/qq_36417677/article/details/104732107