如何在Ubuntu 20.04上使用Apache(LAMP)安裝phpMyAdmin

本教程將向您展示如何在Ubuntu 20.04 LTS上使用Apache,MariaDB,PHP7.4(LAMP堆棧)安裝phpMyAdmin。 phpMyAdmin是一個免費的開放源代碼的基於Web的數據庫管理工具,用PHP編寫。 它為用戶提供了圖形Web界面來管理MySQL或MariaDB數據庫。

phpMyAdmin允許管理員執行以下操作:

  • 瀏覽數據庫和表;
  • 創建,複製,重命名,更改和刪除數據庫;
  • 創建,複製,重命名,更改和刪除表;
  • 進行桌子維護;
  • 添加,編輯和刪除字段;
  • 執行任何SQL語句,甚至多個查詢;
  • 創建,更改和刪除索引;
  • 將文本文件加載到表中;
  • 創建和讀取表或數據庫的轉儲;
  • 將數據導出為SQL,CSV,XML,Word,Excel,PDF和LaTeX格式;
  • 管理多個服務器;
  • 管理MySQL用戶和特權;
  • 使用配置提示檢查服務器設置和運行時信息;
  • 檢查MyISAM表中的參照完整性;
  • 使用示例查詢(QBE)自動創建複雜的查詢
  • 連接所需的表;
  • 創建數據庫布局的PDF圖形;
  • 在數據庫或其子集中進行全局搜索;
  • 使用一組預定義的功能將存儲的數據轉換為任何格式,例如將BLOB數據顯示為圖像或下載鏈接;
  • 管理InnoDB表和外鍵;

先決條件

要遵循本教程,您需要在本地計算機或遠程服務器上運行的Ubuntu 20.04 OS。

如果您正在尋找VPS(虛擬專用服務器),則可以通過我的推薦鏈接在Vultr創建一個帳戶,以獲取50美元的免費信用(僅限新用戶)。 並且,如果您需要使用域名設置phpMyAdmin,我建議您從NameCheap購買域名,因為價格低廉,而且它們免費提供whois隱私保護。

假定您已經在Ubuntu 20.04上安裝了LAMP堆棧。 如果沒有,請查看以下教程。

  • 如何在Ubuntu 20.04 LTS上安裝LAMP堆棧(Apache,MariaDB,PHP7.4)

有了這一點,讓我們開始安裝phpMyAdmin。

步驟1:在Ubuntu 20.04上下載並安裝phpMyAdmin

phpMyAdmin包含在Ubuntu 20.04軟件存儲庫中。 因此我們可以使用以下命令輕鬆安裝它。

sudo apt update
sudo apt install phpmyadmin

上面的命令將安裝所有必需的依賴項,包括PHP7擴展。 在安裝過程中,它將提示您選擇要配置的Web服務器。 點擊空格鍵選擇apache2。 (星號表示已選擇該項目)。 然後按Tab鍵和Enter確認您的選擇。

在下一個屏幕中,選擇 Yes 用phpMyAdmin配置數據庫 dbconfig-common

phpmyadmin Apache配置

然後為 phpmyadmin MariaDB / MySQL中的用戶。

安裝-phpmyadmin-ubuntu-20.04-apache2

完成此步驟後,將創建一個名為 phpmyadmin 創建並且數據庫用戶 phpmyadmin 具有管理此數據庫的必要特權。 如果您像我一樣好奇,可以登錄MariaDB並檢查哪些特權 phpmyadmin 用戶已被授予。

您可以使用以下命令登錄MariaDB服務器。

sudo mysql -u root

然後檢查 phpmyadmin 用戶。

show grants for [email protected];

輸出:

phpmyadmin數據庫配置

如您所見,用戶 phpmyadmin 對數據庫擁有所有特權 phpmyadmin。 現在您可以執行以下命令退出:

exit;

步驟2:從子目錄訪問phpMyAdmin

安裝phpMyAdmin時,將配置文件放置在 /etc/apache2/conf-enabled/phpmyadmin.conf,它使我們可以通過子目錄訪問phpMyAdmin。 如果您已在同一Ubuntu 20.04服務器上安裝了其他Web應用程序(如WordPress),則只需添加 /phpmyadmin 在瀏覽器地址欄中輸入您的域名之後。

example.com/phpmyadmin

phpmyadmin ubuntu

如果本地Ubuntu計算機上安裝了phpMyAdmin,則可以通過在瀏覽器地址欄中鍵入以下文本來訪問phpMyAdmin Web界面。

localhost/phpmyadmin

如果連接被拒絕或無法完成,則可能是防火牆阻止了HTTP請求。 如果使用的是iptables防火牆,則需要運行以下命令來打開TCP端口80和443。

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT

如果使用的是UFW防火牆,請運行此命令以打開TCP端口80和443。

sudo ufw allow 80,443/tcp

