网站搜索

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


在本文中,我们将引导您逐步完成在基于 RHEL 的发行版(例如 CentOS StreamPhpMyAdmin 的过程>、FedoraRocky LinuxAlma Linux

什么是 PhpMyAdmin?

PhpMyAdmin 是一款流行且功能强大的基于 Web 的数据库管理工具,拥有最新版本可确保您能够访问最新的功能和安全增强功能。在本指南结束时,您将能够使用 PhpMyAdmin 轻松管理 MySQL 或 MariaDB 数据库。

先决条件

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

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

第 1 步:更新系统

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

sudo dnf update

这会将系统上的所有软件包更新为最新版本。

第 2 步:安装 Apache Web 服务器

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

sudo dnf install httpd

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

sudo systemctl start httpd
sudo systemctl enable httpd

第 3 步:安装 MariaDB 或 MySQL

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

sudo dnf install mariadb-server

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

sudo systemctl start mariadb
sudo systemctl enable mariadb

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

sudo mysql_secure_installation

第四步:安装PHP

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

sudo dnf install php php-mysqlnd php-json php-mbstring

第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

现在,您可以通过网络浏览器访问 PhpMyAdmin,方法是导航到服务器的 IP 地址或域名,并在 URL 中添加“/phpmyadmin”:

http://your_server_ip/phpmyadmin

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

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

打开 PhpMyAdmin 配置文件。

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

找到 部分或配置 PhpMyAdmin 的部分,并更新 Require 指令以允许访问 PhpMyAdmin 的所有 IP 地址。

<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 设置 SSL

确保 Apache Web 服务器和 phpMyAdmin 之间的通信安全对于保护登录凭据和数据库内容等敏感信息至关重要。实现此目的的一种有效方法是在 Apache Web 服务器上为 phpMyAdmin 配置 SSL安全套接字层)。

为此,请首先在您的服务器上安装 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

创建 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

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

$cfg['ForceSSL'] = true;

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

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

https://yourdomain.com/my/

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

结论

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