[Linux安全运维] LAMP 环境搭建保姆级教学(Apache + MySQL + PHP) ~~

news2024/9/9 0:07:33

LAMP

LAMP 是一种网站技术,可以实现动态的网站页面部署。

1. LAMP概述

1 .1构成

  1. Linux:

    • 简介: Linux 是一种开源的操作系统,以其稳定性和安全性而著称。在 LAMP 堆栈中,它作为服务器操作系统运行。
    • 作用: 为应用程序提供一个稳定、安全的运行环境。
  2. Apache:

    • 简介: Apache 是一个广泛使用的开源 Web 服务器软件,可以在 Linux 上运行。
    • 作用: 处理来自客户端(如浏览器)的 HTTP 请求,并将页面内容发送回客户端。
  3. MySQL:

    • 简介: MySQL 是一个开源关系型数据库管理系统,用于存储网站的数据。
    • 作用: 管理网站的数据,包括用户信息、内容和其他重要数据。
  4. PHP:

    • 简介: PHP 是一种服务器端脚本语言,用于生成动态网页内容。
    • 作用: 处理业务逻辑,与数据库交互,并生成 HTML 页面发送给客户端。

1 .2 LAMP优势

  • 开源软件: 所有组件都是免费的开源软件,降低了开发成本。
  • 社区支持: 拥有庞大的用户社区,可以找到丰富的资源和支持。
  • 稳定性和安全性: 经过多年发展,LAMP 堆栈被认为是稳定且安全的选择。

2. 环境搭建

2 .1 Linux安装

这里安装的CentOS7作为服务器操作系统。

这里就不过多阐述了。

2 .2Apache HTTPD配置

配置文件的位置:

# 服务目录
/etc/httpd

# 主配置文件
/etc/httpd/conf/httpd.conf

# 虚拟主机的配置文件目录
/etc/httpd/conf.d

# 基于用户的配置文件
/etc/httpd/conf.d/userdir.conf

# 日志文件目录
/etc/httpd/logs

# 默认的网站数据目录
/var/www/html
2 . 2 .1 安装 Apache 服务器
# 安装Apache httpd服务
yum install -y http
# 关闭防火墙
systemctl stop firewalled
# 启动Apache服务
systemctl start httpd.service
# 设置Apache服务开机自启动
systemctl enable httpd.service
# 查看Apache服务状态
systemctl status httpd.service
# 查看端口信息
netstat -anptl

在这里插入图片描述

可以用浏览器访问服务器127.0.0.1本地80端口,如果启动,显示如下页面。

在这里插入图片描述

2 . 2 .2 主配置文件

配置文件路径:

ls /etc/httpd/conf/httpd.conf

在这里插入图片描述

配置文件中的关键点:

配置说明
Listen 80监听端口
DocumentRoot “/var/www/html”Web根目录
用于存放Web资源
Include conf.modules.d/ *.conf
IncludeOptional conf.d/ *.conf
扩展配置文件路径

2 .3 MySQL安装部署

2 . 3 .1 安装MySQL服务

使用yum安装MySQL相关服务:

yum install mariadb mariadb-server mariadb-libs mariadb-devel -y

启动MySQL服务相关:

# 启动数据库服务
systemctl start mariadb.service
# 设置数据库开机自启动
systemctl enable mariadb.service
# 查看服务状态
systemctl status mariadb.service
2 . 3 .2 MySQL相关配置

MySQL相关安全配置可以查看文章:[Linux安全运维] MySQL 数据库安全配置

2 .4 PHP部署

2 . 4 .1 安装PHP服务

安装php及其相关组件。

yum install php php-mysql php-mbstring -y

查看php版本:

php -v

在这里插入图片描述

2 . 4 .2 PHP 配置文件

Apache HTTPD需要与PHP关联配置文件:/etc/httpd/conf.d/php.conf

在这里插入图片描述

PHP配置文件路径:/etc/php.ini

2 . 4 .3 phpinfo

我们可以写一个phpinfo.php文件。

# 在 /var/www/httpd/ 下创建一个phpinfo.php文件
touch /var/www/httpd/phpinfo.php
vim /var/www/httpd/phpinfo.php

在这里插入图片描述

接着,我们将127.0.0.1:80的欢迎首页改为我们编写的phpinfo.php

# 先将原来的首页进行备份
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.bak
# 重启Apache服务
systemctl restart httpd

访问127.0.0.1:80

在这里插入图片描述

在这里插入图片描述

2 . 4 .4 phpMyAdmin

phpmyadmin 是一个基于php实现的Mysql图形管理工具。

