Ubuntu22.04搭建LAMP环境(linux服务器学习笔记)

news2025/1/16 11:00:49

目录

引言:

一、系统更新

二、安装搭建Apache2

1.你可以通过以下命令安装它:

2.查看Apache2版本

3.查看Apache2运行状态

4.浏览器访问

三、安装搭建MySQL

1.安装MySQL

2.查看MySQL 版本

 3.安全配置MySQL

3.1是否设置密码?(按y|Y表示是,按其他任意键表示否) :

3.2是否删除匿名用户  ?(按y|Y表示是,按其他任意键表示否)

3.3禁止root远程登录?(按y|Y表示是,按其他任意键表示否) :

3.4删除'test'数据库及其访问权限?(按y|Y表示是,按其他任意键表示否) :

3.5现在重新加载权限表?(按y|Y表示是,按其他任意键表示否) :

4.创建新的用户

4.1root用户的身份登录到MySQL

4.2创建新用户 

4.3给新建用户添加权限

5看情况修改配置文件

 情况1:不允许远程访问(默认)

 情况2:允许远程访问(需要配置)

四、安装PHP及其扩展

1.安装PHP及其扩展

 2.启用php-mysqli扩展

        2.1查看PHP的版本

        2.2vim查看编辑PHP的配置文件

 3.安装完成后,重启Apache2服务以使PHP生效:

五、测试LAMP环境

六、总结:



引言

LAMP(Linux, Apache, MySQL, PHP)是一种流行的开源Web服务器软件栈,广泛应用于构建动态网站和Web应用程序。本文将整合本人学习Linux搭建过的单体服务器,详细介绍如何在Ubuntu 22.04上搭建LAMP环境,从系统更新到安装和配置各个组件,再到测试环境是否搭建成功。

一、系统更新

在开始之前,确保你的Ubuntu 22.04系统是最新的。打开终端并输入以下命令来更新系统:

sudo apt update
sudo apt upgrade

如下图,等待更新完毕.....

二、安装搭建Apache2

Apache2是LAMP环境中的Web服务器。

1.你可以通过以下命令安装它:
sudo apt install apache2

 如下图,等待安装完毕.....

2.查看Apache2版本
sudo apache2 -v

  如下图,我这边的版本是Apache/2.4.52 (Ubuntu)

3.查看Apache2运行状态

安装完成后,你可以使用如下命令检查Apache2是否正在运行。

sudo systemctl status apache2

如下图,我这边显示Apache HTTP服务器已经成功启动,并且正在运行。

4.浏览器访问

在浏览器中访问服务器的IP地址,以验证Apache2的默认页面是否可以正常显示。

三、安装搭建MySQL

1.安装MySQL
sudo apt install mysql-server mysql-client

等待安装完毕....

2.查看MySQL 版本
sudo mysql --version

如下图: 

 3.安全配置MySQL

安装完成后,运行以下命令进行安全配置,如设置root密码、删除匿名用户等。

sudo mysql_secure_installation

运行后如下图: 

3.1是否设置密码?(按y|Y表示是,按其他任意键表示否) :

要求设置一个密码。询问你,是否想要设置密码?如果是,输入y或Y;如果不设置,输入其他。

这边选择y,输入后回车,如下:

        要求你选择一个级别来设置密码验证策略。     

  • 低级别(LOW):密码长度至少为8个字符。
  • 中级别(MEDIUM):密码长度至少为8个字符,且必须包含数字、大小写字母以及特殊字符。
  • 高级别(STRONG):密码长度至少为8个字符,包含数字、大小写字母、特殊字符,并且不能是字典文件中的单词(这通常意味着密码需要足够复杂,以避免与常见单词或短语匹配)。

分别对应[0,1,2],输入对应的数字即可:

3.2是否删除匿名用户  ?(按y|Y表示是,按其他任意键表示否)

在大多数情况下,建议移除匿名用户以增强数据库的安全性。如果你确实需要允许某些用户以匿名方式访问数据库(尽管这在大多数情况下是不推荐的),你应该仔细考虑并设置适当的权限和访问控制。

