下面给你一个在 Ubuntu 上部署 ThinkPHP 项目的常见、实用方案,以 Nginx + PHP-FPM + MySQL 为例(目前最主流)。如果你用的是 Apache,我也可以另外说明。
sudo apt update
sudo apt upgrade -y
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+)
把项目放到:
/var/www/your_project
目录结构应类似:
your_project/
├── app/
├── public/
├── config/
├── runtime/
├── composer.json
cd /var/www
git clone your_repo your_project
cd /var/www/your_project
composer install
如果没有 composer:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
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)
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://域名
tail -f /var/www/your_project/runtime/log/*
sudo tail -f /var/log/nginx/error.log
public 是 rootAPP_DEBUG = false
如果你告诉我:
我可以给你更精确的部署方案。