将压缩包解压到Web根目录(/var/www/html/)下

tar xf Desktop/phpMyAdmin-4.0.10.10-all-languages.tar.gz -C /var/www/html/

在这里插入图片描述

访问phpmyadmin.php:

在这里插入图片描述

如果可以正常运行,则说明LAMP平台就没有什么问题了。

3. LAMP架设网站

3 .1 上传网站源代码

如果我们想要新增网站源代码,可以将我们写好的网页复制到Web根目录(/var/www/html/)以实现网站源代码的上传

例如:

​ 我想要将cms这个网站上传到httpd服务器上:

​ 因为我这里的网站是写好的压缩包,所以我直接将它解压到Web根目录中。

unzip Desktop/cms.zip -d /var/www/html/

在这里插入图片描述

我们可以访问一下网站:127.0.0.1/cms/

在这里插入图片描述

因为我们没有配置数据库,所以还需要去修改一下数据库配置来适配。

3 .2 数据库配置

3 . 2 .1 数据库配置文件

需要修改一下cms网站的数据库文件/cms/include/database.inc.php

vim /var/www/html/cms/include/database.inc.php

在这里插入图片描述

需要修改一下数据库密码,我的数据库密码为123456

3 . 2 .2 创建cms数据库

启动mysql,创建cms数据库,将install.sql文件导入到数据库中。

[root@localhost ~]# mysql -uroot -p123456
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database cms;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> use cms;
Database changed
MariaDB [cms]> source /var/www/html/cms/install.sql;

再次访问cms网站:

在这里插入图片描述

这样就架设成功了!

4. 网站安全加固

4 .1 目录浏览

在我们访问127.0.0.1时,我们会发现访问时会直接将我们的网站目录显示出来,这样是一种很危险的行为,这样用户就可以看到我们的目录结果,容易给攻击者可乘之机。

在这里插入图片描述

4 .2 网站配置

我们需要在Apache配置文件/etc/httpd/conf/httpd.conf中关闭配置浏览。

vim /etc/httpd/conf/httpd.conf

在这里插入图片描述

我们可以对其进行修改:

# 允许所有地址访问
Order allow,deny
Allow from all

# 禁止所有地址访问
Order allow,deny
Deny from all

# 限制IP访问
Order allow,deny
Allow from all
deny from 172.16.1.0/24

# 或者关闭目录浏览
Options -Indexes

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

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

相关文章

为了方便写CURD代码,我在UTools写了个插件SqlConvert来生成代码!

-1. 前言 为了方便摸鱼,我之前写过一个通过sql生成代码的工具,但是服务器到期了,也就懒得重新部署了。 技术框架是 SpringBoot MybatisPlus Velocity Vue ElementUI Sql-ParseeSql-Parser-ui 0. Utools应用安装 官网地址: https://u.too…

达梦数据库归档介绍

一、什么是归档 数据库归档是一种数据管理策略,它涉及将旧的、不经常访问的数据移动到一个单独的存储设备,以便在需要时可以检索,同时保持数据库的性能和效率。 归档的主要目标是为了释放数据库中的空间,以便更有效地利用高性能…

如何用PostMan按照规律进行循环访问接口

①设置动态变量 步骤一: 设置环境变量 1. 创建环境变量集合 在 Postman 左上角选择 "环境",然后点击 "添加" 来创建一个新的环境变量集合。给它起一个名称,比如 "uploadDemo". 2. 添加初始变量 在新创建的环境变量集…

校车购票小程序的设计

管理员账户功能包括:系统首页,个人中心,学生管理,我的乘车信息管理,车辆信息管理,座位管理,系统管理 微信端账号功能包括:系统首页,车辆信息,我的 开发系统…

electron 主进程和渲染进程

最近在整理electron 相关的项目问题,对自己来说也是温故知新,也希望能对小伙伴们有所帮助,大家共同努力共同进步。加油!!!! 虽然最近一年前端大环境不好,但是大家还是要加油鸭&#…

kafka leader选举过程浅析

文章目录 概要核心概念leader选举具体流程小结 概要 kafka我们都知道它是通过副本机制,来支持负载均衡和故障转移等高可用的,那么具体副本的选举过程你了解吗?下面我们一起来学习下吧! 核心概念 Controller定义:是特…

Cocos Creator2D游戏开发(7)-飞机大战(5)-让子弹飞

