在Ubuntu系統中,配置PHP連接數據庫通常涉及以下幾個步驟:
首先,確保你已經安裝了PHP和所需的數據庫服務器(如MySQL或MariaDB)。
sudo apt update
sudo apt install php php-cli php-fpm php-mysql
sudo apt update
sudo apt install mysql-server
啟動并啟用MySQL/MariaDB服務,并運行安全設置腳本。
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation
登錄到MySQL/MariaDB并創建一個新的數據庫和用戶。
sudo mysql -u root -p
在MySQL shell中執行以下命令:
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
在你的PHP項目中,使用PDO(PHP Data Objects)或mysqli擴展來連接數據庫。
創建一個PHP文件(例如config.php
),并添加以下代碼:
<?php
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'myuser';
$password = 'mypassword';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
// 設置PDO錯誤模式為異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
創建一個PHP文件(例如config.php
),并添加以下代碼:
<?php
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'myuser';
$password = 'mypassword';
// 創建連接
$conn = new mysqli($host, $username, $password, $dbname);
// 檢查連接
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>
在你的PHP項目中,包含config.php
文件并嘗試執行一些數據庫操作來測試連接是否成功。
<?php
include 'config.php';
// 使用PDO示例
try {
$stmt = $pdo->query("SELECT * FROM mytable");
while ($row = $stmt->fetch()) {
echo $row['column_name'] . "<br>";
}
} catch(PDOException $e) {
echo "Query failed: " . $e->getMessage();
}
// 使用mysqli示例
$result = $conn->query("SELECT * FROM mytable");
if ($result->num_rows > 0) {
// 輸出每行數據
while($row = $result->fetch_assoc()) {
echo $row["column_name"] . "<br>";
}
} else {
echo "0 results";
}
?>
如果你使用的是PHP-FPM,確保你的Web服務器(如Nginx或Apache)配置正確,指向PHP-FPM進程。
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 根據你的PHP版本調整
}
location / {
try_files $uri $uri/ =404;
}
}
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
完成以上步驟后,你應該能夠在Ubuntu系統中成功配置PHP連接數據庫。