手动在Ubuntu22.04上部署LAMP环境

news2024/11/26 23:54:55

简介

LAMP环境是常用的Web开发环境之一,其中LAMP分别代表Linux、Apache、MySQL和PHP。本文介绍如何在Ubuntu操作系统的ECS实例内部署LAMP环境。

准备工作

该实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。

  • 操作系统:Ubuntu 22.04、Ubuntu 20.04、Ubuntu 18.04。

  • 实例安全组的入方向规则已放行22、80、443端口。

LAMP各版本:

  • Apache的版本为2.4.52。 
  • MySQL的版本为8.0.35。
  • PHP的版本为8.1.2。

一、安装Apache

1.更新Ubuntu系统内的软件包。

sudo apt update

2.安装Apache。

sudo apt-get -y install apache2

3.查看Apache的版本。

apache2 -v

效果如下:(表示Apache已成功安装)

4.运行以下命令,启动Apache服务并设置服务开机自启动。

sudo systemctl start apache2
sudo systemctl enable apache2

运行效果: 

5.运行以下命令,查看Apache服务状态。

sudo systemctl status apache2

效果如下:(表示Apache已启动)

按下键盘上的 q 键,退出并返回到命令提示符界面。

6.验证Apache

浏览器输入http://云服务器实例的公网IP

二、安装并配置MySQL

1.安装MySQL。

a.运行以下命令,安装MySQL。
sudo apt -y install mysql-server
b.运行以下命令,查看MySQL版本。
mysql -V

效果如下:(表示MySQL已成功安装)。

2.启动MySQL服务。

sudo systemctl start mysql

3.设置开机启动MySQL。

sudo systemctl enable mysql
sudo systemctl daemon-reload

效果如下: 

4.配置MySQL。

a.进入MySQL。
sudo mysql

效果如下: 

 b.设置root用户密码。

本示例中密码以PASSword@1234为例,示例命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'PASSword@1234';
c.退出MySQL数据库。
exit;

效果如下: 

 d.对MySQL进行安全性配置。
sudo mysql_secure_installation
e.根据命令行提示,依次完成以下配置项。

输入root用户的密码。本示例中密码PASSword@1234。

 输入Y,设置密码验证策略。

选择密码验证策略。

输入Y,更改root用户密码,输入root用户密码。

输入Y,确认使用已设置的密码。

输入Y,删除MySQL自带的匿名用户。

输入Y,移除test数据库。

输入Y,重新加载授权表。(配置完成如图)

5.测试登录MySQL数据库。

a.登录MySQL数据库。
sudo mysql -uroot -p
b.输入已设置的数据库密码如图:
c. 退出MySQL数据库。
exit;

6.可选配置

(可选)默认情况下,MySQL数据库使用端口号3306监听并只接受来自本地IP地址127.0.0.1的连接请求。如需允许MySQL接受来自任何IP地址的连接,您需要将监听IP地址更改为0.0.0.0。具体操作如下所示:

注:将MySQL配置为监听0.0.0.0会使数据库更容易受到未经授权访问的风险。因此,在允许来自任何IP的连接之前,请您务必认识到相关的安全威胁,并采取必要的保护措施,比如应用VPN、实施防火墙限制和加强账户权限管理。

a.执行以下命令,打开my.cnf配置文件。
sudo vim /etc/mysql/my.cnf
b.按i键进入编辑模式,然后添加如下内容。
[mysqld]
bind-address = 0.0.0.0

修改完成后,按Esc键退出编辑模式,然后输入:wq保存并退出。

c.执行以下命令,重启MySQL服务。
sudo systemctl restart mysql

三、安装PHP

1.安装PHP。

sudo apt -y install php-fpm
sudo apt -y install libapache2-mod-php

2.查看PHP版本。

php -v

效果如下:(表示PHP已成功安装)

3.在Apache网站根目录中,创建测试网页。

a.查看Apache网站根目录的路径信息。
sudo cat /etc/apache2/sites-available/000-default.conf

 网站根目录为/var/www/html

