下面按最常见场景给你一个在 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 -v
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 apt install nginx -y
sudo nano /etc/nginx/sites-available/tp6
内容示例:
server {
listen 80;
server_name yourdomain.com;
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/000-default.conf
DocumentRoot /var/www/tp6/public
<Directory /var/www/tp6/public>
AllowOverride All
Require all granted
</Directory>
sudo systemctl restart apache2
cp .example.env .env
nano .env
示例:
APP_DEBUG = true
DB_TYPE = mysql
DB_HOST = 127.0.0.1
DB_NAME = tp6
DB_USER = root
DB_PASS = password
DB_PORT = 3306
浏览器访问:
http://服务器IP
看到 ThinkPHP 欢迎页即成功 ✅
try_filesmod_rewritesudo chmod -R 777 runtime
APP_DEBUG = false
如果你告诉我:
我可以给你更精确的配置。