温馨提示×

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 等配置文件

0