ThinkPHP5.0生产环境部署核心是关闭调试、提升安全、确保稳定、隐藏敏感路径:关闭APP_DEBUG、禁用错误显示、移除runtime/log、调整目录结构使application等不可Web访问、配置view_replace_str适配静态资源、用.env隔离数据库等敏感配置。

ThinkPHP5.0 在生产环境部署时,核心目标是:关闭调试、提升安全、确保稳定、隐藏敏感路径。不是所有开发期配置都适用线上,必须针对性调整。
关闭调试模式并禁用错误显示
入口文件(如 public/index.php)中必须注释或设为 false:
-
define('APP_DEBUG', false);—— 关闭调试模式,避免泄露路径、SQL、变量等敏感信息 - 确认 display_errors = Off 已在 PHP 配置中生效(云虚拟主机通常默认关闭,但需验证)
- 删除或重命名 runtime 目录下的
log子目录(或确保其权限为 755 且不可被 Web 直接访问)
设置正确的应用路径与入口位置
云虚拟主机(如阿里云)通常只允许根目录(htdocs 或 www)被外部访问,因此需调整结构:
- 将 public/index.php 移至网站根目录(如
/htdocs/index.php) - 同步修改该入口文件中的
APP_PATH定义,指向实际应用目录(如__DIR__.'/application/') - 确保 application、thinkphp 等目录不在 Web 可访问路径下;若已暴露,需在每个目录下添加
.htaccess内容:deny from all
静态资源路径与 URL 重写适配
移出 public 目录后,CSS/JS/图片会 404,需统一修正引用方式:
- 在
application/config.php中配置view_replace_str,例如:
'view_replace_str' => [
'__PUBLIC__' => '/public',
'__STATIC__' => '/public/static',
'__CSS__' => '/public/static/css',
'__JS__' => '/public/static/js',
'__IMG__' => '/public/static/images',
]
- 检查所有模板中 CSS 的
background: url(...)、、以及上传路径配置(如upload.rootpath),确保全部使用上述替换变量
环境变量与数据库等关键配置隔离
避免硬编码敏感信息,用 .env 统一管理生产专属参数:
- 在项目根目录(非 Web 可访问处)放置
.env,内容示例:
APP_DEBUG=false DB_HOST=rm-xxx.mysql.aliyuncs.com DB_NAME=prod_db DB_USER=prod_user DB_PWD=xxx_secure_pwd CACHE_TYPE=redis REDIS_HOST=xxx.redis.rds.aliyuncs.com
- 确保
config/database.php等文件中通过Env::get('DB_HOST')读取,而非直接写死 - 确认服务器上
.env文件权限为 644,且 PHP-FPM 进程用户可读 - 上线前执行
php think clear或手动删除runtime/config.php,强制重新加载.env
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











