Ubuntu 22.04完全独立安装PHP 5.4环境

1. 前言

在渗透测试或搭建靶场(如 Pikachu、Vulhub、复现老版本漏洞)时,经常需要使用 PHP 5.4、5.2 等早期版本。但Ubuntu 22.04系统自带PHP 8+,如果直接安装旧版本会造成冲突,也可能破坏整个 LAMP 环境。因此,本文章将演示如何在Ubuntu 22.04中创建一个完全独立、不影响系统 PHP环境的PHP 5.4(FPM)运行空间。

安装完成后最终能达到的效果:

  1. Apache2 默认仍然使用系统自带PHP(如 PHP8)
  2. 需要时可以用命令启动独立PHP 5.4-FPM
  3. 两个版本可以同时存在、互不影响
  4. 可用于Pikachu靶场、Override类题目的环境复现

2. 安装步骤

2.1 准备系统依赖

#更新本地的 APT 软件包索引
sudo apt update
#安装一连串的开发工具和库,并自动确认
sudo apt install -y gcc g++ make autoconf bison re2c \
    libxml2-dev libssl-dev libcurl4-openssl-dev \
    libjpeg-dev libpng-dev libfreetype6-dev \
    libzip-dev pkg-config libsqlite3-dev \
    libonig-dev libmcrypt-dev libxml2-dev

2.2 下载PHP5.4 源码

#切换到用户主目录
cd ~
#从互联网下载 PHP 5.4.45 的源码压缩包
wget https://museum.php.net/php5/php-5.4.45.tar.gz
#解压
tar -zxvf php-5.4.45.tar.gz
cd php-5.4.45

2.3 配置编译参数

为了不影响系统环境,将PHP全部安装到/opt/php54目录下

#执行PHP源码的配置脚本,用于检查系统环境、检测库、生成Makefile
./configure \
--prefix=/opt/php54 \
--with-fpm \
--with-mysqli \
--with-pdo-mysql \
--with-openssl \
--with-zlib \
--enable-mbstring \
--enable-sockets \
--enable-fpm \
--with-curl \
--with-gd

2.4 编译并安装

#构建命令,读取./configure生成的Makefile,开始使用多线程并行编译编译源码
make -j$(nproc)
#编译完成后,将最终产物安装到系统指定目录
sudo make install

2.5 创建配置文件

#创建配置文件php.ini
sudo cp php.ini-development /opt/php54/etc/php.ini

2.6 创建php-fpm.conf

sudo nano /opt/php54/etc/php-fpm.conf

删除原内容,nano:按 Ctrl+A,再按 Ctrl+K 多次。
替换为以下最简可用配置:

[global]
pid = /opt/php54/var/run/php-fpm.pid
error_log = /opt/php54/var/log/php-fpm.log

include=/opt/php54/etc/php-fpm.d/*.conf

保存退出Ctrl+O → 回车 → Ctrl+X 

2.7 创建www.conf【FPM池配置】

sudo mkdir -p /opt/php54/etc/php-fpm.d
sudo nano /opt/php54/etc/php-fpm.d/www.conf

写入:

[www]
user = www-data
group = www-data
listen = 127.0.0.1:9054

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

2.8 测试配置

sudo /opt/php54/sbin/php-fpm -t -y /opt/php54/etc/php-fpm.conf

配置成功则输出:

NOTICE: configuration file ... test is successful

2.9 启动独立PHP5.4

sudo /opt/php54/sbin/php-fpm -R -y /opt/php54/etc/php-fpm.conf

启动成功则输出:

NOTICE: fpm is running, pid ...
NOTICE: ready to handle connections

2.10 把PHP5.4-FPM端口绑定到虚拟主机

在 Ubuntu 里,Apache 虚拟主机(vhost)文件一般在:/etc/apache2/sites-available/

执行:

sudo nano /etc/apache2/sites-available/000-default.conf

打开后会看见类似:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

把下面内容插入到<VirtualHost *:80> 内部,一般放在 DocumentRoot 后面即可:

<FilesMatch "\.php$">
    SetHandler "proxy:fcgi://127.0.0.1:9054"
</FilesMatch>

保存退出:Ctrl+O,回车,Ctrl+X

2.11 启动必要模块

Apache 使用 PHP-FPM 需要proxy_fcgi支持:

sudo a2enmod proxy
sudo a2enmod proxy_fcgi
sudo a2enmod setenvif

重启Apache:

sudo systemctl restart apache2

2.12 检查是否进入PHP5.4模式

ps aux | grep php-fpm

访问:http://你的IP/info.php

如果看到 PHP5.4,就说明已经进入PHP5.4模式

3. 总结

想用PHP5.4→启用PHP5.4-FPM:

sudo /opt/php54/sbin/php-fpm -R -y /opt/php54/etc/php-fpm.conf

想让Apache使用 5.4 → 在虚拟主机里加SetHandler指向9054端口

想切回系统默认PHP → 删除或注释掉FilesMatch配置,并重启Apache

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值