温馨提示×

ubuntu ThinkPHP怎么整合MySQL

小樊
46
2026-10-19 05:36:33
栏目: 云计算

在 Ubuntu 上使用 ThinkPHP 整合 MySQL,通常包括:安装环境 → 创建数据库 → 配置 ThinkPHP → 测试连接。下面以 ThinkPHP 6 / 8 + MySQL 8 为例说明(PHP 7.4 / 8.x 通用)。


一、Ubuntu 环境准备

1. 安装 PHP 和必要扩展

sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl unzip -y

查看版本:

php -v

2. 安装 MySQL

sudo apt install mysql-server -y
sudo mysql_secure_installation

启动 MySQL:

sudo systemctl start mysql
sudo systemctl enable mysql

3. 安装 Composer(ThinkPHP 依赖)

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
composer -v

二、创建 MySQL 数据库和用户

登录 MySQL:

sudo mysql -u root -p

创建数据库和用户:

CREATE DATABASE tp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

CREATE USER 'tp_user'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON tp_db.* TO 'tp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

三、安装 ThinkPHP

方式一:Composer 安装(推荐)

composer create-project topthink/think tpapp
cd tpapp

目录结构:

tpapp/
├── app
├── config
├── public
├── runtime

四、ThinkPHP 配置 MySQL

编辑配置文件:

nano 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'   => 'tp_',
        ],
    ],
];

五、测试 MySQL 连接

方式一:控制器中测试

nano app/controller/Index.php
<?php
namespace app\controller;

use think\facade\Db;

class Index
{
    public function index()
    {
        $res = Db::query('SELECT VERSION() AS version');
        return json($res);
    }
}

访问:

http://localhost/tpapp/public/

返回 MySQL 版本即成功。


方式二:模型方式

use think\facade\Db;

Db::table('tp_user')->insert([
    'name' => 'test',
    'age'  => 18
]);

六、配置 Web 服务器(Nginx 示例)

server {
    listen 80;
    server_name localhost;
    root /var/www/tpapp/public;

    location / {
        index index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

七、常见问题

✅ 连接失败

  • 检查 MySQL 是否允许 localhost
  • 确认 php-mysql 已安装
  • 查看 runtime/log

✅ 权限问题

sudo chmod -R 777 runtime

如果你用的是:

  • ThinkPHP 5
  • 远程 MySQL
  • Docker / Ubuntu Server

可以告诉我,我可以给你对应版本的具体配置。

0 踩