Linux上搭建ThinkPHP开发环境
一 环境准备与版本选择
- 选择版本:ThinkPHP 6.x 通常要求 PHP >= 7.1(推荐 7.4),ThinkPHP 8.0 要求 PHP >= 8.0。
- 基础组件:Web服务器 Nginx/Apache、PHP-FPM(配合 Nginx)、数据库 MySQL/MariaDB、Composer。
- 常用扩展:php-mysqlnd/php-pdo、php-mbstring、php-xml、php-curl、php-gd、php-zip、php-bcmath、php-json。
- 说明:以下分别给出 Ubuntu/Debian 与 CentOS/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 中配置重写规则。
- 目录权限与运行用户
- 确保 runtime、storage 等可写;Web 服务运行用户(如 www-data 或 nginx)对项目目录有合适权限。
- 调试与错误日志
- 开发环境可开启调试(如 app_debug = true);生产环境务必关闭。
- 排查问题优先查看 Nginx 错误日志 /var/log/nginx/error.log、PHP-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;
- 确保数据库服务已启动并允许远程/本地连接。