输入y后按enter  成功删除 

3.3禁止root远程登录?(按y|Y表示是,按其他任意键表示否) :

为了增强MySQL服务器的安全性,通常建议仅允许root用户从本地主机(即服务器本身)进行连接,而不允许从远程位置连接。这是因为root用户拥有对数据库的完全访问权限,如果允许远程连接,那么任何能够访问该网络的人都有可能尝试猜测或破解root密码,进而获得对数据库的完全控制权。

输入Y,禁止root远程登录。回车后,如下:

3.4删除'test'数据库及其访问权限?(按y|Y表示是,按其他任意键表示否) :

在生产环境中,出于安全考虑,通常建议删除默认的'test'数据库。这是因为如果保留该数据库,任何能够连接到MySQL服务器的人都可能访问它,这可能会带来安全风险,尤其是如果该数据库包含敏感信息或测试数据时。

输入Y,删除'test'数据库及其访问权限。回车后,如下:

3.5现在重新加载权限表?(按y|Y表示是,按其他任意键表示否) :

在MySQL中,权限表存储了关于用户账户、它们可以访问哪些数据库、表以及可以执行哪些操作的信息。当你对MySQL的用户权限进行更改(例如添加新用户、删除用户、更改用户密码或修改用户权限)后,这些更改不会立即生效,直到你重新加载权限表。

重新加载权限表是一个必要的步骤,以确保MySQL服务器知道最新的权限设置,并能够根据这些设置来允许或拒绝用户的访问请求。

输入Y,选择重新加载权限表。回车后,如下:

All done! 意味着所有的步骤都已经完成,如移除匿名用户、禁止root远程登录、删除'test'数据库以及重新加载权限表等。

4.创建新的用户

由于上述步骤禁止root远程访问,所以要添加一个用户和密码。

4.1root用户的身份登录到MySQL
sudo mysql -u root -p

回车后输入前面设置的root用户的密码,如下图 :

4.2创建新用户 

输入以下命令创建 新用户zzj2144

create user 'zzj2144'@'%' identified by 'zzj123456789';

 成功创建:

查看用户    

select user,host,plugin from mysql.user;

执行这条查询语句后,你将得到一个结果集,其中包含了MySQL服务器上所有用户账户的用户名、允许连接的主机以及使用的身份验证插件。

4.3给新建用户添加权限

由于新建的MySQL用户基本上没有什么权限,我们需要手动添加。

GRANT ALL PRIVILEGES ON mydatabase.* TO 'zzj2144'@'%';

这里的ALL PRIVILEGES表示所有权限,mydatabase.*表示mydatabase数据库中的所有对象,'zzj2144'@'%'表示用户zzj2144可以从任何主机连接。

 成功添加

5看情况修改配置文件

vim查看编辑MySQL服务器配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf
 情况1:不允许远程访问(默认)
bind-address            = 127.0.0.1
mysqlx-bind-address     = 127.0.0.1

 情况2:允许远程访问(需要配置)
user            = mysql
 pid-file       = /var/run/mysqld/mysqld.pid
 socket = /var/run/mysqld/mysqld.sock
 port           = 3306
 datadir        = /var/lib/mysql

四、安装PHP及其扩展

 PHP是LAMP环境中的脚本语言,用于处理Web页面上的动态内容。你可以通过以下命令安装PHP及其必要的扩展:

1.安装PHP及其扩展
sudo apt install php libapache2-mod-php php-mysql

等待安装...

 2.启用php-mysqli扩展
        2.1查看PHP的版本
php -v

 这边PHP的版本是8.1

        2.2vim查看编辑PHP的配置文件
sudo vim /etc/php/你的php版本/apache2/php.ini

如:vim /etc/php/8.1/apache2/php.ini

去掉这个注释:

 3.安装完成后,重启Apache2服务以使PHP生效:
sudo systemctl restart apache2

五、测试LAMP环境

为了验证LAMP环境是否搭建成功,你可以创建一个简单的PHP文件来测试。在Apache2的Web根目录(通常是/var/www/html)中创建一个名为info.php的文件,并输入以下PHP代码:

<?php
phpinfo();
?>

 保存文件后,在浏览器中访问http://<服务器IP地址>/info.php,到这里,如果环境配置成功的话你应该会看到PHP的配置信息页面。如下图:

总结:

  1. 防火墙设置:确保你的防火墙允许HTTP和HTTPS流量通过。

  2. 安全更新:定期检查并更新系统、Apache2、数据库和PHP的安全补丁。

  3. 备份:定期备份数据库和Web内容,以防数据丢失。

  4. 日志监控:定期检查Apache2和数据库的日志文件,以监控服务器的运行状态和潜在的安全问题。

 恭喜你到这里,在Ubuntu 22.04上成功搭建一个功能完善的LAMP环境。接下来将在此基础上安装phpMyAdmin。欲知后事,且待下节。

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

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

相关文章

小尺寸低功耗蓝牙模块在光伏清扫机器人上的应用

一、引言 随着可再生能源的迅速发展&#xff0c;光伏发电系统的清洁与维护变得越来越重要。光伏清扫机器人通过自动化技术提高了清洁效率&#xff0c;而蓝牙模组的集成为这些设备提供了更为智能的管理和控制方案。 二、蓝牙模组的功能与实现&#xff1a; 蓝牙模组ANS-BT103M…

通过linux命令获取自选股票价格及大盘涨跌幅

技术发展与数据获取需求 互联网与金融数据融合:随着互联网的普及和金融市场的数字化发展,金融数据的获取和分析变得更加便捷和重要。投资者希望能够及时、准确地获取股票价格和市场指数等信息,以便做出合理的投资决策。Linux 作为一种强大的操作系统,为数据获取和处理提供…

Linux 远程连接服务

远程连接服务器简介 什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统&#xff0c;让你在远程终端前登录linux主机以取得可操 作主机接口&#xff08;shell&#xff09;&#xff0c;而登录后的操作感觉就像是坐在系统前面一样。 远程连接服务器的功…

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始&#xff0c;到配置数据源、创建DataSource bean、定义实体和Repository&#xff0c;最后到配置事务管理器和使用多数据…

Ubuntu22.04深度学习环境安装【显卡驱动安装】

前言 使用Windows配置环境失败&#xff0c;其中有一个包只有Linux版本&#xff0c;Windows版本的只有python3.10的&#xff0c;所以直接选用Linux来配置环境&#xff0c;显卡安装比较麻烦&#xff0c;单独出一期。 显卡驱动安装 方法一&#xff1a;在线安装&#xff08;操作…

数智运营一体化平台项目经营分享

分离前后台&#xff0c;增强产品管理灵活性 前端成熟的流程平台&#xff0c;支持低代码快速灵活配置流程表单&#xff0c;完美解决流程频繁变化与快速上线、费用控制的矛盾。使产品管理体系&#xff0c;摆脱了流程可移植性差和投入大量人力物力无止境修改流程的困境。同时&…

UE5 猎户座漂浮小岛 09 移动能力 角色属性

UE5 猎户座漂浮小岛 09 移动能力 角色属性&#xff08;1&#xff09; 1.移动能力 1.1 加速跑 BlendSpace&#xff1a;混合空间 2.角色属性 2.1 行动点数 AP&#xff1a;Action Point Max AP&#xff1a;Max Action Point AP CPS&#xff1a;Action Point Consume Per Sec…

LeetCode---426周赛

题目列表 3370. 仅含置位位的最小整数 3371. 识别数组中的最大异常值 3372. 连接两棵树后最大目标节点数目 I 3373. 连接两棵树后最大目标节点数目 II 一、仅含置位位的最小整数 题目要求我们返回二进制数位全为1&#xff0c;且大于 n 的最小的整数&#xff0c;我们可以直…

HTML笔记()蜘蛛纸牌之卡牌拖拽

效果 代码 <!DOCTYPE html> <html><head><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #2b2b2b;position: relative;}.card{/*设置卡牌的外观*/width: 150px;height: 200px;background-…