現在,您可以使用MariaDB / MySQL用戶名和密碼登錄phpMyAdmin。 如果您無法以root用戶身份登錄,請轉到第5步來解決此問題。

步驟3:從子域訪問phpMyAdmin

如果您的Ubuntu 20.04服務器沒有其他Apache虛擬主機,則可能要使用子域來訪問phpMyAdmin Web界面。 這樣,您可以啟用HTTPS加密通信。

首先,我們需要為phpMyAdmin創建一個Apache虛擬主機。 現有的phpMyAdmin配置代碼段可以用作模板。 讓我們將其複製到新文件中。

sudo cp /etc/apache2/conf-enabled/phpmyadmin.conf /etc/apache2/sites-available/phpmyadmin.conf

然後使用命令行文本編輯器(例如Nano)編輯新文件。

sudo nano /etc/apache2/sites-available/phpmyadmin.conf

該文件缺少 <VirtualHost> 標籤,因此我們需要在此文件的開頭添加以下行。 更換 pma.example.com 與您首選的phpMyAdmin子域。 不要忘記為此子域創建DNS A記錄。

<VirtualHost *:80>
    ServerName pma.example.com
    DocumentRoot /usr/share/phpmyadmin

    ErrorLog ${APACHE_LOG_DIR}/pma.error.log
    CustomLog ${APACHE_LOG_DIR}/pma.access.log combined

在此文件末尾添加以下行以關閉 <VirtualHost> 標籤。

</VirtualHost>

保存並關閉文件。 (要在Nano文本編輯器中保存文件,請按 Ctrl+O,然後按Enter確認。 要退出,請按 Ctrl+X。)然後啟用此虛擬主機。

sudo a2ensite phpmyadmin.conf

重新加載Apache Web服務器以使此更改生效。

sudo systemctl reload apache2

現在您應該能夠通過以下方式訪問phpMyAdmin Web界面

pma.example.com

如何在Ubuntu中安裝phpmyadmin

在登錄表單中輸入用戶憑據之前,讓我們啟用HTTPS。

步驟4:使用Apache在phpMyAdmin上啟用HTTPS

為了保護phpMyadmin Web界面的安全,我們可以安裝免費的Let’s Encrypt TLS證書。 運行以下命令從Ubuntu 20.04軟件存儲庫安裝Let’s Encrypt客戶端(certbot)。

sudo apt install certbot python3-certbot-apache

Python3-certbot-apache 是Certbot的Apache插件。 現在運行以下命令以獲取並安裝TLS證書。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple -d pma.example.com --email [email protected]

哪裡:

  • –apache: 使用Apache身份驗證器和安裝程序
  • –同意:同意讓我們加密服務條款
  • –重定向:通過添加301永久重定向來實施HTTPS。
  • –hsts:將Strict-Transport-Security標頭添加到每個HTTP響應。
  • –staple-ocsp:啟用OCSP裝訂。
  • –必須裝訂:將OCSP必須裝訂擴展名添加到證書中。
  • -d 標誌後面是域名列表,以逗號分隔。 您最多可以添加100個域名。
  • -電子郵件:用於註冊和恢復聯繫的電子郵件。

系統將詢問您是否要接收來自EFF(電子前沿基金會)的電子郵件。 選擇Y或N後,將自動為您獲取並配置您的TLS證書,如以下消息所示。

ubuntu-20.04-phpmyadmin-apache-subdomain-config

步驟5:排除phpMyAdmin登錄錯誤

如果嘗試使用MariaDB根帳戶登錄phpMyAdmin,則可能會看到以下錯誤。

#1698 - Access denied for user 'root '@'localhost'

要麼

mysqli_real_connect(): (HY000/1698): Access denied for user 'root '@'localhost'

如果您以用戶身份登錄 phpmyadmin,您不會看到上述錯誤。 但是,用戶 phpmyadmin 只能用於管理 phpmyadmin 數據庫。 錯誤的原因是,默認情況下,通過unix_socket插件對MariDB超級用戶進行身份驗證,而不是使用 mysql_native_password 插入。 為了解決這個問題,我們可以創建另一個管理員用戶,並將所有特權授予新的管理員用戶。

從命令行登錄到MariaDB服務器。

sudo mysql -u root

創建一個具有密碼身份驗證的管理員用戶。

create user [email protected] identified by 'your-preferred-password';

在所有數據庫上授予所有特權。

grant all privileges on *.* to [email protected] with grant option;

刷新特權並退出;

flush privileges;

exit;

現在,您可以使用來登錄phpMyAmin admin 帳戶並管理所有數據庫。

mysqli_real_connect HY0001698用戶'root'@'localhost'的訪問被拒絕

包起來

我希望本教程可以幫助您在Ubuntu 20.04上使用LAMP安裝phpMyAdmin。 與往常一樣,如果您發現這篇文章很有用,請訂閱我們的免費新聞通訊以獲取更多提示和技巧。 保重🙂

Sidebar