如何在Alma Linux 8上安装和保护phpMyAdmin
phpMyAdmin 是一个免费的开源数据库管理应用程序,适用于 MySQL 和 MariaDB。它允许您管理、执行各种与数据库相关的任务,并从基于 Web 的界面执行查询。它是用 PHP 编写的,提供了一个强大且用户友好的界面,用于通过 Web 浏览器管理数据库。它是跨平台的,可以在许多操作系统上运行,包括 Windows、macOS、Linux 和 BSD。
在本教程中,您将学习如何在Alma Linux 8上安装phpMyAdmin。
先决条件
- 运行Alma Linux 8的服务器。
- 与您的服务器 IP 指向的有效域名。
- 服务器上配置了 root 密码。
安装 LEMP 服务器
首先,使用以下命令安装 Nginx Web 服务器和 MariaDB 数据库服务器:
dnf install nginx mariadb -y
接下来,使用以下命令安装 Remi PHP 存储库:
dnf -y install http://rpms.remirepo.net/enterprise/remi-release-8.rpm
接下来,使用以下命令禁用默认 PHP 模块并启用 Remi PHP 模块:
dnf module -y reset php
dnf module install php:remi-7.4 -y
接下来,使用以下命令安装 PHP 以及其他所需的扩展:
dnf install php php-cli php-common php-fpm php-curl php-gd php-mbstring php-process php-snmp php-xml php-zip php-memcached php-mysqlnd php-json php-mbstring php-pdo php-pdo-dblib php-xml unzip wget -y
安装所有软件包后,编辑 PHP-FPM 配置文件:
nano /etc/php-fpm.d/www.conf
将用户和组从 apache 更改为 Nginx:
user = nginx
group = nginx
保存并关闭文件,然后使用以下命令启动并启用 Nginx、MariaDB 和 PHP-FPM 服务:
systemctl start nginx php-fpm mariadb
systemctl enable nginx php-fpm mariadb
为 phpMyAdmin 创建用户
接下来,建议为 phpMyAdmin 创建一个单独的用户来执行所有数据库管理任务。首先,通过运行以下命令来保护 MariaDB:
mysql_secure_installation
该脚本将设置 root 密码、删除匿名用户、禁止 root 远程登录并删除测试数据库,如下所示:
Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
接下来,使用以下命令登录 MariaDB:
mysql
登录后,使用以下命令创建数据库和用户:
MariaDB [(none)]> CREATE DATABASE phpmyadmin CHARACTER SET utf8 COLLATE utf8_unicode_ci;
MariaDB [(none)]> CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'password';
接下来,向管理员用户授予所有权限:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%';
接下来,使用以下命令刷新权限并退出 MariaDB 控制台:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
在Alma Linux 8上安装phpMyAdmin
接下来,从其官方网站下载最新版本的 phpMyAdmin:
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip
下载完成后,使用以下命令解压缩下载的文件:
unzip phpMyAdmin-5.1.3-all-languages.zip
接下来,将提取的目录移动到 Nginx Web 根目录:
mv phpMyAdmin-5.1.3-all-languages /usr/share/nginx/phpmyadmin
接下来,使用以下命令复制示例配置文件:
cp /usr/share/nginx/phpmyadmin/config{.sample,}.inc.php
接下来,使用以下命令编辑配置文件:
nano /usr/share/nginx/phpmyadmin/config.inc.php
定义您的秘密,如下所示:
$cfg['blowfish_secret'] = 'securekey';
保存并关闭文件,然后更改 phpMyAdmin 目录的所有权:
chown -R nginx:nginx /usr/share/nginx/phpmyadmin
chown -R nginx:nginx /var/lib/php/session/
为 phpMyAdmin 配置 Nginx
接下来,您需要为 phpMyAdmin 创建 Nginx 虚拟主机配置文件。您可以使用以下命令创建它:
nano /etc/nginx/conf.d/phpmyadmin.conf
添加以下行:
server {
listen 80;
server_name phpmyadmin.example.com;
root /usr/share/nginx/phpmyadmin;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}
保存并关闭文件,然后使用以下命令验证 Nginx 是否存在任何语法配置错误:
nginx -t
您将得到以下输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
接下来,重新启动 Nginx 服务以应用更改:
systemctl restart nginx php-fpm
您现在可以使用以下命令验证 Nginx 状态:
systemctl status nginx
您应该看到以下输出:
? nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Fri 2022-04-15 10:06:39 UTC; 3s ago
Process: 85445 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 85443 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 85442 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 85449 (nginx)
Tasks: 2 (limit: 11412)
Memory: 3.8M
CGroup: /system.slice/nginx.service
??85449 nginx: master process /usr/sbin/nginx
??85450 nginx: worker process
Apr 15 10:06:39 linux systemd[1]: nginx.service: Succeeded.
Apr 15 10:06:39 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Apr 15 10:06:39 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Apr 15 10:06:39 linux nginx[85443]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Apr 15 10:06:39 linux nginx[85443]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Apr 15 10:06:39 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Apr 15 10:06:39 linux systemd[1]: Started The nginx HTTP and reverse proxy server.
配置防火墙
接下来,您需要允许 HTTP 服务通过防火墙。您可以使用以下命令允许它:
firewall-cmd --permanent --zone public --add-service http
接下来,重新加载防火墙以应用更改:
firewall-cmd --reload
访问 phpMyAdmin Web UI
现在,打开 Web 浏览器并使用 URL http://phpmyadmin.example.com 访问 phpMyAdmin。您应该看到 phpMyAdmin 登录页面:
提供您的管理员用户名、密码,然后单击开始按钮。登录后,您应该看到 phpMyAdmin 仪表板:
单击数据库按钮。您应该看到以下页面:
提供您要创建的数据库名称,然后单击创建按钮。
选择要删除的数据库,然后单击“删除”按钮以删除数据库。您应该看到以下页面:
单击确定按钮确认并删除所选数据库。
结论
恭喜!您已经在Alma Linux 8上成功安装了带有Nginx的phpMyAdmin。您现在可以通过网络浏览器管理您的MySQL和MariaDB数据库。如果您有任何疑问,请随时问我。