基于springboot校园生活服务平台源码和论文

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C、python、数据可视化、大数据、文案 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一…

C++ 数组与字符串全解析:从基础到应用

目录 数组和字符串 &#xff08;一&#xff09;数组&#xff08;在 C 中&#xff09; 1.一维数组 2.二维数组 &#xff08;二&#xff09;C - style 字符串 &#xff08;三&#xff09;C string 类 数组和字符串 &#xff08;一&#xff09;数组&#xff08;在 C 中&…

Git常用的命令【提交与回退】

git分布式版本控制系统 &#xff08;SVN集中式版本控制系统&#xff09;之间的对比 git有本地仓库和远程仓库&#xff0c;不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。 然后多个人员在本地仓库协作的代码&#xff0c;可以提交到远程仓库中做整合。 git本…

JAVA秋招面试题精选-第一天总结

目录 分栏简介&#xff1a; 问题一&#xff1a;订单表每天新增500W条数据&#xff0c;分库分表应该怎么设计&#xff1f; 问题难度以及频率&#xff1a; 问题导向&#xff1a; 满分答案&#xff1a; 举一反三&#xff1a; 问题总结&#xff1a; 问题二&#xff1a;解释…

C—初阶结构体

若是阁下满意的话&#xff0c;能否一键三连呢&#xff01;&#xff01;&#xff01;&#xff01; 结构体基础知识&#xff1a; 概念&#xff1a;结构体是一些值的集合&#xff0c;这些值称为变量&#xff0c;变量可以是不同类型 这里我们再想一下之前的数组&#xff0c;数组是一…

物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉

0. 要实现的效果 让树莓派可以识别身边的一些物品&#xff0c;比如电脑&#xff0c;鼠标&#xff0c;键盘&#xff0c;杯子&#xff0c;行李箱&#xff0c;双肩包&#xff0c;床&#xff0c;椅子等 1. 硬件设备 树莓派 5 raspberrypi.com/products/raspberry-pi-5/树莓派官方摄…

JS学习(1)(基本概念与作用、与HTML、CSS区别)

目录 一、JavaScript是什么&#xff1f; &#xff08;1&#xff09;基本介绍 &#xff08;2&#xff09;简称&#xff1a;JS&#xff1f; 二、JavaScript的作用。 三、HTML、CSS、JS之间的关系。 &#xff08;1&#xff09;html、css。 &#xff08;2&#xff09;JavaScript。 …

matlab读取NetCDF文件

matlab对NetCDF文件进行信息获取和读取数据 文章目录 前言一、什么是NetCDF文件二、读取NetCDF文件数据 1.引入库 2.读入数据总结 前言 在气象学中&#xff0c;许多气象数据存储在NetCDF文件中&#xff0c;后缀为.nc&#xff0c;通常可以用NCL、python和MATLAB等对该…

shell自动显示当前git的branch

效果简介&#xff1a; 1. 如果没在git仓库&#xff0c;显示无变化 2. 如果在git仓库&#xff0c;显示当前分支 实现方法&#xff1a; 在~/.bashrc 里添加&#xff1a; function git_branch { test -d .git && branch"git branch | grep "^\*" | sed…

第四十一天 ASP应用 HTTP.sys 漏洞 iis6文件解析漏洞和短文件漏洞 access数据库泄露漏洞

前言 随着时代的发展现在呀&#xff0c;这个ASp已经淡出大众的视线了 &#xff0c;ASP之前的火爆程度无异于现在的PHP 大家的童年 4399 什么的网站都是这个搭建的ASP 简介 | 菜鸟教程 那大家想问为什么你妹的 这个这么火的网站搭建语言被淘汰了呢 其实多半是以为它的不开…

Java——常用类(下)

时间类 “时间如流水&#xff0c;一去不复返”&#xff0c;时间是一维的。所以&#xff0c;我们需要一把刻度尺来表达和度量时间。在计算机世界&#xff0c;我们把1970 年 1 月 1 日 00:00:00定为基准时间&#xff0c;每个度量单位是毫秒(1秒的千分之一)&#xff0c;如图所示。…