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

简介

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.mzph.cn/pingmian/4811.shtml

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

相关文章

关于Dockerfile镜像实例

文章目录 Dockerfile镜像实例一、构建SSH镜像1、建立工作目录2、生成镜像3、启动容器并修改root密码 二、构建systemd镜像1、建立工作目录2、生成镜像3、运行镜像容器4、测试容器systemd 三、构建Nginx镜像1、建立工作目录2、编写Dockerfile脚本3、编写run.sh启动脚本4、生成镜…

源代码加密

企业到底该如何正确选择源代码加密产品&#xff1f; 源代码加密的方法和重点到底是怎样的&#xff1f; 源代码开发环境复杂&#xff0c;涉及的开发软件、文件类型庞杂多变&#xff0c;究竟有什么源代码加密软件能够适应众多开发软件而不影响原有的工作效率&#xff1f; 相信…

个人学习总结__打开摄像头、播放网络视频的以及ffmpeg推流

前言 最近入手了一款非常便宜的usb摄像头&#xff08;买回来感觉画质很低&#xff0c;没有描述的4k&#xff0c;不过也够用于学习了&#xff09;,想着利用它来开启流媒体相关技术的学习。第一步便是打开摄像头&#xff0c;从而才能够对它进行一系列后续操作&#xff0c;诸如实…

有趣的 CSS 图标整合技术!sprites精灵图,css贴图定位

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。 云桃桃-大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合…

vue3.0(三) Vite文件目录结构及SFC语法

文章目录 Vite介绍Vite文件目录结构SFC语法SFC 语法定义bug解决 Vite介绍 为什么使用Vite&#xff1f; 表现 与Vite的ESbuild预绑定使其比使用任何其他JS绑定器都快10到100倍。这是因为它有助于提高页面速度并将CommonJS/UMD模块转换为ESM。 基于Vite文件&#xff0c;“预绑定…

npm详解

npm&#xff0c;全称Node Package Manager 是**随Node.js一起安装的包管理器** 1. **包管理**&#xff1a;允许用户通过命令行安装、更新、删除和管理JavaScript包&#xff0c;这些包是Node.js应用程序的构建块。 2. **依赖管理**&#xff1a;自动处理项目所需的所有依赖项&am…

深入理解Linux调试工具eBPF和strace、内存泄漏处理、Kubernetes容器调试以及C++协程的崩溃信息收集

在软件开发领域&#xff0c;无论是初级开发者还是资深工程师&#xff0c;都需要面对复杂的调试工作。本文将介绍几个重要的调试工具和技术&#xff0c;并提供实际调试方法的指导&#xff0c;包括Linux环境下的eBPF和strace&#xff0c;内存泄漏问题的处理&#xff0c;Kubernete…

RocketMq详解:一、RocketMQ 介绍及基本概念

文章目录 前言1.RocketMQ简介2.RocketMQ 特点3.核心特性4.应用场景5.RocketMQ 优势6.RocketMQ 四大核心组件6.1 NameServer1.NameServer作用2.NameServer被设计为无状态的原因3.和NameServer和Zookeeper的区别4.NameServer的高可用保障 6.2 Broker1.Broker部署方式2.高可用与负…

[Algorithm][分治 - 归并排序][排序数组][交易逆序对的总数][计算右侧小于当前元素的个数][翻转对]详细讲解

目录 0.原理讲解1.排序数组1.题目链接2.代码实现 2.交易逆序对的总数1.题目链接2.算法原理详解3.代码实现 3.计算右侧小于当前元素的个数1.题目链接2.算法原理详解3.代码实现 4.翻转对1.题目链接2.算法原理详解3.代码实现 0.原理讲解 归并排序的流程充分的体现了**「分⽽治之」…

监控易:灵活布局与直观展示,重塑网络监控体验

