下面按最常见、实用的方式给你讲 Linux 下 ThinkPHP 的部署流程(以 ThinkPHP 5 / 6 / 8 + Nginx + PHP-FPM 为例,Apache 也会顺带说明)。
sudo apt update
sudo apt install php php-fpm php-mysql php-mbstring php-xml php-curl php-zip
查看 PHP 版本:
php -v
cd /www
git clone https://github.com/your/project.git
cd project
composer install
scp project.zip user@server:/www
unzip project.zip
cd project
composer install
ThinkPHP 需要写权限的目录:
chown -R www-data:www-data /www/project
chmod -R 755 /www/project
chmod -R 777 /www/project/runtime
Nginx 用户通常是
www-data或nginx
vim /etc/nginx/conf.d/thinkphp.conf
server {
listen 80;
server_name www.example.com;
root /www/project/public;
index index.php index.html;
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
}
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
deny all;
}
}
ThinkPHP 入口必须指向
public目录
nginx -t
systemctl restart nginx
systemctl restart php-fpm
cp .env.example .env
vim .env
示例:
APP_DEBUG = false
DB_HOST = 127.0.0.1
DB_NAME = test
DB_USER = root
DB_PASS = password
a2enmod rewrite
DocumentRoot /www/project/public
<Directory /www/project/public>
AllowOverride All
</Directory>
systemctl restart apache2
tail -f /www/project/runtime/log/*
runtime 权限publicphp -m | grep mbstring
✅ 关闭调试模式
✅ 使用 HTTPS
✅ 设置定时任务(如用到)
✅ 使用 Supervisor(队列)
如果你告诉我:
我可以直接给你一份可复制的完整配置。