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

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 ServerCopyright (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.mzph.cn/web/50726.shtml

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

相关文章

【linux】在多核CPU下,好像看到不同进程在不同CPU调度

在2353这行打印的情况来看,操作系统好像给不同的进程分配不同的CPU,从上图来看,同一个进程好像基本使用的相同的CPU: 其实摸索syscall文件系统操作,本意是想找到内核文件系统中文件的创建,写入,…

3DMAX神经网络插件Neuron使用方法详解

3DMAX神经网络插件Neuron使用方法 3DMAX神经网络插件Neuron,从一系列样条曲线创建具有分支结构的几何体。适用于如神经网络、血管、树枝等形状的3D建模。 【适用版本】 3dMax2016及更高(不仅限于此范围) 【安装方法】 Neuron插件无需安装&a…

windows 暂停更新

使用windows 系统的伙伴都深受其扰,动不动就要强制更新,并且无法长时间关闭更新。这里推荐一个工具来禁止更新。越来越多的工程师可能会逐渐放弃windows ,真的太冗杂了,linux 的桌面和命令行越来越好用。 下载地址 https://github.com/WereD…

Renesa Version Board开发RT-Thread 之I2C驱动应用(SHT20)

目录 概述 1 硬件接口介绍 1.1 Version Board上的I2C硬件接口 1.2 SHT20 1.2.1 SHT20简介 1.2.2 SHT-20模块电路 2 软件实现 2.1 软件版本信息 2.2 RT-Thread Studio创建项目 2.3 FSP配置I2C接口 2.4 使能Sensor驱动 3 RT-Thread驱动架构 3.1 接口函数 3.1.1 …

增量学习中Task incremental、Domain incremental、Class incremental 三种学习模式的概念及代表性数据集?

1 概念 在持续学习领域,Task incremental、Domain incremental、Class incremental 是三种主要的学习模式,它们分别关注不同类型的任务序列和数据分布变化。 1.1 Task Incremental Learning (Task-incremental) 任务增量学习,也称为任务增…

spring 中包自动扫描之 component-scan 解析

在 spring 中&#xff0c;为简化 bean 的配置&#xff0c;在 spring-context 模块下提供了包的自动扫描功能&#xff0c;将配置的包及其子包下的所有符合条件的类都注册到 BeanFactory 中。下面来看下具体是怎么实现的。 配置 <context:component-scan base-package"…

.NET 一款获取主流浏览器存储密码的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

27.jdk源码阅读之ConcurrentLinkedDeque

1. 写在前面 ConcurrentLinkedDeque 是 Java 中一个高效、线程安全的双端队列&#xff08;Deque&#xff09;&#xff0c;使用无锁算法&#xff08;CAS 操作&#xff09;来保证线程安全性。由于其复杂的实现和广泛的应用场景&#xff0c;它常常成为面试中的重点考察对象。不知道…

【C++题解】1069. 字符图形5-星号梯形

问题&#xff1a;1069. 字符图形5-星号梯形 类型&#xff1a;嵌套循环、图形输出 题目描述&#xff1a; 打印字符图形。 输入&#xff1a; 一个整数&#xff08; 0<n<10 &#xff09;。 输出&#xff1a; 一个字符图形。 样例&#xff1a; 输入&#xff1a; 3输…

C#体检系统源码,医院健康体检系统PEIS,C#+VS2016+SQLSERVER

体检中心/医院体检科PEIS系统源码&#xff0c;C#健康体检信息系统源码&#xff0c;PEIS源码 开发环境&#xff1a;C/S架构C#VS2016SQLSERVER 2008 检前&#xff1a; 多种预约方式网站预约、电话预约、微信平台预约及检前沟通&#xff0c;提前制作套餐&#xff0c;客人到达体检…

机器学习(二十三):决策树和决策树学习过程

一、决策树 下面是数据集&#xff0c;输入特征是耳朵形状、脸形状、是否有胡子&#xff0c;输出结果是是否为猫 下图是决策树&#xff0c;根据耳朵形状、脸形状、是否有胡子这几个特征&#xff0c;建立决策树&#xff0c;从根节点一步步预测结果。 上图中&#xff0c;每一个椭…

wkt格式文件详解(包含应用示例)

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

揭秘CISA:不只是证书,更是信息安全领域的国际通行证

CISA&#xff08;Certified Information Systems Auditor&#xff09;&#xff0c;即国际注册信息系统审计师&#xff0c;是信息系统审计、控制与安全等专业领域中备受认可的认证。它不仅是一张证书&#xff0c;更是信息安全领域的国际通行证。以下是对CISA的全面揭秘&#xff…

Apollo:目录分析, test ok

apollo: Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 - Gitee.comhttps://github.com/ApolloAuto/apolloapollo 目录名称目录作用cyber消息中间件,替换ros作为消息层…

Vscode报错:line too long (84 > 79 characters)

原因&#xff1a;不允许一行超过79个字母&#xff0c;但是该行代码超出该范围。 参考博客&#xff1a;解决Vs CodeFlake8 报错line too long (108 &#xff1e; 79 characters)Flake8(E501)_flake8 line too long-CSDN博客

Javascript前端面试基础(八)

window.onload和$(document).ready区别 window.onload()方法是必须等到页面内包括图片的所有元素加载完毕后才能执行$(document).ready()是DOM结构绘制完毕后就执行&#xff0c;不必等到加载完毕 window.onload 触发时机&#xff1a;window.onload 事件会在整个页面&#xf…

微服务面试-分布式 注册中心 远程调用 保护

标红的原理还是不太熟悉 重新看 分布式事务 CAP理论 Consistency&#xff08;一致性&#xff09; Availability&#xff08;可用性&#xff09; Partition tolerance &#xff08;分区容错性&#xff09; BASE 理论 就是做取舍 cap三选二 AT模式脏写 TCC模式 注册中…

2024年7月29日(web nginx)

web 一、web基本概念和常识 Web:为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。 Web 服务为用户提供各种互联网服务,这些服务包括信息浏览服务,以及各种交互式服务,包括聊天、购物、学习等等内容。 Web 应用开发也经过了几代技术…

MySQL 执行计划详解

文章目录 一. 概念二. 语法三. 详解各字段1. id2. select_type3. table4. partitions5. type6. possible_keys与key7. key_len8. ref9. rows10. filtered11. Extra 一. 概念 有了慢查询后&#xff0c;需要对慢查询语句进行分析。一条查询语句经过MySQL查询优化器后&#xff0c…

最新 【Navicat Premium 17.0.8】简体中文版破解激活永久教程

官方下载地址&#xff1a; https://www.navicat.com.cn/download/navicat-premium 百度网盘补丁链接 链接: https://pan.baidu.com/s/11hu414Honi3Y9dPQ6-07JQ?pwd04mu 提取码: 04mu 未安装过的用户可直接跳过该步骤&#xff0c;如果已安装Navicat&#xff0c;记得先卸载干净…