更新提醒(2026-10):本文寫於 2021 年,Nginx 設定中的 PHP-FPM socket 路徑是 php7.4-fpm.sock。PHP 7.4 已結束官方支援,若你安裝的是其他 PHP 版本,請把路徑改成對應版本。另外 phpMyAdmin 公開在網路上有被掃描攻擊的風險,建議加上存取限制,或參考站內較新的 【資安】Cloudflare Access 實戰:不用 VPN 保護後台與 Grafana 的作法。
本篇介紹如何在 Ubuntu Linux 環境中,安裝 phpMyAdmin 套件,並透過網頁顯示。
# 更新系統套件
sudo apt update
# 安裝phpmyadmin
sudo apt install phpmyadmin
設定軟連結
sudo ln -s /usr/share/phpmyadmin {phpmyadmin_path}
設定 Nginx
Ubuntu 預設的 Nginx 設定目錄為 /etc/nginx。
建立 sites-available 的 phpmyadmin.conf
server {
listen 80;
listen [::]:80;
# 網頁目錄
root /var/www/phpmyadmin;
# 伺服器名稱
server_name {your_domain};
location / {
try_files $uri/index.php?$query_string;
root /var/www/phpmyadmin;
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 403 404 /404.html;
location = /40x.html{
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#301永久轉址(443),轉址時,改變Request Method為GET,無法保留POST資料
#return 301 https://$host$request_uri;
#308永久轉址,轉址時,不改變Request Method,能保留POST資料
#return 308 https://$host$request_uri;
}
設定完 .conf 之後,利用軟連結(ln)連結到 sites-enabled:
# 進入/etc/nginx/sites-enabled
cd /etc/nginx/sites-enabled
# 設定軟連結
sudo ln -s ../sites-available/phpmyadmin.conf
設定完成後重新載入 Nginx
# 重新啟動Nginx
sudo nginx -s reload
新增一位資料庫使用者並授予資料庫權限
# 建立一般使用者帳號
CREATE USER `user`@`localhost` IDENTIFIED BY 'yourpassword';
# 設定帳號權限
GRANT ALL ON laravel.* TO `user`@`localhost`;
# 讓設定生效
FLUSH PRIVILEGES;
或者建立擁有全域權限的超級管理員
# 建立一般使用者帳號
CREATE USER `user`@`%` IDENTIFIED BY 'yourpassword';
# 設定帳號權限
GRANT ALL PRIVILEGES ON *.* TO 'user';
# 讓設定生效
FLUSH PRIVILEGES;
延伸閱讀
- 【資安】Cloudflare Access 實戰:不用 VPN 保護後台與 Grafana:phpMyAdmin 這類管理後台不建議直接暴露在公網,這篇示範不用 VPN 就能加上存取保護
No comments yet.