温馨提示×

thinkphp在ubuntu怎样部署

小樊
36
2026-09-28 17:48:14
栏目: 编程语言

下面给你一套**在 Ubuntu 上部署 ThinkPHP(以 ThinkPHP 6 为例,5.1 类似)**的常见做法,从零开始,包含 Nginx + PHP + MySQL 的完整流程。


一、环境准备(Ubuntu 20.04 / 22.04 通用)

1. 更新系统

sudo apt update
sudo apt upgrade -y

二、安装 PHP(推荐 PHP 8.0+)

1. 安装 PHP 及常用扩展

sudo apt install -y php php-cli php-fpm php-mysql php-curl php-xml php-mbstring php-zip php-gd php-intl

查看 PHP 版本:

php -v

三、安装 Nginx

sudo apt install -y nginx

启动并设置开机自启:

sudo systemctl enable nginx
sudo systemctl start nginx

四、安装并配置 MySQL(可选)

sudo apt install -y mysql-server
sudo mysql_secure_installation

创建数据库:

CREATE DATABASE tp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'tp_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON tp_db.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;

五、部署 ThinkPHP 项目

方式一:直接上传代码(常见)

sudo mkdir -p /var/www/tp
sudo chown -R $USER:$USER /var/www/tp

将项目上传到:

/var/www/tp

目录结构应类似:

/var/www/tp
 ├── app
 ├── public
 ├── config
 ├── runtime
 └── composer.json

设置权限(重要)

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

方式二:使用 Composer 安装(推荐)

cd /var/www
composer create-project topthink/think tp

六、配置 Nginx

编辑站点配置:

sudo nano /etc/nginx/sites-available/tp.conf

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

server {
    listen 80;
    server_name your_domain_or_ip;

    root /var/www/tp/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/php-fpm.sock;
    }

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

启用站点:

sudo ln -s /etc/nginx/sites-available/tp.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

七、配置 ThinkPHP 环境

复制环境变量:

cp .example.env .env

修改数据库配置:

APP_DEBUG = false

DB_TYPE = mysql
DB_HOST = 127.0.0.1
DB_NAME = tp_db
DB_USER = tp_user
DB_PWD = password
DB_PORT = 3306

八、访问测试

浏览器访问:

http://服务器IP

看到 ThinkPHP 欢迎页即成功 ✅


九、常见问题

1. 页面 500

sudo tail -f /var/www/tp/runtime/log/*

2. 路由不生效

确认 Nginx 的 try_files 配置正确

3. 权限问题

sudo chown -R www-data:www-data /var/www/tp

十、可选优化

  • 开启 HTTPS(Let’s Encrypt)
  • 使用 Supervisor 管理队列
  • 开启 OPCache
  • 生产环境关闭 APP_DEBUG

如果你用的是 ThinkPHP 5.1 / 8.0 / 宝塔面板 / Docker,告诉我,我可以给你对应版本的具体部署方案。

0 踩