温馨提示×

ubuntu ThinkPHP怎么部署项目

小樊
37
2026-10-19 05:27:36
栏目: 编程语言

在 Ubuntu 上部署 ThinkPHP 项目,一般流程是:安装环境(PHP、Web 服务器、数据库)→ 上传代码 → 配置站点 → 设置权限。下面以 Ubuntu 20.04/22.04 + Nginx + PHP 8.1 + MySQL 为例说明。


一、安装运行环境

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 Nginx

sudo apt install nginx -y

3. 安装 PHP

sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y

查看 PHP 是否安装成功:

php -v

4. 安装 MySQL(可选)

sudo apt install mysql-server -y
sudo mysql_secure_installation

二、上传 ThinkPHP 项目

方式一:使用 Git

cd /var/www
sudo git clone 你的项目地址 thinkphp_project

方式二:手动上传

sudo mkdir -p /var/www/thinkphp_project
# 用 scp / FileZilla 上传代码到该目录

三、安装依赖(Composer)

cd /var/www/thinkphp_project
sudo apt install composer -y
composer install

四、配置 Nginx

新建站点配置:

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

内容示例(重点:指向 public 目录):

server {
    listen 80;
    server_name yourdomain.com;  # 或服务器IP

    root /var/www/thinkphp_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:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

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

启用站点:

sudo ln -s /etc/nginx/sites-available/thinkphp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

五、设置目录权限

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

六、配置 ThinkPHP

编辑配置文件:

cp .env.example .env
nano .env

常见配置:

APP_DEBUG = false
DB_HOST = 127.0.0.1
DB_DATABASE = test
DB_USERNAME = root
DB_PASSWORD = 123456

七、访问项目

浏览器访问:

http://服务器IP

八、常见问题

1. 404 / 路由无效

  • 确认 root 指向 public
  • 确认 try_files 配置正确

2. 500 错误

tail -f /var/www/thinkphp_project/runtime/log/*

3. 权限问题

  • runtime 目录必须可写

如果你用的是 Apache / 宝塔 / Docker / ThinkPHP 5 / 6 / 8,可以告诉我,我可以给你更具体的部署方案。

0 踩