拿到一套 php 源码后,第一步不是改代码,而是把运行环境配通。环境不通,后面所有调试都是白费。
先明确源码的运行要求
不同项目对版本很敏感。打开源码根目录,优先找 composer.json、README.md、install 目录或 .env.example,确认三件事:PHP 版本区间、依赖的扩展、数据库类型和版本。老项目常见 PHP 5.6 或 7.2,新项目多要求 8.0 以上。扩展方面重点看 mysqli、pdo_mysql、curl、gd、fileinfo、openssl 是否被调用。
集成环境与手动安装怎么选
本地跑通源码,集成环境效率最高。phpstudy、XAMPP、MAMP 都自带 Apache/Nginx、PHP、MySQL,装完即可用。优点是省去编译和扩展配置,切 PHP 版本方便。缺点是目录结构和线上有差异,某些依赖特定配置的项目仍会报错。
如果项目要上线,或需要精确控制版本,建议手动安装。Linux 下用包管理器装 Nginx、PHP-FPM、MySQL,再通过 php -m 核对扩展;Windows 下可下载 PHP 压缩包,修改 php.ini 后接入 Web 服务器。手动方式更接近生产环境。
部署源码的关键动作
把源码放到 Web 根目录,通常是 www、htdocs 或 /var/www/html。注意两点:
- 入口文件位置。多数框架入口在
public/index.php,Web 根目录应指向public,而不是项目根目录,否则配置和缓存文件可能被直接访问。 - 目录权限。Linux 下给
runtime、cache、uploads、storage等目录写权限,属主设为 Web 运行用户,不要图省事用777。
接着处理数据库。新建库时字符集选 utf8mb4,排序规则用 utf8mb4generalci 或 utf8mb4unicodeci。导入 SQL 文件后,在源码配置中填写主机、库名、用户名和密码。常见配置文件名为 config.php、database.php 或 .env。
伪静态与访问入口
ThinkPHP、Laravel 这类框架依赖 URL 重写。Nginx 需要加 tryfiles $uri $uri/ /index.php?$querystring;;Apache 则确认 mod_rewrite 已开启,并允许 .htaccess 生效。如果首页能开、内页 404,基本都是伪静态没配好。
常见报错与排查顺序
遇到白屏先开错误显示:在入口文件临时加 iniset('displayerrors',1); errorreporting(EALL);。报“连接数据库失败”就核对账号密码和端口;报“缺少扩展”就回 php.ini 开启对应模块并重启服务;报“权限不足”检查目录属主;报“404”优先查伪静态和入口路径。按这个顺序排查,大部分环境问题都能定位。
环境配通后再动代码,调试效率会高很多。

