Linux环境下LNMP架构实战案例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Linux环境下LNMP架构实战案例

1.使用yum安装基础依赖包

[root@localhost ~]# yum -y install gcc openssl-devel pcre-devel

2.下载Nginx和Mysql安装包


Nginx下载


Mysql下载

[root@localhost ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
[root@localhost ~]# ls 
nginx-1.16.1.tar.gz
mysql57-community-release-el7-11.noarch.rpm

3.源码安装Nginx

[root@localhost ~]# useradd -s /sbin/nologin nginx
[root@localhost ~]# tar -xf nginx-1.16.1.tar.gz 
[root@localhost ~]# cd nginx-1.16.1
[root@localhost nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@localhost nginx-1.16.1]# make && make install

4.安装Mysql

[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install mysql-server

5.安装PHP

[root@localhost ~]# yum -y install php php-fpm php-mysql

6.启动服务并开机自启

1.启动Nginx服务

[root@localhost nginx-1.16.1]# /usr/local/nginx/sbin/nginx 
[root@localhost nginx-1.16.1]# ss -antulp | grep :80
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=15686,fd=6),("nginx",pid=15685,fd=6))
tcp    LISTEN     0      50       :::8080                 :::*                   users:(("java",pid=3207,fd=161))

2.启动Mysql服务

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# ss -antulp | grep :3306
tcp    LISTEN     0      80     [::]:3306               [::]:*                   users:(("mysqld",pid=54086,fd=21))

3.启动PHP服务

[root@localhost ~]# systemctl start php-fpm
[root@localhost ~]# systemctl enable php-fpm
[root@localhost ~]# ss -antulp | grep php-fpm
tcp    LISTEN     0      128    127.0.0.1:9000                  *:*                   users:(("php-fpm",pid=54190,fd=0),("php-fpm",pid=54189,fd=0),("php-fpm",pid=54188,fd=0),("php-fpm",pid=54187,fd=0),("php-fpm",pid=54186,fd=0),("php-fpm",pid=54185,fd=6))

7.Mysql 初始化

[root@localhost ~]# mysql --version
mysql  Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using  EditLine wrapper
[root@localhost ~]# grep "temporary password" /var/log/mysqld.log     //查看初始密码
2020-03-10T03:23:43.256226Z 1 [Note] A temporary password is generated for root@localhost: 9s3aBfelT5).
[root@localhost ~]# mysql -hlocalhost -uroot -p'9s3aBfelT5).'
...
Server version: 5.7.29
mysql> alter user root@"localhost"identified by "123qqq...A";   //修改mysql密码
mysql> exit

LNMP平台案例


步骤一:修改php-fpm配置文件

[root@localhost ~]# vim /etc/php-fpm.d/www.conf
[www]
listen = 127.0.0.1:9000           //PHP端口号
pm.max_children = 50              //最大进程数量
pm.start_servers = 5              //最小进程数量
pm.min_spare_servers = 5          //最少需要几个空闲着的进程
pm.max_spare_servers = 35         //最多允许几个进程处于空闲状态

步骤二:修改nginx配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
...
 location / {
            root   html;
            index  index.php index.html index.htm;
        }
...
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
[root@localhost ~]# /usr/local/nginx/sbin/nginx -s reload

步骤三:创建PHP页面


测试页面1, 测试LNMP架构能否解析PHP页面(动态)

[root@localhost ~]# vim /usr/local/nginx/html/test.php
<?php
$i="This is a test Page";
echo $i;
?>

测试页面2,测试连接并查询Mysql数据库

[root@localhost ~]# vim /usr/local/nginx/html/mysql.php
<?php
    $mysqli = new mysqli('localhost','root','123qqq...A','mysql');
    if (mysqli_connect_errno()){
        die('Unable to connect!'). mysqli_connect_error();
    }
    $sql = "select * from user";
    $result = $mysqli->query($sql);
    while($row = $result->fetch_array()){
        printf("Host:%s",$row[0]);
        printf("</br>");
        printf("Name:%s",$row[1]);
        printf("</br>");
}
?>

步骤四:访问测试


测试解析PHP页面:

10.png

测试连接并查询Mysql数据库:

11.png

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
Linux 编译器 开发者
Linux设备树解析:桥接硬件与操作系统的关键架构
在探索Linux的庞大和复杂世界时?,我们经常会遇到许多关键概念和工具??,它们使得Linux成为了一个强大和灵活的操作系统?。其中,"设备树"(Device Tree)是一个不可或缺的部分?,尤其是在嵌入式系统??和多平台硬件支持方面?。让我们深入了解Linux设备树是什么,它的起源,以及为什么Linux需要它?。
Linux设备树解析:桥接硬件与操作系统的关键架构
|
4天前
|
监控 Java 大数据
bigdata-05-Linux实战
bigdata-05-Linux实战
23 0
|
4天前
|
运维 Linux Apache
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
Linux Apache服务详解——Apache虚拟目录与禁止显示目录列表实战
27 2
|
4天前
|
域名解析 Linux Apache
Linux Apache服务详解——虚拟网站主机功能实战
Linux Apache服务详解——虚拟网站主机功能实战
47 5
|
4天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
67 7
|
4天前
|
Cloud Native Linux 网络虚拟化
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
在Linux网络虚拟化领域,虚拟以太网设备(veth)扮演着至关重要的角色?。veth是一种特殊类型的网络设备,它在Linux内核中以成对的形式存在,允许两个网络命名空间之间的通信?。这篇文章将从多个维度深入分析veth的概念、作用、重要性,以及在容器和云原生环境中的应用?。
深入理解Linux veth虚拟网络设备:原理、应用与在容器化架构中的重要性
|
2天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
4天前
|
存储 Shell Linux
操作系统实战(一)(linux+C语言)
本篇文章重点在于利用linux系统的完成操作系统的实验,巩固课堂知识
|
4天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
4天前
|
安全 Linux Shell
Linux常用命令详解与实战应用
【5月更文挑战第7天】本文详述了Linux常用命令,包括文件与目录操作(ls, cd, pwd, cp, mv, rm)、文本处理(cat, grep, sed)及系统管理(top, df, du)命令。通过实例演示了如何使用这些命令,帮助读者理解和掌握Linux操作,提升系统管理效率。学习和熟练运用这些基础命令,是高效使用Linux的关键。
http://www.vxiaotou.com