如何在 RHEL 系统中使用 Apache 安装 PhpMyAdmin

在本文中,我们将引导您逐步完成在Apache Web服务器上安装最新版本的PhpMyAdmin的过程,适用于RHEL系发行版,如CentOS StreamFedoraRocky LinuxAlma Linux

什么是PhpMyAdmin?

PhpMyAdmin是一个流行且功能强大的基于Web的数据库管理工具,使用最新版本可以确保您能够使用最新的功能和安全增强。通过本指南,您将能够轻松管理您的MySQL或MariaDB数据库使用PhpMyAdmin

先决条件

在我们开始之前,请确保您拥有以下条件:

  • 访问RHEL、CentOS Stream、Fedora、Rocky Linux或AlmaLinux系统。
  • 确保您可以作为root用户登录或具有安装软件的sudo权限。
  • 现有的一套LAMP堆栈,包括Apache、MySQL/MariaDB和PHP。如果您还没有LAMP,可以按照以下步骤进行设置。

步骤1:更新系统

在安装任何软件之前,确保您的系统是最新的至关重要,可以通过运行以下dnf命令来实现。

sudo dnf update
Update Linux System

这将把您系统上的所有软件包更新到最新版本。

步骤2:安装Apache Web服务器

PhpMyAdmin是一个基于Web的工具,为了使用它,您需要使用以下命令安装Apache Web服务器。

sudo dnf install httpd
Install Apache in Linux

安装完成后,启动Apache服务,并使其在启动时自动启动。

sudo systemctl start httpd
sudo systemctl enable httpd

步骤3:安装MariaDB或MySQL

您还需要一个数据库服务器。您可以选择安装MariaDBMySQL,但在本例中,我们将选择MariaDB

sudo dnf install mariadb-server
Install MariaDB in Linux

安装完成后,启动MariaDB服务,并使其在启动时自动启动。

sudo systemctl start mariadb
sudo systemctl enable mariadb

接下来,通过运行脚本来保护您的MariaDB安装,该脚本将提示您为root用户输入密码,禁止远程root登录,并删除匿名用户。它还将删除默认情况下匿名用户可以访问的测试数据库。

sudo mysql_secure_installation
Secure MariaDB in Linux

步骤4:安装PHP

PhpMyAdmin是用PHP构建的,所以我们需要使用以下命令安装PHP和一些必需的扩展。

sudo dnf install php php-mysqlnd php-json php-mbstring
Install PHP in Linux

步骤5:安装PhpMyAdmin

现在,让我们继续在我们的Linux系统上安装PhpMyAdmin,方法是导航到Web服务器的文档根目录/var/www/html,如下所示。

cd /var/www/html

接下来,使用以下wget命令下载PhpMyAdmin的最新版本,如下所示。

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

下载完成后,提取下载的存档并重命名目录以便于使用。

sudo tar -xvzf phpMyAdmin-latest-all-languages.tar.gz
sudo mv phpMyAdmin-*/ phpmyadmin

为PhpMyAdmin创建配置文件。

sudo cp /var/www/html/phpmyadmin/config.sample.inc.php /var/www/html/phpmyadmin/config.inc.php

编辑配置文件:

sudo nano /var/www/html/phpmyadmin/config.inc.php

找到以下行并设置您自己的blowfish_secret:

$cfg['blowfish_secret'] = 'your_secret';

保存并退出文件。

步骤6:在firewalld中打开Apache端口

默认情况下,Apache通常使用端口80443分别为HTTPHTTPS。要打开Apache端口并允许访问PhpMyAdmin到您的服务器,请运行:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload

这些命令添加规则以允许在指定端口上的传入流量,并重新加载防火墙以应用更改。

第7步:重新启动Apache Web服务器

最后,重新启动Apache以应用更改:

sudo systemctl restart httpd

第8步:访问PhpMyAdmin

现在,您可以通过在URL中导航到服务器的IP地址或域名,然后加上“/phpmyadmin”来通过Web浏览器访问PhpMyAdmin

http://your_server_ip/phpmyadmin

使用您的MySQL或MariaDB凭据登录。

PHPMyAdmin Login
PHPMyAdmin Dashboard

第9步:在PhpMyAdmin中允许外部访问

