在配置數據庫前,需確保Debian系統已安裝PHP(7.4+)、Web服務器(Nginx/Apache)、MySQL/MariaDB及Composer(ThinkPHP依賴管理工具)。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-mbstring php-xml php-curl -y
sudo apt install nginx -y
sudo apt install mysql-server -y
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
需將Web服務器指向ThinkPHP項目的public目錄(入口文件index.php
所在目錄),并配置URL重寫以支持ThinkPHP的路由功能。
/etc/nginx/sites-available/default
):server {
listen 80;
server_name your_domain.com; # 替換為你的域名或IP
root /var/www/your_project/public; # 替換為項目public目錄路徑
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string; # 關鍵:將請求轉發到index.php
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 根據PHP版本調整(如php7.4-fpm.sock)
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all; # 禁止訪問.htaccess文件
}
}
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
sudo nginx -t # 測試配置語法
sudo systemctl restart nginx
通過MySQL命令行工具創建數據庫、用戶并授權,確保ThinkPHP應用有權限訪問數據庫。
sudo mysql -u root -p
utf8mb4
字符集支持emoji等特殊字符):CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
your_username
、your_password
為實際值):CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES; # 刷新權限
exit;
ThinkPHP的數據庫配置主要通過**.env
文件**(環境變量配置)或**config/database.php
**(應用配置文件)實現,優先使用.env
文件(避免敏感信息泄露)。
.env
文件(位于項目根目錄):# 數據庫配置(ThinkPHP 6.x+)
DB_CONNECTION=mysql # 數據庫類型(mysql/sqlite/pgsql等)
DB_HOST=127.0.0.1 # 數據庫服務器地址(本地用127.0.0.1)
DB_PORT=3306 # 數據庫端口(MySQL默認3306)
DB_DATABASE=your_database_name # 數據庫名
DB_USERNAME=your_username # 數據庫用戶名
DB_PASSWORD=your_password # 數據庫密碼
config/database.php
(ThinkPHP 5.x):config/database.php
,修改connections
數組中的mysql
配置:return [
'default' => 'mysql', // 默認數據庫連接
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1',
'database' => 'your_database_name',
'username' => 'your_username',
'password' => 'your_password',
'hostport' => '3306',
'charset' => 'utf8mb4',
'prefix' => 'think_', // 表前綴(可選)
],
],
];
確保ThinkPHP項目的runtime目錄(運行時文件,如緩存、日志)可寫,避免權限問題。
cd /var/www/your_project # 進入項目根目錄
sudo chown -R www-data:www-data . # 將項目所有者設為www-data(Web服務器用戶)
sudo chmod -R 755 runtime # 設置runtime目錄權限為755
通過ThinkPHP的命令行工具或瀏覽器測試數據庫連接是否正常。
php think db:list # 查看已配置的數據庫連接(ThinkPHP 6.x+)
若配置正確,將顯示數據庫連接信息;若報錯,需檢查.env
文件中的數據庫信息是否正確。若應用長時間運行,可能出現數據庫連接斷開的情況,可在config/database.php
中開啟斷線重連:
'mysql' => [
// ...其他配置
'break_reconnect' => true, // 開啟斷線重連
],
完成以上步驟后,ThinkPHP項目即可正常連接MySQL數據庫,進行數據操作。