真实项目需按需求规模、团队习惯和部署环境动态调整PHP后端流程;小工具用原生+Slim,中大型选Laravel;注意PHP版本、数据库权限、日志配置及环境一致性。
PHP 后端开发没有标准“流程教程”可套用,真实项目里你得根据需求规模、团队习惯和部署环境动态调整。硬套所谓“完整流程”反而容易卡在环境配置或路由设计上动不了。
新项目别从 php -S 命令起步写路由——调试时 404 多半不是代码错,而是没配好重写规则。小工具类项目(比如内部 Excel 导出接口)用原生 + slimphp/slim 足够;中大型业务系统直接上 Laravel,它把 artisan、migrate、seeder 这些命令链路跑通了,省去自己搭 CLI 入口的精力。
注意两点:
public/index.php 里手动改 $_SERVER['REQUEST_URI'] 来兼容 Nginx 的 PATH_INFO 模式——直接用 Laravel 自带的 nginx.conf 示例配置php artisan migrate 报错不一定是 SQL 语法问题,更多是权限或上下文缺失:
ALTER 和 CREATE 权限,尤其在 Docker 容器里默认用户常被限制.env 文件里的 DB_HOST 写成 localhost —— 容器内访问宿主机 MySQL 应该用宿主机 IP 或 host.docker.internal
$table->json('data'),但 MySQL 版本低于 5.7,会直接报错而不是优雅降级线上环境 dis 是对的,但很多人忘了开 
log_errors=On,导致异常静默。Laravel 默认把错误写进 storage/logs/laravel.log,但如果你手动改过 config/logging.php 里的 stack 配置,又没确认 channels 是否包含 single,就可能看不到任何记录。
快速验证方法:
Log::error('test log');,然后查 storage/logs/ 下最新文件chmod -R 775 storage/ 比反复重启 PHP-FPM 更有效error_log 或 Nginx 的 error.log
真正卡住项目的往往不是语法或框架用法,而是本地 php.ini 和生产环境不一致、Composer autoload 加载顺序混乱、或者 Git 忽略了 .env.example 却没同步更新字段。流程只是骨架,填进去的每个配置项才是实际跑起来的关键。