温馨提示×

在Linux上如何搭建ThinkPHP开发环境

小樊
39
2025-12-26 04:54:56
栏目: 编程语言

Linux上搭建ThinkPHP开发环境

一 环境准备与版本选择

  • 选择版本:ThinkPHP 6.x 通常要求 PHP >= 7.1(推荐 7.4),ThinkPHP 8.0 要求 PHP >= 8.0
  • 基础组件:Web服务器 Nginx/ApachePHP-FPM(配合 Nginx)、数据库 MySQL/MariaDBComposer
  • 常用扩展:php-mysqlnd/php-pdophp-mbstringphp-xmlphp-curlphp-gdphp-zipphp-bcmathphp-json
  • 说明:以下分别给出 Ubuntu/DebianCentOS/Alibaba Cloud Linux 的实操命令,按你的发行版选择执行。

二 Ubuntu或Debian安装步骤

  • 更新并安装软件包
    sudo apt update && sudo apt install -y php php-fpm php-mysql php-mbstring php-xml php-curl php-gd php-zip php-bcmath php-json nginx git unzip
  • 安装 Composer
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
  • 创建项目(以 6.x 为例)
    composer create-project topthink tp6
    cd tp6
  • 配置 Nginx(将站点根目录指向 public)
    sudo nano /etc/nginx/sites-availablephp.conf
    示例:
    server {
    listen 80; server_name your_domain_or_ip;
    root /path/to/tp6/public; index index.php;
    location / { try_files $uri $uri/ /index.php?$query_string; }
    location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
    location ~ /.ht { deny all; }
    }
    sudo ln -s /etc/nginx/sites-availablephp.conf /etc/nginx/sites-enabled/
    sudo nginx -t && sudo systemctl reload nginx
  • 目录权限(开发环境可用 www-data,生产请按实际用户调整)
    sudo chown -R www-data:www-data /path/to/tp6
    sudo chmod -R 755 /path/to/tp6/runtime
  • 数据库与 .env(示例)
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=tp6
    DB_USERNAME=root
    DB_PASSWORD=your_password
  • 快速自测(开发阶段)
    php think run
    浏览器访问:http://服务器IP:8000

三 CentOS或Alibaba Cloud Linux安装步骤

  • 安装 EPEL 与 Remi 源(以 CentOS 7.x 为例)
    sudo yum install -y epel-release
    sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • 启用 PHP 8.0 仓库并安装(ThinkPHP 8.0 推荐)
    sudo yum-config-manager --enable remi-php80
    sudo yum install -y php php-cli php-fpm php-common php-mysqlnd php-gd php-mbstring php-zip php-devel php-curl php-xml php-pear php-bcmath php-json
  • Alibaba Cloud Linux 3 额外依赖
    sudo yum install -y compat-openssl10
  • 安装 Composer
    sudo yum install -y unzip git
    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
  • 创建项目并启动内置服务器(开发阶段)
    composer create-project topthink my-thinkphp-app
    cd my-thinkphp-app
    php think run
    浏览器访问:http://服务器IP:8000
  • 生产环境用 Nginx(示例)
    server {
    listen 80; server_name your_domain_or_ip;
    root /path/to/my-thinkphp-app/public; index index.php;
    location / { try_files $uri $uri/ /index.php?$query_string; }
    location ~ .php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; }
    location ~ /.ht { deny all; }
    }
    注意:如使用 Unix Socket,请改为 fastcgi_pass unix:/run/php/php8.0-fpm.sock; 并确保 php-fpm 配置一致。

四 开发与生产配置要点

  • 路由与重写
    • Nginx 必须包含:try_files $uri $uri/ /index.php?$query_string;
    • Apache 需启用 mod_rewrite,并在项目 public/.htaccess 中配置重写规则。
  • 目录权限与运行用户
    • 确保 runtimestorage 等可写;Web 服务运行用户(如 www-datanginx)对项目目录有合适权限。
  • 调试与错误日志
    • 开发环境可开启调试(如 app_debug = true);生产环境务必关闭。
    • 排查问题优先查看 Nginx 错误日志 /var/log/nginx/error.logPHP-FPM 日志ThinkPHP 日志
  • 性能与安全
    • 生产环境开启 OPcache,使用 Redis 等缓存;
    • 禁止访问敏感文件:location ~ /.env { deny all; };
    • 对外仅暴露 public 目录。

五 常见问题快速排查

  • 502 Bad Gateway
    • 检查 PHP-FPM 是否运行:systemctl status php-fpm;
    • 核对 Nginx 的 fastcgi_pass 与 php-fpm 监听方式(socket 或 127.0.0.1:9000)一致。
  • 路由 404 或白屏
    • 确认 Web 服务器已正确配置 URL 重写(Nginx 的 try_files 或 Apache 的 mod_rewrite)。
  • Composer 安装慢
    • 使用国内镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。
  • 数据库连接失败
    • 核对 .env 或数据库配置文件中的 DB_HOST/DB_PORT/DB_USERNAME/DB_PASSWORD/DB_DATABASE
    • 确保数据库服务已启动并允许远程/本地连接。

0