b.在网站根目录创建测试网页,并把phpinfo()函数添加至网页内容中。
sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php'

4.重启Apache服务。

sudo systemctl restart apache2

5.验证

在本地机器浏览器地址栏,输入http://<ECS实例公网IP地址>/phpinfo.php。效果如图:

四、 后续

成功搭建LAMP环境后,建议您删除phpinfo.php测试文件,消除数据泄露风险。

sudo rm -rf /var/www/html/phpinfo.php

五、配置WendaSNS

具体操作,查看WendaSNS配置。

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

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

相关文章

【Java】java实现文件上传和下载(上传到指定路径/数据库/minio)

目录 上传到指定路径 一、代码层级结构 二、文件上传接口 三、使用postman进行测试&#xff1b; MultipartFile接收前端传递的文件&#xff1a;127.0.0.1:8082/path/uploadFile part接收前端传递的文件&#xff1a;127.0.0.1:8082/path/uploadFileByRequest 接收前端传递…

【存储芯片】CS创世 SD NAND:可以机贴的存储芯片

什么是CS创世 SD NAND呢&#xff1f;很多的朋友一直想知道这个问题。今天精心准备了SD NAND 的一个介绍。其实很多工程师朋友对CS创世 SD NAND有很多称呼。比如&#xff1a;贴片式T卡、贴片式TF卡、贴片式SD卡、可焊接的T卡&#xff0c;可焊接的SD卡&#xff0c;可贴片的TF卡&a…

TikTok引流中海外云手机的实用功能分享

在当下&#xff0c;TikTok已成为全球范围内最受欢迎的社交媒体平台之一&#xff0c;拥有着庞大的用户群体和潜在的商业机会。为了在TikTok上实现更好的引流效果&#xff0c;利用海外云手机成为了一个明智的选择。接下来&#xff0c;我们将深入探讨海外云手机的功能以及它如何助…

LLM优化:开源星火13B显卡及内存占用优化

1. 背景 本qiang~这两天接了一个任务&#xff0c;部署几个开源的模型&#xff0c;并且将本地经过全量微调的模型与开源模型做一个效果对比。 部署的开源模型包括&#xff1a;星火13B&#xff0c;Baichuan2-13B, ChatGLM6B等 其他两个模型基于transformers架构封装&#xff0…

创建基于时间的 UUID

概述 在本文中&#xff0c;我们将会 对 UUIDs 和基于时间的 UUIDs&#xff08;time-based UUIDs&#xff09; 进行一些探讨。 当我们在对基于时间的 UUIDs 进行选择的时候&#xff0c;总会遇到一些好的方面和不好的方面&#xff0c;如何进行选择&#xff0c;也是我们将要简要…

代码+视频,R语言绘制生存分析模型的时间依赖(相关)性roc曲线和时间依赖(相关)性cindex曲线

ROC曲线分析是用于评估一个因素预测能力的手段&#xff0c;是可以用于连续型变量分组的方法。在生存分析中&#xff0c;疾病状态和因素取值均会随时间发生变化。而标准的ROC曲线分析将个体的疾病状态和因素取值视作固定值&#xff0c;未将时间因素考虑在分析之中。在这种情况下…

一加Ace3/12/Ace2pro手机ColorOS14刷KernelSU内核ROOT-解决无限重启变砖

一加Ace3/一加12/一加11等手机升级了安卓14底层&#xff0c;并且ColorOS版本也更新到了14版本界面和功能都比之前的系统表现更加优秀&#xff0c;但刷机方面&#xff0c;相对之前存在一些差异&#xff0c;特别是KernelSU内核级别root权限&#xff0c;不再支持一键刷入KernelSU通…

【Linux网络】SSH--远程控制与访问

目录 一、SSH远程管理 1.SSH的定义 2.远程传输的种类 3.OpensSSH 4.SSH客户端与服务端 二、配置OpenSSH服务器 1.sshd_config配置文件的常用选项设置 2.sshd 服务支持两种验证方式 1&#xff09;密码验证 2&#xff09;密钥对验证 三、使用 SSH 客户端程序 1.ssh 远…

从 Sora 制作的短片看AI生成视频的优势与局限性解析

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

R语言的基本图形

一&#xff0c;条形图 安装包 install.packages("vcd") 绘制简单的条形图 barplot(c(1,2,4,5,6,3)) 水平条形图 barplot(c(1,2,4,5,6,3),horiz TRUE) 堆砌条形图 > d1<-c("Placebo","Treated") > d2<-c("None",&qu…

聚类分析:使用R语言对Iris数据集进行K均值聚类

引言 聚类分析是一种常用的无监督学习技术&#xff0c;旨在将数据集中的样本分成具有相似特征的组。K均值聚类是其中一种常见的方法&#xff0c;它通过将数据点划分为K个簇&#xff0c;并使每个数据点与其所属簇的中心点距离最小化来实现聚类。本文将介绍如何使用R语言执行K均…

matlab求时间序列的时间滞后相关性

matlab求时间序列的时间滞后相关性 自相关、互相关、加权相关、滞后相关等相关性分析&#xff0c;在时间序列分析中经常被用到&#xff0c;可以量化两个时间序列的相关程度&#xff0c;特别对于有季节性趋势的序列中这个分析尤为必要。下面介绍一个Matlab函数&#xff0c;用于进…

FPGA实现图像处理之【直方图均衡-寄存器版】

FPGA实现直方图统计 一、图像直方图统计原理 直方图的全称为灰度直方图&#xff0c;是对图像每一灰度间隔内像素个数的统计。即对一张图片中每隔二灰度值的像素数量做统计&#xff0c;然后以直方图的形式展现出来。图下的亮暗分布在直方图中就可以一目了然&#xff0c;直方图…

分布式系统事务一致性解决方案(基于事务消息)

参考&#xff1a;https://rocketmq.apache.org/zh/docs/featureBehavior/04transactionmessage/ 文章目录 概要错误的方案方案一&#xff1a;业务方自己实现方案二&#xff1a;RocketMQ 事务消息什么是事务消息事务消息处理流程事务消息生命周期使用限制使用示例使用建议 概要 …

WPF —— MVVM 指令执行不同的任务实例

标签页 设置两个按钮&#xff0c; <Button Content"修改状态" Width"100" Height"40" Background"red"Click"Button_Click"></Button><Button Content"测试"Width"100"Height"40&…

java案例-读取xml文件

需求 导入依赖 <dependencies><!-- dom4j --><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency> </dependencies>代码 SAXReader saxReade…

BERT一个蛋白质-季军-英特尔创新大师杯冷冻电镜蛋白质结构建模大赛-paipai

关联比赛: “创新大师杯”冷冻电镜蛋白质结构建模大赛 解决方案 团队介绍 paipai队、取自 PAIN AI&#xff0c;核心成员如我本人IvanaXu(IvanaXu GitHub)&#xff0c;从事于金融科技业&#xff0c;面向银行信用贷款的风控、运营场景。但我们团队先后打过很多比赛&#xf…

Vue后台系统demo小计

创建项目 1.报错 Error: command failed: npm install --loglevel error --legacy-peer-deps 措施1&#xff1a;node.js文件夹属性 》高级 》选择第一个允许 Users(XXX\Users) &#xff08;对我无用&#xff09; 措施2&#xff1a;PowerShell(以管理员身份运行) 》 cd 想存…

C++ | Leetcode C++题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; class Solution { public:bool canJump(vector<int>& nums) {int n nums.size();int rightmost 0;for (int i 0; i < n; i) {if (i < rightmost) {rightmost max(rightmost, i nums[i]);if (rightmost > n - 1) {r…

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 打家劫舍 II(难度⭐⭐)(67)

1. 题目解析 题目链接&#xff1a;213. 打家劫舍 II 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 这个问题是经典的“打家劫舍”问题的变种&#xff0c;原问题是在单排房屋中进行偷窃&#xff0c;而这个问题则是在…