温馨提示×

ubuntu与thinkphp的集成开发环境搭建

小樊
46
2025-12-28 09:19:00
栏目: 编程语言

Ubuntu 22.04/24.04 搭建 ThinkPHP 集成开发环境

一 环境准备与安装

  • 更新系统并安装基础组件(以 PHP 8.2 为例,ThinkPHP 6.x 推荐 PHP 7.4+):
    • 安装 PHP 与常用扩展:
      • sudo apt update && sudo apt install -y php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip php-gd php-bcmath
    • 安装 NginxMySQL/MariaDB
      • sudo apt install -y nginx mysql-server
    • 安装 Composer(PHP 依赖管理):
      • curl -sS https://getcomposer.org/installer | php
      • sudo mv composer.phar /usr/local/bin/composer
  • 验证安装结果:
    • php -v(应显示 8.2.x 或更高)
    • composer --version
    • sudo systemctl status nginx(应为 active (running)
    • sudo systemctl status mysql(应为 active (running)
  • 可选:开启防火墙放行 80/443 端口(如使用 ufw:sudo ufw allow ‘Nginx Full’)。

二 创建 ThinkPHP 项目

  • 进入站点目录并创建项目(以 tp6 为例):
    • cd /var/www/html
    • composer create-project topthink tp6
  • 建议目录权限(Web 服务器用户为 www-data):
    • sudo chown -R www-data:www-data /var/www/html/tp6
    • sudo chmod -R 755 /var/www/html/tp6/runtime
  • 开发阶段可使用内置服务器快速验证:
    • cd /var/www/html/tp6
    • php think run(默认监听 http://127.0.0.1:8000)。

三 配置 Nginx 与 URL 重写

  • 创建站点配置(避免直接改动默认配置):
    • sudo nano /etc/nginx/sites-available/tp6.conf
  • 写入以下配置(注意将 root 指向项目的 public 目录,且按实际 PHP 版本调整 fastcgi_pass 的 socket 路径,如 php8.2-fpm.sockphp7.4-fpm.sock):
    • server { listen 80; server_name your_domain_or_ip; root /var/www/html/tp6/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.ht { deny all; } }
  • 启用站点并重启服务:
    • sudo ln -s /etc/nginx/sites-available/tp6.conf /etc/nginx/sites-enabled/
    • sudo nginx -t && sudo systemctl restart nginx
  • 说明:
    • root 必须指向 public,这是 ThinkPHP 的安全与入口要求。
    • try_files 规则是 PATHINFO 路由生效的关键。

四 数据库与项目配置

  • 创建数据库与用户(示例):
    • sudo mysql
    • CREATE DATABASE tp6_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    • CREATE USER ‘tp6_user’@‘localhost’ IDENTIFIED BY ‘YourStrongPassword’;
    • GRANT ALL PRIVILEGES ON tp6_db.* TO ‘tp6_user’@‘localhost’;
    • FLUSH PRIVILEGES;
    • EXIT;
  • 配置项目连接信息(使用 .env 文件优先):
    • 编辑 /var/www/html/tp6/.env(如不存在可复制 .env.example):
      • DB_TYPE=mysql
      • DB_HOST=127.0.0.1
      • DB_NAME=tp6_db
      • DB_USER=tp6_user
      • DB_PASSWORD=YourStrongPassword
      • DB_PORT=3306
  • 开发阶段可开启调试(生产务必关闭):
    • 编辑 config/app.php:‘app_debug’ => true(生产改为 false)。

五 验证与常见问题排查

  • 访问测试:
    • 浏览器打开 http://your_domain_or_ip,出现 ThinkPHP 欢迎页即成功。
  • 常见问题:
    • 502 Bad Gateway:
      • 检查 PHP-FPM 是否运行:sudo systemctl status php8.2-fpm
      • 核对 Nginx 中 fastcgi_pass 的 socket 路径与 PHP-FPM 实际监听一致(如 /run/php/php8.2-fpm.sock)。
    • 路由 404 或白屏:
      • 确认 Nginx 配置包含:try_files $uri $uri/ /index.php?$query_string;
      • 确认 root 指向 public 目录。
    • 权限错误(日志/缓存不可写):
      • 确保 runtime 目录可写:sudo chown -R www-data:www-data /var/www/html/tp6/runtime && sudo chmod -R 755 /var/www/html/tp6/runtime。
    • Composer 安装慢:
      • 使用国内镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。

0