1.宝塔安装ThinkPHP6 详细过程
2.一个支持 PHP8 / Laravel9、像源8 的码p码下 docker 镜像
3.什么是容器镜像? | Linux 中国
4.Composer / Packagist 中国全量镜像正式发布 - Laravel China 社区
5.docker制作php5.4运行环境镜像
6.ThinkPHP多语言rce复现分析
宝塔安装ThinkPHP6 详细过程
最近我开始学习ThinkPHP,因此打开了Centos7系统,源代以下内容将详细记录我在宝塔面板安装TP6过程中遇到的像源问题及解决方法。
首先,码p码下由于TP6只能通过composer安装,源代mathquill 源码分析因此我在宝塔中先安装了composer。像源关于安装步骤,码p码下网上有很多教程,源代这里仅作简要说明。像源
在安装过程中,码p码下需要删除以下禁用函数:php管理 ——> 禁用函数 ——> 删除函数,源代putenv()。像源
我采用的码p码下是局部安装方式,得到了composer.phar文件。源代随后,我将该文件移动到全局目录下,并去除了后缀。现在,该文件已经位于/usr/bin/目录下。执行composer -v命令后,显示执行成功。
接下来,我修改了镜像源,使用阿里的源,也可以选择其他源。成功更换为阿里源后,我切换到/www/wwwroot/目录下,执行以下命令下载TP6的源码:composer TP6的源码。这里,你可以将tp目录名更改为任意名称,这个目录将成为我们后续操作的应用根目录。我将它修改为TP6。
执行完毕后,可以看到ThinkPHP6的盲盒抽奖源码h5源码已经下载到本地。
接下来,我使用宝塔创建站点及其数据库,并将网站根目录设置为存放源码的文件夹。然后,我修改网站设置,将网站目录和运行目录都设置为public。
最后,直接访问网站,即可看到ThinkPHP6的首页。
关于开启调试模式,只需要将根目录下的.example.env重命名为.env即可。在文件中,你可以进行控制,true代表开启调试,false代表关闭调试。
一个支持 PHP8 / Laravel9、8 的 docker 镜像
最新更新:我已推出一个兼容 PHP8.2/8.1/8.0-fpm 和 NodeJS /// 的 docker 镜像,Nginx 版本为 1..3。特别设计的镜像带有 _withoutNodejs 标签,适用于纯 PHP API 框架环境,如 Lumen。 在升级至 PHP 高版本时,需要注意的是,如果之前使用的是较低版本,务必运行 composer update 以同步第三方包,以免出现兼容性问题。 此镜像内已包含以下 PHP 模块,方便各类项目使用: ... 针对项目开发,特别是使用 Laravel 8,我的镜像提供了便利。不同于 Laravel 自带的 sail,它专为开发环境设计,支持命令行操作,且体积更小(M vs M)。搭建一个网站需要源码在开发环境中,只需将你的 docker-compose.yml 中的镜像替换为我的即可,同时保持 sail 的兼容性。 对于生产环境部署,Nginx + PHP8 的组合更高效且易于管理。通过编写简单的 Dockerfile,你可以快速打包并部署 Laravel 8 应用,实现环境隔离,提高部署效率。什么是容器镜像? | Linux 中国
容器镜像包含了一个打包的应用,以及它的依赖关系,还有它在启动时运行的进程信息。
创建容器镜像可以通过提供一组特殊格式的指令来实现,可以将其提交给注册中心(Registry),或保存为 Dockerfile。例如,为 PHP Web 应用创建的容器镜像 Dockerfile 如下所示:
每一层指令都会在容器镜像中增加一个层(layer)。这些层堆叠在一起,形成一个只读的容器镜像。
联合文件系统(Union File System)内置于 Linux 内核中,它允许将一个文件系统的内容与另一个文件系统的内容合并,同时保持“物理”内容的分离。这一机制减少了存储需求,因为多个镜像可以共享相同的数据,通过使用层来共享。
容器和镜像使用写时复制(copy-on-write)(COW)机制来实现效率。写时复制策略不是复制文件,而是将相同的数据实例共享给多个进程,并在需要修改或写入数据时进行复制。这使得容器和镜像可以在不占用大量磁盘空间的情况下启动。
叠加文件系统(Overlay File System)位于现有文件系统的顶部,结合了上层和下层的目录树,并将它们作为一个单一的目录来呈现。这种统一的码支付系统源码pc端挂机过程被称为联合挂载(union mount)。
快照器(SnapShotter)与图驱动(graph driver)不同,因为它不用了解镜像或容器。快照器提供了一个用于分配、快照和挂载抽象的分层文件系统的 API。
本文介绍了容器镜像的分层方法以及如何使容器可移植。通过联合文件系统、写时复制和叠加文件系统,容器镜像不仅节省了存储空间,还优化了容器启动时间的性能。快照器简化了容器文件系统的管理。理解这些概念对于熟悉容器技术至关重要。
Composer / Packagist 中国全量镜像正式发布 - Laravel China 社区
『Composer 中国全量镜像』项目,由 Laravel China 社区与又拍云、优帆远扬联合推出,旨在为国内PHP用户提供稳定高速的Composer镜像服务。
本项目由@扣丁禅师独立开发。禅师现居沈阳,远程办公,热爱编程,向往自由。现任优帆远扬远程高级开发工程师、高级架构师。
安装包数据主要从github.com下载,元数据从packagist.org获取。但国外网站连接速度慢且不稳定,甚至可能被墙。全量镜像项目通过缓存所有安装包及元数据在Linode服务器上,并利用国内CDN加速,确保composer安装与更新操作快速高效。即使packagist.org、github.com发生故障,用户仍能下载、更新安装包。
项目由@扣丁禅师在加入优帆远扬远程工程师团队后提议并合作构建,江湖公众号机器人源码旨在为社区提供长久维护、高可用性、快速稳定的Composer全量镜像服务。经过禅师一个月的开发设计与两个月的内侧测试,项目现已上线。
项目将持续运行,只要优帆远扬与Laravel China社区存在,项目就会持续提供服务。使用方法推荐使用较新版本的Composer,配置全局或单独使用镜像。若遇到问题,使用-vvv参数可获取调错信息,或在@扣丁禅师的GitHub上创建Issue,提供-vvv输出,清晰描述问题。
安装与升级指南适用于Linux/Mac环境时添加sudo权限,Windows环境查看、升级版本注意使用我们的composer.phar镜像,每天更新至最新版本。
感谢又拍云提供CDN支持,优帆远扬在项目开发中提供的技术支持。更多讨论可在LC社区中进行。
docker制作php5.4运行环境镜像
详细步骤如下:
1. 从官方获取并下载PHP 5.4镜像。
2. 使用Docker运行CentOS 7容器,容器ID为eeb6ee3fbd,指定名称为edncenos7。
3. 在容器内,安装并下载所需PHP插件。
如果遇到wget命令不可用或yum下载无网络的问题,请先解决网络问题,若网络环境无法改变,考虑使用本地缓存。
配置Docker容器的网络设置,确保容器可以联网。
在容器中,通过解压PHP源码完成安装。
安装所需依赖项,例如curl-devel和lib/cpp。
配置PHP编译选项,确保安装满足项目需求。
解决安装过程中可能遇到的错误,例如安装curl-devel模块。
执行编译和安装命令,完成PHP源码的安装。
检查新安装的PHP版本,确保正确安装。
安装nginx,先检查系统中是否已安装,若安装则卸载。
从官网下载并解压最新版本的nginx,执行安装命令。
检查nginx安装目录以确认安装成功。
如果安装过程中出现错误,使用whereis命令查看。
启动和停止nginx服务,使用特定命令执行操作。
重启nginx,推荐先停止后启动确保服务稳定。
重新加载配置文件,确保修改后的配置立即生效。
配置nginx开机自启动,修改rc.local文件添加启动代码。
至此,PHP 5.4运行环境及nginx已成功安装并配置完成,可根据项目需求进行后续配置与开发。
ThinkPHP多语言rce复现分析
前言
最近对 ThinkPHP 多语言远程代码执行 (RCE) 漏洞进行了一番深入学习,该漏洞在特定版本的 ThinkPHP 中存在,本文将详细分析其利用条件、环境搭建、漏洞流程以及漏洞复现的过程。
一、漏洞信息
利用该漏洞,需满足以下条件:
1. 确保已安装 ThinkPHP,并知道 pearcmd.php 文件的位置(默认为 /usr/local/lib/php/pearcmd.php,Docker 版本镜像中 pear 默认已安装)
2. 需开启 php.ini 中的 register_argc_argv 选项(Docker 的 PHP 镜像是默认开启的)
3. ThinkPHP 需开启多语言功能
影响范围:
主要影响 ThinkPHP 版本在 6.0.1、5.0.0、5.1.0 以下至对应补丁修复版本的用户。
二、环境搭建
首先,从 GitHub 下载 ThinkPHP 源码(例如,版本为 6.0.),解压后,通过 composer 安装依赖。在 app/middleware.php 文件中取消注释以开启多语言功能。接着,通过 go-pear.phar 或 Docker 安装 pear。
三、漏洞分析
漏洞主要在于 LoadLangPack 类中的 handle 函数,该函数先通过 detect() 方法检查请求参数是否设置了语言,之后将设置值返回并用于切换语言集。在传递给 load() 函数后,参数又传入 parse() 函数,直接用 include 包含文件,此为漏洞触发点。从获取参数到传入 parse() 函数前,均未对内容进行过滤。
四、漏洞复现
在测试环境中(macOS、PHP 7.3、Apache 2.4),通过以下步骤进行复现:
1. 验证 pearcmd 的存在,获取正确路径(当前环境为 /usr/local/pear/share/pear/pearcmd.php)。
2. 了解如何利用 pear,在开启 register_argc_argv 选项后,参数将作为 $_SERVER['argv'] 的一部分传入。
3. 使用 poc 测试,在 /tmp 目录下写入 admin.php 文件,确保正确写入,验证参数解析过程。
4. 利用文件包含访问写入的文件,实现漏洞复现。
注意,除了使用 config-create 命令,还可以使用 Install 命令进行下载操作。若喜欢本文,别忘了点赞与收藏。关注雷石安全实验室,获取更多网络安全知识与技术文章。
使用Dockerfile基于7.4-fpm-buster镜像搭建php7.4微服务环境
已经掌握了Dockerfile构建镜像的技巧,搭建php7.4微服务环境就变得更加高效。我们不再需要手动下载和编译软件,也不用担心兼容问题,仅需在Docker中安装最基础的软件,选择fpm版本的PHP出于对微服务的考虑,它更适合docker-compose发布,避免了与apache不兼容的困扰。
选择的php镜像版本是php:7.4-fpm-buster,基于debian操作系统。首先,我们拉取镜像并启动临时容器,检查其内部结构,包括php程序、配置文件和fpm组件。通过端口映射,便于与nginx容器配合运行。
如果需要php源代码,可以使用docker-php-source命令导入和删除。安装php扩展,例如mysql,使用docker-php-ext-install,配置参数则通过docker-php-ext-configure,启用扩展则用docker-php-ext-enable。福哥通过在临时容器手动安装环境,然后整理到Dockerfile中,以清晰展示整个过程。
Dockerfile中包含了apt更新、依赖库和工具安装、配置文件设置、时区调整、测试验证等步骤。最终,通过Dockerfile,我们可以直接基于7.4-fpm-buster镜像搭建出php7.4的微服务环境,极大地简化了基础环境配置。
下一课,将继续利用Dockerfile的技巧,构建TFUMS项目的运行环境,敬请期待。
收藏|年阿里云开源镜像站最热门镜像王全梳理!(附下载链接和Top镜像王排名)
阿里云开源镜像站:热门资源全景解析 阿里云开源镜像站作为开发者的宝藏库,汇聚了全球主流软件,助力提升开发效率,传播开源精神。这里有超过种镜像,包括操作系统如CentOS、Ubuntu、Rocky Linux,以及编程语言依赖如npm、Maven,云原生工具如Kubernetes、Docker等。每日承载亿万级下载,以CDN加速,确保服务稳定且快速。 在年,镜像站进行了重大升级:搜索功能借助OpenSearch技术,提供高效精准的查找体验;npm镜像站更是独立出专属域名/,提升访问速度和稳定性。最受开发者青睐的镜像类别集中在操作系统和编程语言类。 镜像王排行榜操作系统:
CentOS: /mirror/fedora - 企业级Linux基础
Ubuntu: /mirror/ubuntu - 桌面与服务器首选
Rocky Linux: /mirror/rockylinux - CentOS的后继者
优麒麟: /mirror/ubuntukylin - 中文定制版
编程语言:
Python: /mirror/pypi - 动态编程基石
PHP: /composer - PHP包管理器
Go (Golang): /mirror/goproxy - 高效并发语言
特色镜像推荐Alpine Linux: /mirror/alpine - 轻量级安全选择
Kubernetes (K8S): /mirror/kubernetes - 云原生容器管理平台
此外,还有Nvidia-CUDA加速AI开发、CUDA-X AI库、Cygwin移植工具、Jenkins持续集成等专业软件资源。面向广大开发者,阿里云开源镜像站持续招募体验官,银牌体验官名额不限,可通过/special/mirror报名。镜像内容由阿里云用户共同维护,任何版权问题可通过投诉机制解决。 阿里云开源镜像站不仅是一个资源平台,更是开源精神的传播者,助力每一位开发者探索技术的无限可能。