ps做网站 字体多大,嘉兴百度快照优化排名,沈阳网站制作公司,wordpress 判断是否首页前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到网站。
介绍
像 MySQL 这样的关系型数据库管理系统在许多网站和应用程序中都是必不可少的。然而#xff0c;并非所有用户都习惯通过命令行来管…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到网站。
介绍
像 MySQL 这样的关系型数据库管理系统在许多网站和应用程序中都是必不可少的。然而并非所有用户都习惯通过命令行来管理他们的数据。
为了解决这个问题创建了一个名为 phpMyAdmin 的项目旨在提供一个基于 web 的管理界面作为替代方案。在本指南中我们将演示如何在 Ubuntu 14.04 服务器上安装和保护 phpMyAdmin 配置。我们将在 Nginx web 服务器上构建此设置Nginx 具有良好的性能特性可以比其他一些 web 服务器更好地处理大量负载。
先决条件
在开始之前有几个要求需要解决。
为了确保您有一个坚实的基础来构建这个系统您应该先运行我们的 Ubuntu 14.04 初始服务器设置指南。其中这将指导您设置一个具有 sudo 访问权限的非根用户用于管理命令。
在开始本指南之前必须满足的第二个先决条件是在 Ubuntu 14.04 服务器上安装 LEMPLinux、Nginx、MySQL 和 PHP堆栈。这是我们将用来提供 phpMyAdmin 界面的平台MySQL 也是我们希望管理的数据库管理软件。如果您的服务器上还没有 LEMP 安装请按照我们的 Ubuntu 14.04 上安装 LEMP 的教程进行操作。
当您的服务器在按照这些指南后处于正常运行状态时您可以继续阅读本页的其余部分。
步骤一 — 安装 phpMyAdmin
在我们已经准备好 LEMP 平台的情况下我们可以立即开始安装 phpMyAdmin 软件。这在 Ubuntu 的默认存储库中可用因此安装过程很简单。
首先更新服务器的本地软件包索引以确保它具有最新的可用软件包的引用。然后我们可以使用 apt 包工具从存储库中获取软件并在我们的系统上安装它
sudo apt-get update
sudo apt-get install phpmyadmin在安装过程中将提示您输入一些信息。它将询问您希望软件自动配置哪个 web 服务器。由于我们使用的 Nginx 不是可用选项之一您可以按 TAB 键跳过此提示。
接下来的提示将询问您是否希望 dbconfig-common 配置一个数据库供 phpmyadmin 使用。选择 “Yes” 继续。
您需要输入在 MySQL 安装期间配置的数据库管理密码以允许这些更改。之后您将被要求选择并确认一个新数据库的密码用于保存 phpMyAdmin 自己的数据。
安装现在将完成。为了使 Nginx web 服务器能够正确找到并提供 phpMyAdmin 文件我们只需要通过输入以下内容在安装文件和我们的 Nginx 文档根目录之间创建一个符号链接
sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html我们需要处理的最后一件事是启用 mcrypt PHP 模块phpMyAdmin 依赖于它。这是随 phpMyAdmin 一起安装的因此我们只需要切换它并重新启动我们的 PHP 处理器
sudo php5enmod mcrypt
sudo service php5-fpm restart通过这样我们的 phpMyAdmin 安装现在已经可用。要访问界面请在您的 Web 浏览器中输入服务器的域名或公共 IP 地址后面加上 /phpmyadmin
http://server_domain_or_IP/phpmyadmin!phpMyAdmin 登录界面
要登录请使用有效的 MySQL 用户的用户名/密码对。root 用户和 MySQL 管理密码是一个不错的选择。然后您将能够访问管理界面
!phpMyAdmin 管理界面
点击周围以熟悉界面。在下一节中我们将采取措施来保护我们的新界面。
步骤二 — 保护您的 phpMyAdmin 实例
我们服务器上安装的 phpMyAdmin 实例此时应该是完全可用的。然而通过安装一个 web 界面我们已经将我们的 MySQL 系统暴露给了外部世界。
即使包含了身份验证屏幕这也是一个相当大的问题。由于 phpMyAdmin 的流行程度以及它提供访问的大量数据这样的安装是攻击者的常见目标。
我们将实施两种简单的策略来减少我们的安装被攻击和 compromise 的机会。我们将把界面的位置从 /phpmyadmin 更改为其他位置以规避一些自动化的机器人暴力尝试。我们还将创建一个额外的、基于 web 服务器级别的身份验证网关必须通过它才能到达 phpMyAdmin 登录界面。
更改应用程序的访问位置
为了使我们的 Nginx web 服务器能够找到并提供我们的 phpMyAdmin 文件我们在之前的步骤中创建了一个符号链接将 phpMyAdmin 目录链接到我们的文档根目录。
要更改我们的 phpMyAdmin 接口可以访问的 URL我们只需要重命名符号链接。进入 Nginx 文档根目录以更好地了解我们正在做什么
cd /usr/share/nginx/html
ls -ltotal 8
-rw-r--r-- 1 root root 537 Mar 4 06:46 50x.html
-rw-r--r-- 1 root root 612 Mar 4 06:46 index.html
lrwxrwxrwx 1 root root 21 Aug 6 10:50 phpmyadmin - /usr/share/phpmyadmin如您所见我们在此目录中有一个名为 phpmyadmin 的符号链接。我们可以将此链接名称更改为任何我们想要的名称。这将更改可以从浏览器访问 phpMyAdmin 的位置有助于隐藏硬编码机器人的访问点。
选择一个不指示位置用途的名称。在本指南中我们将命名我们的访问位置为 /nothingtosee。为此我们只需重命名链接
sudo mv phpmyadmin nothingtosee
ls -ltotal 8
-rw-r--r-- 1 root root 537 Mar 4 06:46 50x.html
-rw-r--r-- 1 root root 612 Mar 4 06:46 index.html
lrwxrwxrwx 1 root root 21 Aug 6 10:50 nothingtosee - /usr/share/phpmyadmin现在如果您访问以前的 phpMyAdmin 安装位置您将收到 404 错误
http://server_domain_or_IP/phpmyadmin!phpMyAdmin 404 错误
但是您的 phpMyAdmin 接口将在我们选择的新位置上可用
http://server_domain_or_IP/nothingtosee!phpMyAdmin 登录界面
设置 Web 服务器身份验证门
我们安装中想要的下一个功能是用户在看到 phpMyAdmin 登录界面之前需要通过的身份验证提示。
幸运的是大多数 Web 服务器包括 Nginx在本机提供此功能。我们只需要修改我们的 Nginx 配置文件以添加细节。
在我们这样做之前我们将创建一个密码文件用于存储我们的身份验证凭据。Nginx 要求使用 crypt() 函数加密密码。OpenSSL 套件应该已经安装在您的服务器上包括此功能。
要创建加密密码请输入
openssl passwd然后您将被提示输入并确认您希望使用的密码。然后实用程序将显示密码的加密版本看起来类似于
O5az.RSPzd.HE复制此值因为您将需要将其粘贴到我们将要创建的身份验证文件中。
现在创建一个身份验证文件。我们将称此文件为 pma_pass 并将其放在 Nginx 配置目录中
sudo nano /etc/nginx/pma_pass在此文件中您只需要指定您想要使用的用户名后跟一个冒号:后跟您从 openssl passwd 实用程序中收到的密码的加密版本。
我们将命名我们的用户为 demo但您应该选择一个不同的用户名。本指南的文件如下所示
demo:O5az.RSPzd.HE完成后保存并关闭文件。
现在我们准备修改我们的 Nginx 配置文件。打开此文件以开始编辑
sudo nano /etc/nginx/sites-available/default在此文件中我们需要添加一个新的位置部分。这将针对我们选择的 phpMyAdmin 接口位置在本指南中我们选择了 /nothingtosee。
在 server 块内创建此部分但不在任何其他块内。在我们的示例中我们将在 location / 块下方放置我们的新位置块
server {. . .location / {try_files $uri $uri/ 404;}location /nothingtosee {}. . .
}在此块内我们需要将名为 auth_basic 的指令的值设置为我们的提示将向用户显示的身份验证消息。我们不希望未经身份验证的用户知道我们正在保护什么因此不要提供具体细节。在我们的示例中我们将只使用 “Admin Login”。
然后我们需要使用名为 auth_basic_user_file 的指令将我们的 Web 服务器指向我们创建的身份验证文件。Nginx 将提示用户输入身份验证详细信息并检查输入的值是否与其在指定文件中找到的值匹配。
完成后文件应如下所示
server {. . .location / {try_files $uri $uri/ 404;}location /nothingtosee {auth_basic Admin Login;auth_basic_user_file /etc/nginx/pma_pass;}. . .
}完成后保存并关闭文件。
要实施我们的新身份验证门我们必须重新启动 Web 服务器
sudo service nginx restart现在如果我们在 Web 浏览器中访问我们的 phpMyAdmin 位置如果您已经在使用 phpMyAdmin则可能需要清除缓存或使用不同的浏览器会话您应该会收到提示要求输入您添加到 pma_pass 文件中的用户名和密码
http://server_domain_or_IP/nothingtosee!Nginx 身份验证页面
输入您的凭据后您将被带到正常的 phpMyAdmin 登录页面。这一额外的保护层将有助于保持您的 MySQL 日志中不受身份验证尝试的干扰同时还带来了额外的安全性益处。
结论
现在您可以通过一个相当安全的 Web 界面来管理您的 MySQL 数据库。这个用户界面暴露了大部分可以从 MySQL 命令提示符中使用的功能。您可以查看数据库和模式执行查询并创建新的数据集和结构。