打开PhpMyAdmin配置文件。

sudo vi /etc/httpd/conf/httpd.conf

找到<Directory "/var/www/html">部分或您的PhpMyAdmin配置的部分,并将Require指令更新为允许所有IP地址访问PhpMyAdmin

<Directory "/var/www/html/phpmyadmin">
    ...
    Require all granted
    ...
</Directory>

上述配置允许任何IP地址访问,但如果您想限制到特定IP,请将Require all granted替换为Require ip your_ip

重启Apache以应用更改。

sudo systemctl restart httpd

现在,您应该能够使用服务器的IP地址或域名从外部世界访问PhpMyAdmin

http://your_server_ip/phpmyadmin

请记住,从外部世界开放访问PhpMyAdmin可能会带来安全风险。确保您有一个强大的认证机制,并考虑使用HTTPS进行加密通信。此外,如果可能的话,仅限制访问到可信IP地址或保护PhpMyAdmin登录URL

更改phpMyAdmin登录URL

默认的phpMyAdmin登录URL是可预测的,经常被试图利用漏洞的恶意行为者作为目标。更改登录URL增加了额外的安全层,使得未经授权的用户更难访问您的数据库管理界面。

为此,创建一个/etc/httpd/conf.d/phpMyAdmin.conf配置文件。

vi /etc/httpd/conf.d/phpMyAdmin.conf

接下来,添加以下配置。

#Alias /phpMyAdmin /var/www/html/phpmyadmin
Alias /my /var/www/html/phpmyadmin

<Directory /var/www/htm/lphpmyadmin>
    AddDefaultCharset UTF-8

    <IfModule mod_authz_core.c>
        # Apache 2.4
        <RequireAny>
            Require all granted
            # Additional IP or hostname-based access control can be added here
        </RequireAny>
    </IfModule>

    <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from All
        Allow from 127.0.0.1
        Allow from ::1
        # Additional IP or hostname-based access control can be added here
    </IfModule>

</Directory>

/my替换为您想要的自定义登录URL。保存更改并退出文本编辑器。

在对配置文件进行更改后,重新启动Apache以应用修改:

systemctl restart httpd

打开您的网络浏览器并导航到新的phpMyAdmin登录URL。

http://yourdomain.com/my/
phpMyAdmin Login URL

为phpMyAdmin设置SSL

保护Apache Web服务器和phpMyAdmin之间的通信至关重要,以保护敏感信息,如登录凭据和数据库内容。实现这一点的一个有效方法是配置SSL安全套接字层)用于phpMyAdmin在Apache Web服务器上。

为此,首先在服务器上安装mod_ssl模块。

yum install httpd mod_ssl openssl

接下来,创建一个目录来存储证书并生成一个自签名SSL证书和私钥,如下所示。

mkdir /etc/httpd/ssl 
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt
Create SSL Certificate for PhpMyAdmin

创建SSL证书和密钥后,打开Apache SSL配置文件。

vi /etc/httpd/conf.d/ssl.conf

接下来,将以下行添加到配置文件中。

SSLEngine on
SSLCertificateFile /etc/httpd/ssl/apache.crt
SSLCertificateKeyFile /etc/httpd/ssl/apache.key

保存更改并重新启动Apache Web服务器。

systemctl restart httpd

现在,打开phpMyAdmin配置文件。

vi /var/www/html/phpmyadmin/config.inc.php

添加以下行以强制SSL用于phpMyAdmin。

$cfg['ForceSSL'] = true;

保存更改并退出文本编辑器。

最后,打开您的网络浏览器并导航到以下URL,以通过安全的SSL连接访问phpMyAdmin。

https://yourdomain.com/my/

请注意,显示不安全连接的消息仅是由于使用了自签名证书。要继续,请单击“高级”并确认安全例外。

SSL Warning
Secure phpMyAdmin Login
结论

恭喜!您已成功在您的RHEL、CentOS Stream、Rocky Linux或AlmaLinux系统上安装了带有Apache的PhpMyAdmin。这个基于Web的工具简化了数据库管理,使得数据库创建、查询和数据管理等任务变得轻而易举。

Source:
https://www.tecmint.com/install-phpmyadmin-rhel-centos-fedora-linux/