阿里云一键部署LNMP(Linux+Nginx+MySQL+PHP)栈

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: LNMP代表Linux+Nginx+MySQL+PHP网站服务器架构。通过ROS资源编排可以阿里云上一键部署LNMP栈。

LNMP代表Linux+Nginx+MySQL+PHP网站服务器架构。本文主要目的是为大家提供一种非常简单的方法,在阿里云上部署LNMP栈。
通过<阿里云ROS资源编排服务>,将VPC、NAT Gateway、ECS创建,LNMP栈部署过程自动化,使大家能够非常方便地部署一个LNMP栈。

急速部署LNMP栈

一键部署LNMP栈>>
screenshot
screenshot

注意:

ROS模板安装LNMP栈

安装LNMP:关闭防火墙,关闭SELinux,安装nginx,MySQL和PHP。UserData如下:

    "systemctl stop firewalld.service \n",
    "systemctl disable firewalld.service \n",
    "sed -i 's/^SELINUX=/# SELINUX=/' /etc/selinux/config \n",
    "sed -i '/# SELINUX=/a SELINUX=disabled' /etc/selinux/config \n",
    "setenforce 0 \n",
    "yum install yum-priorities -y \n",
    "yum -y install aria2 \n",
    "aria2c $NginxUrl \n",
    "rpm -ivh nginx-*.rpm \n",
    "yum -y install nginx \n",
    "systemctl start nginx.service \n",
    "systemctl enable nginx.service \n",
    "yum -y install php-fpm \n",
    "systemctl start php-fpm.service \n",
    "systemctl enable php-fpm.service \n",
    "sed -i '/FastCGI/,/htaccess/s/    #/    /' /etc/nginx/conf.d/default.conf \n",
    "sed -i '/FastCGI/s/^    /    #/' /etc/nginx/conf.d/default.conf \n",
    "sed -i '/htaccess/s/^    /    #/' /etc/nginx/conf.d/default.conf \n",
    "sed -i '/SCRIPT_FILENAME/s/\\/scripts/\\/usr\\/share\\/nginx\\/html\\//' /etc/nginx/conf.d/default.conf \n",
    "yum -y install mariadb mariadb-server \n",
    "systemctl start mariadb.service \n",
    "systemctl enable mariadb.service \n",
    "yum -y install php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash \n",
    "MDSRING=`find / -name mbstring.so` \n",
    "echo extension=$MDSRING >> /etc/php.ini \n",
    "systemctl restart mariadb.service \n",
    "mysqladmin -u root password \"$dbrootpassword\" \n",
    "$(mysql $dbname -u root --password=\"$dbrootpassword\" >/dev/null 2>&1 </dev/null); (( $? != 0 )) \n",
    "echo CREATE DATABASE $dbname \\; > /tmp/setup.mysql \n",
    "echo GRANT ALL ON $dbname.* TO \"$dbuser\"@\"localhost\" IDENTIFIED BY \"'$dbpassword'\" \\; >> /tmp/setup.mysql \n",
    "mysql -u root --password=\"$dbrootpassword\" < /tmp/setup.mysql \n",
    "$(mysql $dbname -u root --password=\"$dbrootpassword\" >/dev/null 2>&1 </dev/null); (( $? != 0 )) \n",
    "cd /root \n",
    "systemctl restart php-fpm.service \n",
    "systemctl restart nginx.service \n",
    "echo \\<?php >  /usr/share/nginx/html/test.php \n",
    "echo \\$conn=mysql_connect\\(\"'127.0.0.1'\", \"'$dbuser'\", \"'$dbpassword'\"\\)\\; >>  /usr/share/nginx/html/test.php \n",
    "echo if \\(\\$conn\\){ >>  /usr/share/nginx/html/test.php \n",
    "echo   echo \\\"LNMP platform connect to mysql is successful\\!\\\"\\; >>  /usr/share/nginx/html/test.php \n",
    "echo   }else{  >>  /usr/share/nginx/html/test.php \n",
    "echo echo \\\"LNMP platform connect to mysql is failed\\!\\\"\\;  >>  /usr/share/nginx/html/test.php \n",
    "echo }  >>  /usr/share/nginx/html/test.php \n",
    "echo  phpinfo\\(\\)\\;  >>  /usr/share/nginx/html/test.php \n",
    "echo \\?\\>  >>  /usr/share/nginx/html/test.php \n",

测试部署结果

创建完成后,查看资源栈概况:


screenshot


浏览器中输入图中的的NginxWebsiteURL,得到如下结果,则部署成功:
screenshot

ROS示例模板

LNMP_basic.json
screenshot

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
存储 关系型数据库 MySQL
【MYSQL】 ——索引(B树B+树)、设计栈
索引的特点,使用场景,操作,底层结构,B树B+树,MYSQL设计栈
|
4月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。
|
4月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
4月前
|
JavaScript 应用服务中间件 nginx
nginx部署vue项目
本文介绍了将Vue项目部署到Nginx的步骤,包括构建Vue项目、上传dist文件夹到服务器、安装Nginx、配置Nginx代理静态文件以及重启Nginx,确保了Vue应用可以通过域名或IP地址访问。
235 1
|
4月前
|
前端开发 JavaScript 应用服务中间件
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
本文是一篇详细的教程,介绍了如何在Linux系统上安装和配置nginx,以及如何将打包好的前端项目(如Vue或React)上传和部署到服务器上,包括了常见的错误处理方法。
1309 0
linux安装nginx和前端部署vue项目(实际测试react项目也可以)
|
4月前
|
Kubernetes 应用服务中间件 nginx
k8s基础使用--使用k8s部署nginx服务
本文介绍了Kubernetes中核心概念Deployment、Pod与Service的基本原理及应用。Pod作为最小调度单元,用于管理容器及其共享资源;Deployment则负责控制Pod副本数量,确保其符合预期状态;Service通过标签选择器实现Pod服务的负载均衡与暴露。此外,还提供了具体操作步骤,如通过`kubectl`命令创建Deployment和Service,以及如何验证其功能。实验环境包括一台master节点和两台worker节点,均已部署k8s-1.27。
312 1
|
5月前
|
应用服务中间件 nginx Docker
docker应用部署---nginx部署的配置
这篇文章介绍了如何使用Docker部署Nginx服务器,包括搜索和拉取Nginx镜像、创建容器并设置端口映射和目录映射,以及如何创建一个测试页面并使用外部机器访问Nginx服务器。
|
4月前
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
279 0
|
关系型数据库 测试技术 应用服务中间件
|
3月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
234 7