如何在Ubuntu 18.04上使用Nginx安装phpMyAdmin

时间:2020-03-05 15:31:21  来源:igfitidea点击:

phpMyAdmin是一个基于PHP的开源工具,用于通过基于Web的界面管理MySQL和MariaDB服务器。

phpMyAdmin允许我们与MySQL数据库进行交互,管理用户帐户和特权,执行SQL语句,以各种数据格式导入和导出数据等等。

本教程描述了如何在Ubuntu 18.04上使用Nginx安装phpMyAdmin。

准备工作

在继续本教程之前,请确保满足以下准备工作:

  • 在Ubuntu服务器上安装了LEMP(Linux,Nginx,MySQL和PHP 7)。
  • 以具有sudo特权的用户身份登录。

尽管不是必需的,但强烈建议我们通过HTTPS访问phpMyAdmin实例。
如果未启用SSL,请查看我们的文章,该文章介绍了如何在Ubuntu 18.04上使用Let's Encrypt保护Nginx的安全。

在Ubuntu上安装phpMyAdmin

安装phpMyAdmin是一个相当简单的任务。
首先更新软件包列表:

sudo apt update

接下来,运行以下命令从默认的Ubuntu存储库安装phpMyAdmin软件包:

sudo apt install phpmyadmin

在安装phpMyAdmin之前,请确保已在系统上安装了Nginx和PHP FPM。

安装程序将要求我们选择应自动配置为运行phpMyAdmin的Web服务器。
没有选择Nginx的选项,按“ TAB”选择“确定”,然后按“ Enter”。
我们将在下一部分中配置Nginx。

接下来,安装程序将询问我们是否要使用“ dbconfig-common”工具来设置数据库。
选择“是”,然后按“ Enter”。

输入phpMyAdmin的密码以在数据库中注册,选择“确定”,然后按“ Enter”。

系统将提示我们确认密码,输入相同的密码,选择“确定”,然后按“ Enter”。

至此,phpMyAdmin已经安装在Ubuntu服务器上。

创建一个管理MySQL用户

在运行MySQL 5.7(及更高版本)的Ubuntu系统中,默认情况下,root用户设置为使用“ auth_socket”身份验证方法。

“ auth_socket”插件对通过Unix套接字文件从本地主机连接的用户进行身份验证。
这意味着我们无法通过提供密码来认证为根用户。

我们将创建一个新的管理MySQL用户,而不是更改MySQL用户root的身份验证方法。
该用户将具有与根用户相同的特权,并将被设置为使用“ mysql_native_password”身份验证方法。

我们将使用该用户登录phpMyAdmin仪表板,并在我们的MySQL服务器上执行管理任务。

首先以root用户身份登录到MySQL服务器:

sudo mysql

在MySQL Shell中执行以下命令,这些命令将创建一个新的管理用户并授予适当的权限:

CREATE USER 'padmin'@'localhost' IDENTIFIED BY 'change-with-your-secure-password';GRANT ALL PRIVILEGES ON *.* TO 'padmin'@'localhost' WITH GRANT OPTION;

在此示例中,我们将管理用户命名为'padmin'。
我们可以使用任何喜欢的名称,只需确保设置一个强密码即可。

配置Nginx和phpMyAdmin

有几种方法可以配置Nginx以提供phpMyAdmin文件。
如果我们已经设置了域的服务器块来满足PHP请求,则只需创建一个从phpMyAdmin安装文件到域文档根目录的符号链接。

在本教程中,我们将创建一个片段,我们可以将其包含在我们的任何Nginx服务器块文件中。

打开文本编辑器并创建以下文件:

sudo nano /etc/nginx/snippets/phpmyadmin.conf

粘贴以下内容:

/etc/nginx/snippets/phpmyadmin.conf

location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)${
        try_files $uri =404;
        root /usr/share/;
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }
    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))${
        root /usr/share/;
    }
}

确保为“ fastcgi_pass”指令使用了正确的套接字路径或者地址/端口。

保存文件并关闭编辑器。

现在,我们可以使用以下命令将以下行添加到要访问phpMyAdmin的每个域的服务器块中:'theitroad.com/phpmyadmin'

include snippets/phpmyadmin.conf;

这是一个例子:

/etc/nginx/conf.d/theitroad.com.conf

server {
    # . . . other code
    include snippets/phpmyadmin.conf;
    # . . . other code 
}

访问phpMyAdmin

要访问phpMyAdmin界面,请打开我们喜欢的浏览器,然后输入服务器的域名或者公共IP地址,然后输入“/phpmyadmin”:

http(s)://your_domain_or_ip_address/phpmyadmin

输入管理用户登录凭据,然后单击“执行”。

登录后,我们将看到phpMyAdmin仪表板,其外观如下所示: