【Linux】阿里云ECS搭建lnmp和lamp集群

搭建LNMP(Linux + Nginx + MySQL + PHP)或LAMP(Linux + Apache + MySQL + PHP)集群

  1. 创建ECS实例

    • 在阿里云控制台创建多个ECS实例,选择相应的操作系统和配置,确保这些实例在同一VPC网络内,并且能够相互通信。
  2. 安装和配置软件

    • 对于LNMP集群,安装Nginx、MySQL和PHP;
    • 对于LAMP集群,安装Apache、MySQL和PHP;
    • 配置软件以适应集群环境,确保它们能够在集群中协同工作。
  3. 配置负载均衡

    • 在阿里云控制台配置负载均衡,将流量分发到不同的ECS实例上,以实现负载均衡和高可用性。
  4. 设置数据库集群

    • 如果需要高可用性和容错性,可以考虑使用阿里云RDS创建MySQL集群或使用其他数据库集群解决方案。
  5. 配置监控和告警

    • 在阿里云控制台设置监控和告警,以便及时发现和解决集群中的问题。
  6. 优化性能和安全

    • 针对集群进行性能优化和安全加固,例如调整服务器参数、配置防火墙规则、定期更新软件等。
  7. 备份和灾难恢复

    • 设置定期备份策略,确保数据安全,并准备好灾难恢复方案,以应对可能发生的意外情况。
  8. 测试和监控

    • 完成集群搭建后,进行全面的功能测试和性能测试,并设置持续监控以保证集群的稳定运行。

阿里云的ECS搭建lnmp和lamp集群

  • 一、前期准备工作
    • 1.在阿里云配置EDS实例
    • 2.关闭系统内部防火墙
  • 二、部署lnmp
    • 1.安装Nginx
    • 2.安装MySQL数据库
    • 3.安装PHP
  • 三、将lnmp修改成lamp
    • 1.安装Apache
    • 2.安装apache对应的PHP
  • 四、修改apache端口号为88
  • 五、修改nginx端口号为99;
  • 六、同时启动apache和nginx服务,成功部署lamp和lnmp

一、前期准备工作

1.在阿里云配置EDS实例

在这里插入图片描述

  • 创建实例

在这里插入图片描述

  • 成功创建实例并进行了远程连接

在这里插入图片描述

2.关闭系统内部防火墙

运行以下命令,检查防火墙当前状态。$ sudo  status  ufw
如果防火墙状态为Status: inactive,则表示防火墙为关闭状态。如果防火墙状态为Status: active,则表示防火墙为开启状态。可选:关闭防火墙。
$ sudo stop ufw
$ sudo disable ufw   //开机不自启
如果您的防火墙为开启状态,需要运行以下命令,关闭防火墙并关闭开机自启动防火墙。

在这里插入图片描述

二、部署lnmp

在linux上安装Nginx、MySQL、配置PHP

1.安装Nginx

$ sudo apt update    //更新镜像源运行以下命令,安装Nginx。
$ sudo apt -y install nginx运行以下命令,查看Nginx版本。
$ sudo nginx -v返回结果如下所示,查看到Nginx的版本信息为1.18.0。同时也表示Nginx已成功安装。
nginx version: nginx/1.18.0 (Ubuntu)

在这里插入图片描述

2.安装MySQL数据库

运行以下命令,安装MySQL。
$ sudo apt -y install mysql-server运行以下命令,查看MySQL版本。
查看mysql版本
$ sudo mysql -V返回结果如下所示,表示MySQL已成功安装,MySQL的版本为8.0.27。
mysql  Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
  • 运行以下命令,进入MySQL。
$ sudo mysql
运行以下命令,设置root用户密码。ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
本示例中密码以Mysql@1234为例,示例命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
运行以下命令,退出MySQL数据库。exit;
  • 运行以下命令,对MySQL进行安全性配置。
$ sudo mysql_secure_installation根据命令行提示,依次完成以下配置项。输入root用户的密码。本示例中输入Mysql@1234。root@iZbp19jsi7s0g7m4zgc****:~# sudo mysql_secure_installationSecuring the MySQL server deployment.Enter password for user root: VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

说明:

在输入密码时,系统为了最大限度地保证数据安全,命令行将不做任何回显。您只需要输入正确的密码信息,然后按Enter键即可。

在这里插入图片描述

输入Y,设置密码验证策略。Press y|Y for Yes, any other key for No: Y
根据提示,选择密码验证策略。本示例输入0。Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
输入Y,更改root用户密码。Change the password for root ? ((Press y|Y for Yes, any other key for No) : Y
输入root用户密码。New password:Re-enter new password:Estimated strength of the password: 100
输入Y,确认使用已设置的密码。Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
输入Y删除MySQL自带的匿名用户。By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
输入Y,禁止MySQL的root用户的远程登录权限。Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
输入Y,移除test数据库。By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
输入Y,重新加载授权表。

在这里插入图片描述

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
当命令行回显All done!时,表示配置完成。

在这里插入图片描述

  • 登录MySQL数据库。
运行以下命令,登录MySQL数据库。
$ sudo mysql -uroot -p在命令行回显的Enter password:后输入已设置的数据库密码。
成功登录MySQL数据库后,命令行信息如下所示。
运行以下命令,退出MySQL数据库。
exit;

在这里插入图片描述

3.安装PHP

运行以下命令,安装PHP。$ sudo apt -y install php-fpm
运行以下命令,查看PHP版本。$ sudo php -v返回结果如下所示,表示PHP已成功安装,可查看到PHP版本为8.1.2

在这里插入图片描述

在这里插入图片描述

  • 修改Nginx配置文件以支持PHP。
运行以下命令,打开Nginx默认的配置文件。
$ sudo vim /etc/nginx/sites-enabled/default按i进入编辑模式,修改Nginx配置文件。
在server{}内,找到index开头的配置行,在该行中添加index.php。在server{}内找到location ~ \.php$ {},去除以下配置行的注释符号。location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}按Esc退出编辑模式,然后输入:wq并按Enter键,保存并退出文件。

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

  • 配置PHP
运行以下命令,在Nginx网站根目录中,新建phpinfo.php文件。
运行命令为:
$ sudo vim /var/www/html/phpinfo.php
按i进入编辑模式,添加以下配置信息。
phpinfo()函数会展示PHP的所有配置信息。<?php echo phpinfo(); ?>按Esc退出编辑模式,然后输入:wq并按Enter键,保存并退出文件。运行以下命令,启动PHP。
$ sudo systemctl start php8.1-fpm

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

运行以下命令,重启Nginx服务。
$ sudo systemctl restart nginx.service
  • 测试访问PHP配置信息页面

在本地Windows主机或其他具有公网访问能力的Windows主机中,打开浏览器。在浏览器的地址栏输入http://8.138.98.140/phpinfo.php进行访问。访问结果如下图所示,成功查看到PHP配置信息页面,表示LNMP环境部署成功。

在这里插入图片描述

三、将lnmp修改成lamp

(在lnmp的基础上关闭nginx服务,安装并启动apache)成功部署lamp

  • 成功搭建LNMP环境后,建议您删除phpinfo.php测试文件,消除数据泄露风险。
$ sudo rm -rf /var/www/html/phpinfo.php停止nginx服务
$ systemctl stop nginx

1.安装Apache

运行以下命令,更新Ubuntu系统内的软件包。
$ sudo apt update运行以下命令,安装Apache。
$ sudo apt-get -y install apache2运行以下命令,查看Apache版本。
$ apache2 -v   查看Apache版本。运行以下命令,启动Apache服务并设置服务开机自启动。
$ sudo systemctl start apache2
$ sudo systemctl enable apache2运行以下命令,查看Apache服务状态。
$ sudo systemctl status apache2返回结果类似如下所示,表示Apache已启动。

在这里插入图片描述

2.安装apache对应的PHP

$ sudo apt -y install libapache2-mod-php运行以下命令,查看PHP版本。
$ php -v
返回结果类似如下所示,表示PHP已成功安装,PHP的版本为8.1

在这里插入图片描述

在这里插入图片描述

  • 在Apache网站根目录中,创建测试网页。
运行以下命令,查看Apache网站根目录的路径信息。
$ sudo cat /etc/apache2/sites-available/000-default.conf
命令行返回结果中的DocumentRoot /var/www/html一行,即表示网站根目录为/var/www/html。运行以下命令,在网站根目录创建测试网页,并把phpinfo()函数添加至网页内容中。
phpinfo()函数会展示PHP的所有配置信息。
$ sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'运行以下命令,重启Apache服务。
$ sudo systemctl restart apache2

在这里插入图片描述

  • 在本地机器浏览器地址栏,输入http://8.138.98.140/phpinfo.php并按Enter键。显示如下页面表示安装成功。

在这里插入图片描述

输入8.138.98.140

在这里插入图片描述

四、修改apache端口号为88

$ cd  /var/www/html
$ ls
$ cd /etc/apache2
$ ls
$ vim ports.conf将Listen 80 改成Listen 88   ,后退出vim编辑模式

在这里插入图片描述

在这里插入图片描述

  • 手动在安全组的管理规则中加入端口88、99

在这里插入图片描述

  • 在本地机器浏览器地址栏,输入http://8.138.98.140:88/phpinfo.php并按Enter键

在这里插入图片描述

在这里插入图片描述

  • 输入:公网ip:88

在这里插入图片描述

五、修改nginx端口号为99;

$ vim  /etc/nginx/sites-enabled/default将原端口80改成99

在这里插入图片描述

在这里插入图片描述

  • 重启nginx失败

错误是apache2抢占了99端口,在apache2中删除99端口,重启apache2并重启nginx

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

而在ubuntu中的浏览器中访问nginx的端口,出现的却是apache的欢迎页

原因:apache与nginx是共用同一个站点目录的,即在apache和nginx中部署的网页文件都放在同一个目录下—/var/www/html

因此访问nginx的端口时本应该调用第三个文件作为欢迎页,却调用了apache的欢迎页文件(第二个)

修改:vim /etc/nginx/sites-available/default

根据所排列的顺序调用站点目录里的网页文件作为自己的欢迎页(解决一开始的问题只需把index.nginx-debian.html放在index.html前就行了)

在这里插入图片描述

  • 输入 公网IP:88 出现nginx界面

在这里插入图片描述

六、同时启动apache和nginx服务,成功部署lamp和lnmp

systemctl start apache2
systemctl start nginx

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第28题找出字符串中第一个匹配项的下标

题目&#xff1a; 题解&#xff1a; func strStr(haystack, needle string) int {n, m : len(haystack), len(needle)if m 0 {return 0}pi : make([]int, m)for i, j : 1, 0; i < m; i {for j > 0 && needle[i] ! needle[j] {j pi[j-1]}if needle[i] needle[…

安全加速SCDN带的态势感知能为网站安全带来哪些帮助

随着安全加速SCDN被越来越多的用户使用&#xff0c;很多用户都不知道安全加速SCDN的态势感知是用于做什么的&#xff0c;德迅云安全今天就带大家来了解下什么是态势感知&#xff0c;态势感知顾名思义就是对未发生的事件进行预知&#xff0c;并提前进行防范措施的布置&#xff0…

机器学习(31)PINN

文章目录 摘要Abstract一、监督学习二、文献阅读1. 题目2. abstract3. 偏微分方程的数据驱动解3.1连续时间模型example(Schrodinger equation)&#xff1a; 3.2离散时间模型Example (Allen–Cahn equation)&#xff1a; 4. 文献解读4.1 Introduction4.2 创新点 三、实验内容1.实…

车载电子电器架构 —— 电子电气架构开发总结和展望

车载电子电器架构 —— 电子电气架构开发总结和展望 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要…

【web网页制作】html+css旅游家乡山西主题网页制作(3页面)【附源码】

山西旅游网页目录 涉及知识写在前面一、网页主题二、网页效果Page1、景点介绍Page2、酒店精选|出行攻略Page3、景色欣赏 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 四、网页源码4.1 主页模块源码4.2 源码获取方式 作者寄语 涉及知识 山西旅游主题网页制作&am…

为什么光伏探勘测绘需要无人机?

随着全球对可再生能源需求的不断增长&#xff0c;光伏产业也迎来了快速发展的机遇。光伏电站作为太阳能发电的主要形式之一&#xff0c;其建设前期的探勘测绘工作至关重要。在这一过程中&#xff0c;无人机技术的应用正逐渐展现出其独特的优势。那么&#xff0c;为什么光伏探勘…

Java调用http接口的几种方式(HttpURLConnection、OKHttp、HttpClient、RestTemplate)

Java作为后端语言是开发接口实现功能供客户端调用接口&#xff0c;这些客户端中最主要是本项目的前端&#xff1b;但有时候也需要Java请求其他的接口&#xff0c;比如需要长连接转短链接&#xff08;请求百度的一个接口可以实现&#xff09;、获取三方OSS签名、微信小程序签名、…

IDEA 使用备忘录(不断更新)

IDEA 项目结构&#xff08;注意层级结构&#xff0c;新建相应结构时&#xff0c;按照以下顺序新建&#xff09;&#xff1a; project&#xff08;项目&#xff09; module&#xff08;模块&#xff09; package&#xff08;包&#xff09; class&#xff08;类&#xff09; 项…

公布应用程序

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列、spring教程等&#xff0c;大家有兴趣的可以看一看 &#x1f4d9;Jav…

【Vue】新手一步一步安装 vue 语言开发环境

文章目录 1、下载node.js安装包 1、下载node.js安装包 1.打开node.js的官网下载地址&#xff1a;http://nodejs.cn/download/ 选择适合自己系统的安装包&#xff1a;winds、mac 2. 配置node.js和npm环境变量 安装好之后&#xff0c;对npm安装的全局模块所在路径以及缓存所在路…

Spring Boot | Spring Boot中进行 “文件上传” 和 “文件下载”

目录: 一、SpringBoot中进行 " 文件上传" :1.编写 "文件上传" 的 “表单页面”2.在全局配置文件中添加文件上传的相关配置3.进行文件上传处理&#xff0c;实现 "文件上传" 功能4.效果测试 二、SpringBoot中进行 "文件下载" :“英文名称…

ASP.NET基于Ajax+Lucene构建搜索引擎的设计和实现

摘 要 通过搜索引擎从互联网上获取有用信息已经成为人们生活的重要组成部分&#xff0c;Lucene是构建搜索引擎的其中一种方式。搜索引擎系统是在.Net平台上用C#开发的&#xff0c;数据库是MSSQL Server 2000。主要完成的功能有&#xff1a;用爬虫抓取网页&#xff1b;获取有效…

NPU编译MultiScaleDeformableAttention

NPU对pytorch&#xff0c;想将检测模型在NPU上训练&#xff0c;存在编译MultiScaleDeformableAttention的需求。 然而&#xff0c;原dino模型https://github.com/IDEA-Research/DINO/tree/main/models/dino/ops/src 仅包含CPU版本和GPU版本&#xff1a; 是不是就真的无法解决…

传统图机器学习的特征工程-连接

概念及应用场景 通过已知连接补全未知连接 将link编码成为向量输入到机器学习模型中&#xff1a; 1.直接提取link的特征&#xff0c;构建D维向量 2.把link两段节点的D维向量拼在一起&#xff08;丢失了link本身的连接结构信息&#xff09; 应用&#xff1a; 1.客观静态图…

深度学习图像处理基础工具——opencv 实战信用卡数字识别

任务 信用卡数字识别 穿插之前学的知识点 形态学操作 模板匹配 等 总体流程与方法 1.有一个模板 2 用轮廓检测把模板中数字拿出来 外接矩形&#xff08;模板和输入图像的大小要一致 &#xff09;3 一系列预处理操作 问题的解决思路 1.分析准备&#xff1a;准备模板&#…

docker 安装 nginx + httpd + php-fpm

原文地址&#xff1a;http://www.taoluyuan.com/index.php/archives/30/#2 展示 1.安装 1.1安装docker 1.2安装nginx 1.3安装apache-httpd 1.4安装php-fpm 2.配置nginx反向代理 httpdphp-fmp 1.安装 1.1安装docker 移除旧的版本&#xff1a; sudo yum remove docker 安装…

在Mac中打开终端的3种方法

在使用Mac时&#xff0c;有时需要深入研究设置&#xff0c;或者完成一些开发人员级的命令行任务。为此&#xff0c;你需要终端应用程序来访问macOS上的命令行。下面是如何启动它。 如何使用聚焦搜索打开终端 也许打开终端最简单、最快的方法是通过聚焦搜索。要启动聚焦搜索&a…

GO语言调用本地自定义模块

1.创建一个模块 创建文件夹greetings并进入该文件夹 mkdir greetingss && cd greetings 初始化模块 go mod init com.gotest/greetings 初始化模块文件成功 模块文件内容如下 确保已安装VSCODE前提下,运行下面命令创建greetings.go文件 在greethings.go添加下面代…

当我们使用git 上传码云的时候报错:Push rejected Push to origin/master was rejected

在我们推送成果去git&#xff08;码云&#xff09;的过程中报错&#xff1a;Push rejected Push to origin/master was rejected 这个问题是我们在推的时候被拒绝了 控制台报错&#xff1a; 18:46:19.665: [zengqingqingandluoxuwen] git -c credential.helper -c core.quote…

系统架构最佳实践 -- 金融企业的资损问题介绍

什么是资损 资损通常来讲是指支付场景下的资金损失&#xff0c;这里可以从两个维度看 用户角度&#xff1a;多扣用户款导致用户资金损失&#xff0c;此问题一般需要通过客服等渠道反馈&#xff0c;可以把多的钱退给用户&#xff0c;但是很大程度上损失了用户体验&#xff1b; …