下面按最常见场景给你一个在 Ubuntu + Nginx / Apache + PHP 下配置 ThinkPHP 的清晰步骤(以 ThinkPHP 6 为例,5.1 也基本通用)。
sudo apt update
sudo apt upgrade -y
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl php-zip unzip -y
查看 PHP 版本:
php -v
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer --version
cd /var/www
composer create-project topthink/think tp6
目录结构:
/var/www/tp6
sudo chown -R www-data:www-data /var/www/tp6
sudo chmod -R 755 /var/www/tp6
sudo chmod -R 777 /var/www/tp6/runtime
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/tp6
内容示例:
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/tp6/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/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
sudo ln -s /etc/nginx/sites-available/tp6 /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
sudo apt install apache2 libapache2-mod-php -y
开启重写:
sudo a2enmod rewrite
站点配置:
sudo nano /etc/apache2/sites-available/tp6.conf
<VirtualHost *:80>
DocumentRoot /var/www/tp6/public
ServerName your_domain_or_ip
<Directory /var/www/tp6/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
启用:
sudo a2ensite tp6
sudo systemctl restart apache2
nano /var/www/tp6/config/database.php
示例:
'default' => 'mysql',
'connections' => [
'mysql' => [
'hostname' => '127.0.0.1',
'database' => 'test',
'username' => 'root',
'password' => 'password',
]
]
cp .example.env .env
浏览器访问:
http://服务器IP
看到 ThinkPHP 欢迎页即成功 ✅
tail -f /var/www/tp6/runtime/log/*
try_filesAllowOverride Allsudo chmod -R 777 runtime
如果你用的是 ThinkPHP 5.1 / 8 / 宝塔 / Docker,可以告诉我,我可以给你更针对性的配置。