温馨提示×

thinkphp在ubuntu如何部署

小樊
44
2026-09-19 21:24:57
栏目: 编程语言

下面给你一个在 Ubuntu 上部署 ThinkPHP 项目的常见、实用方案,以 Nginx + PHP-FPM + MySQL 为例(目前最主流)。如果你用的是 Apache,我也可以另外说明。


一、环境准备

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx、PHP、MySQL

sudo apt install -y nginx
sudo apt install -y php-fpm php-mysql php-mbstring php-xml php-curl php-zip
sudo apt install -y mysql-server

ThinkPHP 一般要求 PHP ≥ 7.2(建议 8.0+)


二、上传 ThinkPHP 项目

方式一:直接上传

把项目放到:

/var/www/your_project

目录结构应类似:

your_project/
├── app/
├── public/
├── config/
├── runtime/
├── composer.json

方式二:Git 拉取

cd /var/www
git clone your_repo your_project

三、安装依赖(Composer)

cd /var/www/your_project
composer install

如果没有 composer:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

四、配置 Nginx

1. 新建站点配置

sudo nano /etc/nginx/sites-available/your_project

示例配置(重点:root 指向 public):

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/your_project/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:/var/run/php/php8.1-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}

⚠️ PHP 版本根据实际安装调整(如 php8.2-fpm.sock)

2. 启用站点

sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

五、权限设置(非常重要)

sudo chown -R www-data:www-data /var/www/your_project
sudo chmod -R 755 /var/www/your_project
sudo chmod -R 777 /var/www/your_project/runtime

六、配置数据库

sudo mysql -u root
CREATE DATABASE tp_db CHARACTER SET utf8mb4;
CREATE USER 'tp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON tp_db.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;

修改:

/var/www/your_project/config/database.php

七、访问测试

浏览器访问:

http://服务器IP

或:

http://域名

八、常见问题

1. 500 错误

  • 看日志:
tail -f /var/www/your_project/runtime/log/*
  • 或 Nginx 错误日志:
sudo tail -f /var/log/nginx/error.log

2. 路由不生效

  • 确认 public 是 root
  • 开启 Nginx rewrite

3. 生产环境建议

APP_DEBUG = false

九、可选(推荐)

  • HTTPS(Let’s Encrypt)
  • 定时任务(crontab)
  • 使用 supervisor 管理队列

如果你告诉我:

  • ✅ ThinkPHP 版本(5.0 / 5.1 / 6.0 / 8.0)
  • ✅ Ubuntu 版本
  • ✅ 是否用 Docker / 宝塔 / Apache

我可以给你更精确的部署方案。

0 踩