当前位置:首页 > 时尚

kali 安装php

Kali 默认没装 PHP,安装这事我踩过坑。安装上次想跑一个 PHP 写的安装 webshell 检测脚本,终端里敲 php -v,安装直接甩回来一句 command not found。安装当时还以为环境变量出了问题,安装翻了半天 /etc/profile,安装最后才反应过来——Kali 是安装渗透测试发行版,不是安装 LAMP 服务器,PHP 这种“建站刚需”自然不在预装清单里。安装

装 PHP 本身不复杂,安装但 Kali 基于 Debian,安装软件源和普通 Ubuntu 有点区别。安装我习惯先更新一下索引,安装别急着 apt install,安装不然容易遇到包版本对不上的情况。命令就两条:

sudo apt update sudo apt install php

敲完回车,apt 会列出一堆依赖,大概 20 多个包,包括 php-common、php8.2-cli、php8.2-opcache 之类。这里有个细节:Kali 2023 之后的版本默认 PHP 是 8.2,而老教程里写的 7.4 早就不在官方源里了。如果你非要装 7.4,得自己加 sury 源,但我不建议——除非你手头有老代码必须跑 7.4,否则直接上默认版本最省事。

安装过程大概十几秒,取决于网速。装完再敲 php -v,这回能看见版本号了。我当前这台机器返回的是:

PHP 8.2.20 (cli) (built: Jun 8 2024 14:23:05) (NTS) Copyright (c) The PHP Group Zend Engine v4.2.20, Copyright (c) Zend Technologies with Zend OPcache v8.2.20, Copyright (c), by Zend Technologies

注意那个 (cli),说明装的是命令行版本。如果你要跑 Web 服务,还得再装 libapache2-mod-php 或者 php-fpm。但多数 Kali 用户其实用不到 Web 模式——我们跑 PHP 脚本,要么是分析恶意样本,要么是调试 exp,CLI 足够了。

有个坑我得提一下:Kali 里 php 命令和 php8.2 是等价的,但有些老脚本会硬编码 /usr/bin/php7.4 这种路径。遇到这种情况,要么改脚本,要么做个软链接:

sudo ln -s /usr/bin/php8.2 /usr/bin/php7.4

这招治标不治本,但应急够用。我去年分析一个 WordPress 漏洞利用脚本时就干过这事,脚本里写死了 php7.4,实际跑在 8.2 上也没报错,因为用到的函数都是兼容的。

装完 PHP 后,php.ini 的位置在 /etc/php/8.2/cli/php.ini。默认配置里 memory_limit 是 -1,也就是不限制内存,这在 Kali 里挺合理——跑分析脚本时经常要加载大文件。但如果你要跑不可信的 PHP 代码,最好手动改一下,比如设成 128M,防止内存耗尽把机器搞卡。

另外,Kali 的 PHP 默认没装 curl 和 gd 扩展。我上次跑一个验证码识别的脚本,报错说 Call to undefined function imagecreate(),折腾半天才发现是 php-gd 没装。补装命令:

sudo apt install php-curl php-gd php-mbstring

这三个扩展是我最常补的。mbstring 处理多字节字符串,curl 发 HTTP 请求,gd 画图。装完不用重启什么服务,CLI 模式下直接生效。

最后说个观察:Kali 里装 PHP 的人,十有八九不是用来建站的。我见过有人拿它跑 phpggc 生成反序列化 payload,也有人用 php -S 起个临时服务器来接收反弹 shell。这跟 Ubuntu 上装 PHP 的动机完全两码事。所以别照搬那些“配置虚拟主机”“安装 MySQL 扩展”的教程——在 Kali 里,PHP 就是个顺手工具,跟 python3 差不多一个定位。

装完记得 php -m 看一眼模块列表,确认自己需要的扩展都在。少了就补,多了也不碍事。整个过程五分钟搞定,比配个 Metasploit 数据库简单多了。

分享到: