前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文搞懂 PHP 运行环境

一文搞懂 PHP 运行环境

作者头像
信安之路
发布2024-05-09 14:55:12
1010
发布2024-05-09 14:55:12
举报
文章被收录于专栏:信安之路信安之路

成长平台 web 安全学习的第一关是关于搭建 PHP 的运行环境,这个任务的目标是为了让学员理解 PHP 的运行环境中各个组件之间的关系,通过实际的操作来理解,不允许使用一键化工具,比如 phpstudy 等平台,因为在搭建的过程中会遇到各种各样的问题,在一步一步解决问题的过程中,加深对技术背后原理的理解,从而提升学员基础能力。

另一个部分的要求就是针对该服务器进行加固,也就是针对 web 服务、操作系统、数据库服务等安全加固,让学员了解基础服务存在哪些安全隐患,如何排除,也是一种锻炼的途径,目前已经有近 400 人完成报告,还有很多满分报告值得学习:

在完成任务之前,我相信,大部分人都是在网上搜索相关教程来完成搭建,但是网络上的教程所使用的系统环境和版本跟学员使用的不同,所以会出现各种问题,为了让初学者理解,今天从原理上分析 LNMP 和 LAMP 两种不同的架构。

LNMP(Linux + Nginx + Mysql + Php)

首先 LNMP 使用的是 Nginx,而 Nginx 是一个反向代理服务器,并不具备解析 PHP 脚本的能力,所以需要依靠 PHP-FPM 这个组件来完成 PHP 代码的解析。

PHP-FPM 即 FastCGI Process Manager(FastCGI 进程管理器),而 FastCGI 是 HTTP 服务器和动态脚本之间的通信接口,Nginx 不支持对外部程序的直接调用或者解析,必须通过 FastCGI 来对脚本进行解析,当 Nginx 收到 CGI 请求之后,FastCGI 接口在脚本解析服务器上,启动一个或多个守护进程对脚本进行解析。

所以在部署 LNMP 环境时,整体流程如下:

1、安装 nginx 服务

2、安装 mysql 数据库

3、安装 Php-fpm 服务,成功安装启动后,会默认监听 9000 端口,用于接收来自 nginx 的解析请求

4、配置 nginx,需要在 nginx 的配置文件中指定 fastcgi 的地址和端口,如图

最后重启 nginx 其可完成部署。

LAMP(Linux + Apache + Mysql + Php)

LAMP 与 LNMP 的不同之处在于使用的 web 服务器是 Apache,Apache 是一个模块化的服务器,支持 PHP 解析模块和 mysql 连接,所以可以不用 php-fpm 来完成 php 脚本的解析。

关于 LAMP 的整体架构如图:

其中解析 PHP 的任务,由 Apache 直接调用 PHP 来完成,所以整个部署流程如下:

1、安装 Apache 服务,也就是 httpd 服务

2、安装 mysql 数据库

3、安装 PHP 运行环境及相关扩展,比如:

代码语言:javascript
复制
apt install -y php-{common,mysql,xml,xmlrpc,curl,gd,imagick,cli,dev,imap,mbstring,opcache,soap,zip,intl}

4、配置 Apache,设置监听端口,默认入口文件等

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-05-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LNMP(Linux + Nginx + Mysql + Php)
  • LAMP(Linux + Apache + Mysql + Php)
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档