在 Ubuntu 上使用 ThinkPHP 连接数据库,一般分为 环境准备 → 数据库配置 → 测试连接 三个步骤。下面以 ThinkPHP 6 / 8 + MySQL 为例说明(其他数据库类似)。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl unzip
查看 PHP 版本:
php -v
sudo apt install mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
初始化(可选):
sudo mysql_secure_installation
CREATE DATABASE tp_db CHARACTER SET utf8mb4;
CREATE USER 'tp_user'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON tp_db.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;
路径:
config/database.php
示例配置(MySQL):
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'tp_db',
'username' => 'tp_user',
'password' => '123456',
'hostport' => '3306',
'charset' => 'utf8mb4',
'prefix' => '',
],
],
];
.env 文件(项目根目录):
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_NAME=tp_db
DB_USER=tp_user
DB_PASS=123456
DB_PORT=3306
DB_CHARSET=utf8mb4
config/database.php 中使用:
'hostname' => env('DB_HOST'),
'database' => env('DB_NAME'),
'username' => env('DB_USER'),
'password' => env('DB_PASS'),
use think\facade\Db;
public function test()
{
$res = Db::query("SELECT VERSION()");
dump($res);
}
访问路由后能看到 MySQL 版本即表示连接成功。
namespace app\model;
use think\Model;
class User extends Model
{
protected $table = 'user';
}
sudo systemctl status mysqlphp -m | grep pdo_mysql
没有就安装:
sudo apt install php-mysql
sudo systemctl restart php-fpm
sudo chown -R www-data:www-data /var/www/your_project
✅ Ubuntu
✅ PHP + MySQL
✅ ThinkPHP 配置 database.php 或 .env
✅ 用 Db::query() 测试
如果你用的是 ThinkPHP 5 / 8 / 特定数据库(PostgreSQL / SQLite),可以告诉我,我可以给你对应版本的配置示例。