温馨提示×

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与版本:
    • php -v
  • 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 指向正确的 .sock127.0.0.1:9000
    • 查看错误日志:/var/log/apache2/error.log 或 /var/log/nginx/error.log
  • Xdebug连不上IDE:
    • 核对 xdebug.client_host/port 与IDE监听配置一致,确保监听已启动且防火墙放行
  • 安全提示:
    • 生产环境禁用或限制 info.php 等敏感文件访问,避免泄露配置与路径信息

0