Debian与ThinkPHP集成开发环境搭建
小樊
45
2025-12-28 19:53:11
Debian与ThinkPHP集成开发环境搭建
一 环境准备与版本选择
- 更新系统并安装基础工具:sudo apt update && sudo apt upgrade -y
- 选择 PHP 版本:
- 安装官方仓库最新稳定版:sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
- 如需指定版本(如 PHP 8.2),可添加 Ondřej Surý 的 Debian PHP 仓库后安装对应 php8.2 包组
- Web 服务器建议:Nginx(轻量、与 PHP-FPM 配合良好);数据库:MySQL/MariaDB
- ThinkPHP 6.x 推荐 PHP 7.4+;Composer 用于依赖管理
二 安装与配置 Web 与 PHP
- 安装 Nginx 与 PHP-FPM:sudo apt install nginx php-fpm -y && sudo systemctl enable --now nginx php-fpm
- PHP-FPM 关键配置(/etc/php//fpm/pool.d/www.conf):
- 使用 Unix Socket:listen = /run/php/php-fpm.sock
- 可按需调整进程管理参数(如 pm.max_children)
- 安全与性能(/etc/php//fpm/php.ini):
- 关闭 cgi.fix_pathinfo:cgi.fix_pathinfo=0
- 资源限制示例:memory_limit=256M,upload_max_filesize=10M,post_max_size=10M
- 验证 PHP-FPM 与 Nginx 运行状态:systemctl status php-fpm,systemctl status nginx
三 部署 ThinkPHP 项目
- 安装 Composer:curl -sS https://getcomposer.org/installer | php && sudo mv composer.phar /usr/local/bin/composer
- 创建项目(推荐):composer create-project topthink tp6
- 目录规范:
- Web 根目录必须指向项目的 public 目录(Nginx 的 root 配置项)
- 开发期可使用内置服务器快速验证:cd tp6 && php think run(默认端口 8000)
- 生产部署使用 Nginx/Apache 对外提供服务
四 Nginx 站点配置与路由重写
- 示例站点配置(/etc/nginx/sites-available/tp6.conf):
- 将 root 指向项目的 public 目录
- 使用 try_files 将请求转发至 index.php,启用 PATHINFO 路由
- fastcgi_pass 与 PHP-FPM 的 socket 路径保持一致
- 启用站点并重启 Nginx:
- sudo ln -s /etc/nginx/sites-available/tp6.conf /etc/nginx/sites-enabled/
- sudo nginx -t && sudo systemctl restart nginx
- 可选安全:禁止访问敏感文件(如 .env、.ht*)
五 数据库配置 权限与常见问题
- 安装与初始化数据库:sudo apt install mysql-server -y && sudo mysql_secure_installation
- 创建数据库与用户(示例):
- CREATE DATABASE thinkphp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- CREATE USER ‘thinkphp_user’@‘localhost’ IDENTIFIED BY ‘your_password’;
- GRANT ALL PRIVILEGES ON thinkphp_db.* TO ‘thinkphp_user’@‘localhost’; FLUSH PRIVILEGES;
- 项目配置:
- 复制 .env.example 为 .env,配置数据库连接(DB_TYPE、DB_HOST、DB_NAME、DB_USER、DB_PWD、DB_PORT)
- 开发环境可开启调试:APP_DEBUG=true
- 目录权限:
- Web 服务用户(通常为 www-data)对项目目录拥有所有权
- 确保 runtime 目录可写:chown -R www-data:www-data /var/www/html/tp6 && chmod -R 755 /var/www/html/tp6/runtime
- 常见问题排查:
- 502 Bad Gateway:检查 PHP-FPM 是否运行,Nginx fastcgi_pass 路径是否与 /run/php/php-fpm.sock 一致
- 路由失效:确认 Nginx 配置包含 try_files $uri $uri/ /index.php?$query_string;
- 权限拒绝:核对目录属主为 www-data,runtime 目录可写
- 性能与安全建议:
- 开启 OPcache(生产环境):opcache.enable=1
- 关闭调试模式(生产环境):APP_DEBUG=false
- 保护敏感文件:禁止访问 .env 等配置文件