Debian PHP测试如何进行
小樊
35
2025-12-11 01:10:12
Debian PHP测试实操指南
一 环境验证与连通性测试
更新并安装基础组件(以实际版本为准,如8.2 ):
sudo apt update
sudo apt install php php-cli php-fpm php-json php-mysql php-curl php-gd php-mbstring php-xml
验证CLI与版本:
Web连通性测试(FPM或模块方式均可):
创建测试文件:echo “” | sudo tee /var/www/html/info.php
访问:http://服务器IP/info.php(看到PHP信息页即表示环境可用)
安全提示:测试完成后删除文件 sudo rm /var/www/html/info.php
配置文件路径速查(按运行模式区分):
CLI:/etc/php/{版本} /cli/php.ini
FPM:/etc/php/{版本} /fpm/php.ini
查看加载的配置:php --ini(CLI),或针对FPM进程查看对应ini
二 单元测试与代码覆盖率
安装Composer与PHPUnit(项目本地安装更可控):
curl -sS https://getcomposer.org/installer | php – --install-dir=/usr/local/bin --filename=composer
在项目根目录:composer require --dev phpunit/phpunit
示例被测类 tests/Calculator.php:
class Calculator { public function add($a,$b){return $a+$b;} public function divide($a,$b){if($b===0) throw new InvalidArgumentException(“Division by zero.”); return $a/$b;} }
示例测试类 tests/CalculatorTest.php:
use PHPUnit\Framework\TestCase; require DIR .‘/…/Calculator.php’;
class CalculatorTest extends TestCase { private $c; protected function setUp(): void { $this->c=new Calculator(); } public function testAdd(){ $this->assertEquals(5,$this->c->add(2,3)); } public function testDivide(){ $this->assertEquals(2,$this->c->divide(6,3)); $this->expectException(InvalidArgumentException::class); $this->c->divide(1,0); } }
运行测试与覆盖率:
./vendor/bin/phpunit tests/CalculatorTest.php
生成覆盖率报告(需安装php-xdebug或phpdbg):./vendor/bin/phpunit --coverage-html report
三 性能分析与调优
安装与启用OPcache(显著提升脚本执行速度,开发环境可按需关闭):
编辑php.ini(CLI与FPM分别设置):
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=64
opcache.max_accelerated_files=4000
重启服务:sudo systemctl restart php**{版本}**-fpm 或 sudo systemctl restart apache2
调试与分析工具:
Xdebug(调试/性能分析,开发环境常用):sudo apt install php**{版本}**-xdebug
配置示例(php.ini):
zend_extension=“xdebug.so”
xdebug.mode=debug
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
重启服务后配合IDE断点调试
Blackfire(云端性能分析,适合定位瓶颈)
负载与压力测试(AB或wrk):
sudo apt install apache2-utils
ab -n 100 -c 10 http://服务器IP/info.php
wrk -t12 -c400 -d30s http://服务器IP/info.php
FPM关键参数调优(/etc/php/{版本} /fpm/pool.d/www.conf):
pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers 按内存与并发调优
四 常见问题与排查要点
版本与扩展不一致:
确认CLI与FPM使用同一版本:php -v 与针对FPM进程执行 php -v(如在FPM容器内或临时切换至对应SAPI)
扩展按需安装(如数据库、缓存、图像处理等),变更后重启FPM/Apache
配置文件未生效:
使用 php --ini 确认“Loaded Configuration File”
区分CLI与FPM的ini路径,必要时在对应目录修改并重启服务
Web访问空白或502:
检查Web服务器(Apache/Nginx)与PHP-FPM是否运行:systemctl status apache2 / nginx / php**{版本}**-fpm
Nginx常见:确认 fastcgi_pass 指向正确的 .sock 或 127.0.0.1:9000
查看错误日志:/var/log/apache2/error.log 或 /var/log/nginx/error.log
Xdebug连不上IDE:
核对 xdebug.client_host/port 与IDE监听配置一致,确保监听已启动且防火墙放行
安全提示:
生产环境禁用或限制 info.php 等敏感文件访问,避免泄露配置与路径信息