在数字化时代&#xff0c;网络监控的重要性日益凸显。为了更好地满足用户对网络监控的个性化需求&#xff0c;监控易产品不断创新&#xff0c;特别是在布局与展示方面&#xff0c;为用户提供了前所未有的灵活性和直观性。 灵活的布局选择 监控易深知每个用户的管理需求和习惯都…

利用RunnerGo数据大屏强化测试管理与决策

测试平台中的数据大屏在提供实时监控、统计分析、效率提升、制定策略和促进沟通等方面具有重要的意义。它为测试团队提供更全面、更直观的数据支持&#xff0c;有助于提高测试质量和效率&#xff0c;减少风险&#xff0c;并加强团队协作和沟通。 数据大屏也是RunnerGo的核心特…

k8s:精通 Pod 操作的关键命令

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Pod是最基本的部署单元&#xff0c;包含了运行应用所需要的容器、存储、网络等资源。精通Pod操作的关键命令对于有效地管理和维护Kubernetes集群至关重要。以下是一些关键的Pod操作命令&#xff1a; 查看Pod列表&#x…

用python写单链表

目录 链表的数据结构单链表操作头插入尾插入中间插入 删除查找 总结 链表的数据结构 链表是什么呢&#xff0c;来看下 链表&#xff0c;是一种数据结构。相对于数组而言&#xff0c;是不连续的一块内存空间。不仅如此&#xff0c;而且链表有多种&#xff0c;包括&#xff1a;…

Spring Security OAuth2 统一登录

介绍 Spring Security OAuth2 是一个在 Spring Security 框架基础上构建的 OAuth2 授权服务器和资源服务器的扩展库。它提供了一套功能强大的工具和组件&#xff0c;用于实现 OAuth2 协议中的授权流程、令牌管理和访问控制。 Git地址&#xff1a;yunfeng-boot3-sercurity: Sp…

Java 集合中获取数据的前驱和后继元素

目录 1. NavigableSet 和 NavigableMap 2. ListIterator 3. ConcurrentSkipListSet 和 ConcurrentSkipListMap 4.示列 1. NavigableSet 和 NavigableMap 特性: NavigableSet 和 NavigableMap 接口提供了丰富的方法来获取给定元素的前驱和后继元素。higher(E e) 方法返回比给…

火力发电厂超低排放标准?

目录&#xff1a; 引言火力发电厂超低排放的背景与意义火力发电厂超低排放环保指标解析环保验收要求超低排放的重要性环保验收的流程与要点超低排放技术措施与应用火力发电厂超低排放的监测与评估环保验收中常见问题及解决方案案例分析&#xff1a;成功实现超低排放的火力发电…

uniapp分包,以及通过uni-simple-router进行分包

先说一下uniapp的直接分包方式&#xff0c;很简单&#xff1a; 配置分包信息 打开manifest.json源码视图&#xff0c;添加 “optimization”:{“subPackages”:true} 开启分包优化 我们在根目录下创建一个pagesA文件夹&#xff0c;用来放置需要分包的页面 然后配置路由 运行到…

Unity3d 学习之按钮绑定事件

创建测试脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class myTest : MonoBehaviour {// Start is called before the first frame updatepublic Button _codeBindBtn null;void Start(){if (_codeBi…

020Node.js的FS模块使用fs.mkdir创建目录

Node.js的FS模块使用fs.mkdir创建目录 //fs.mkdir 创建目录 /*path 将创建的目录路径mode 目录权限&#xff08;读写权限&#xff09;&#xff0c;默认777callback 回调&#xff0c;传递异常参数err*/ const fsrequire(fs);fs.mkdir(./css,(err)>{if(err){console.log(err)…

03.Kafka 基本使用

Kafka 提供了一系列脚本用于命令行来操作 kafka。 1 Topic 操作 1.1 创建 Topic 创建一个名为 oldersix-topic 的 topic&#xff0c;副本数设置为3&#xff0c;分区数设置为2&#xff1a; bin/kafka-topics.sh \ --create \ --zookeeper 192.168.31.162:2181 \ --replication…