Linux环境下LNMP架构实战案例

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 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

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
6月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1096 2
Spring Boot 3.x 微服务架构实战指南
|
7月前
|
消息中间件 数据采集 NoSQL
秒级行情推送系统实战:从触发、采集到入库的端到端架构
本文设计了一套秒级实时行情推送系统,涵盖触发、采集、缓冲、入库与推送五层架构,结合动态代理IP、Kafka/Redis缓冲及WebSocket推送,实现金融数据低延迟、高并发处理,适用于股票、数字货币等实时行情场景。
1016 3
秒级行情推送系统实战:从触发、采集到入库的端到端架构
|
7月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
840 7
|
7月前
|
JSON 供应链 监控
1688商品详情API技术深度解析:从接口架构到数据融合实战
1688商品详情API(item_get接口)可通过商品ID获取标题、价格、库存、SKU等核心数据,适用于价格监控、供应链管理等场景。支持JSON格式返回,需企业认证。Python示例展示如何调用接口获取商品信息。
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
877 23
|
关系型数据库 应用服务中间件 Linux
Linux云服务器如何搭建LNMP环境
LNMP环境是Linux系统中常用的Web服务架构,由Linux、Nginx、MySQL/MariaDB和PHP组成,适用于高效托管动态网站。本文以CentOS 7为例,详细介绍了LNMP环境的搭建步骤,包括Nginx、MariaDB和PHP的安装与配置,以及最终通过创建`index.php`文件验证环境是否成功部署。具体操作涵盖配置YUM仓库、安装服务、编辑配置文件、启动服务等关键步骤,确保用户能够顺利搭建并运行LNMP环境。
348 1
Linux云服务器如何搭建LNMP环境