飞机大战(5)-碰撞及积分 参考敌机的生成 子弹由飞机生成,放在player_node节点子弹重复使用,要使用预制体;子弹新增了动画 ①创建一个预制体 命名为playerBullet_prefab ② 双击预制体将bullet1图片拖入预制体 保存,关闭(场景编辑器里面的) ③ 发射子弹 player加入代码 prop…

尚庭公寓(五)

图片上传管理 由于公寓、房间等实体均包含图片信息,所以在新增或修改公寓、房间信息时,需要上传图片,因此我们需要实现一个上传图片的接口。 **1. 图片上传流程** 下图展示了新增房间或公寓时,上传图片的流程。 可以看出图片上传…

翻译: 可视化深度学习神经网络二

并甚至在图像识别之外做各种各样智能的东西也许你也想分解成一些抽象的层 例如句子的分析涉及到把原始的语音提出一些独特的声音构成一些音节再构成词再构成词组以及更为抽象的思想等。 但回到这些实际是怎样工作的把你自己现在就放到这个的情景怎样来设计 如何在让这层中的激励…

阿里云主机 安装RabbitMQ

一、操作系统 用的是Alibaba Cloud Linux release 3 (Soaring Falcon)系统,可以通过命令:lsb_release -a 查看系统信息。 二、安装RabbitMQ RabbitMQ 是基于 Erlang 语言构建的,要安装RabbitMQ,需先安装Erlang环境。通过Erlang V…

SearchGPT:搜索引擎市场的潜在游戏规则改变者

关注公众号网络研究观获取更多内容。 OpenAI最近发布的SearchGPT原型标志着搜索技术领域的重大进展。我一直在等待这一天,任何关注搜索和搜索引擎优化领域的人也是如此。我们有充分的理由相信,这一举措很有可能颠覆长期由谷歌等巨头主导的搜索引擎市场&…

宠物医院预约系统-计算机毕业设计源码60818

目录 摘要 Abstract 第一章 绪论 1.1 选题背景及意义 1.2 国内外研究现状 1.3 研究方法 第二章 相关技术介绍 2.1 MySQL简介 2.2 Java编程语言 2.3 B/S模式 2.4 springboot框架 第三章 宠物医院预约系统 系统分析 3.1 系统目标 3.2 系统可行性分析 3.2.1 技术可行…

链式队列实现

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝唯有主动付出,才有丰富的果实获得收获! 在计算机科学中,队列是一种先进先出(FIFO, First In First Out)的数据结构…

.NET周刊【7月第4期 2024-07-28】

国内文章 .NET 高性能缓冲队列实现 BufferQueue https://mp.weixin.qq.com/s/fUhJpyPqwcmb3whuV3CDyg BufferQueue 是一个用 .NET 编写的高性能的缓冲队列实现,支持多线程并发操作。 项目地址:https://github.com/eventhorizon-cli/BufferQueue 项目…

Robot Operating System——远程修改日志等级

大纲 日志输出Node修改其他Node日志等级的Node获取日志等级设置日志等级 测试默认等级Debug等级Warn等级Error等级 完整代码 在任何系统中,日志功能的重要性都是不容忽视的。日志功能为开发者、维护者甚至用户提供了一个关键的工具,以监控、理解和调试系…

基于Windows Docker desktop搭建pwn环境

安装虚拟机很重,占空间,影响速度。 今天试了下用Windows下的Docker搭建pwn做题环境,搭配MobaXterm真的很好! 一、Windows下安装Docker desktop 网上参考文章很多,不赘述。 说明:去https://www.docker.com/products/d…

PHP经销商订货管理系统小程序源码

经销商订货管理系统:重塑供应链效率的利器 🚀 开篇:解锁供应链管理的新纪元 在竞争激烈的商业环境中,经销商作为供应链的关键一环,其订货效率直接影响到整个供应链的流畅度和响应速度。传统的订货方式往往繁琐、易出…

【C++深度探索】深入解析AVL树的底层实现机制

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 AV…

学习大数据DAY26 简单数据清洗练习和 Shell 脚本中的数据库编程

目录 上机练习 14 mysql 命令 sql 语句实现步骤 shell 脚本导入 csv 格式文件到 mysql 数据库 secure-file-priv 特性 把文件拷贝到 mysql 指定目录下 上机练习 15 mysqldump 命令 上机练习 16 上机练习 14 运用上一节课学的 Shell 工具完成 1. 清洗数据《infotest.t…

黑马头条Day12-项目部署_持续集成

一、今日内容介绍 1. 什么是持续集成 持续集成(Continuous integration,简称CI),指的是频繁地(一天多次)将代码集成到主干。 持续集成的组成要素: 一个自动构建过程,从检出代码、…