在Debian 10(Buster)上用Apache安装phpMyAdmin

时间:2020-02-23 14:32:19  来源:igfitidea点击:

在今天的教程中,我们将讨论如何在Debian 10(Buster)Linux上安装phpMyAdmin。 phpMyAdmin是一个用PHP编写的免费开放源Web应用程序,用于管理MySQL和MariaDB数据库服务器。由于其易用性,因此开发人员和DBA大多使用它与数据库服务器进行交互。

phpMyAdmin提供了一个高级SQL编辑器,可轻松构建和测试复杂的SQL查询。它还允许我们管理数据库,用户,数据导入和导出,存储过程和触发器,执行和编辑查询,全局搜索数据库等等。

本教程说明了在Debian 10(Buster)上使用Apache安装phpMyAdmin的步骤。让我们开始吧。

安装PHP

PHP是运行phpMyAdmin的主要软件要求。使用下面的教程进行安装。

在Debian 10上安装PHP

为简单起见,可以执行以下命令来安装PHP和所需的扩展。

sudo apt -y update
sudo apt -y install wget php php-cgi php-mysqli php-pear php-mbstring php-gettext libapache2-mod-php php-common php-phpseclib php-mysql

安装MariaDB数据库服务器

如果我们没有要管理的现有数据库服务器,则可以使用我们的教程在Debian 10上安装MariaDB数据库服务器。

如何在Debian 10 Buster上安装MariaDB

安装Apache Web服务器

对于此安装设置,我们选择Apache作为与phpMyAdmin一起使用的Web服务器。我们可以自由选择喜欢的任何Web服务器,例如Nginx。

通过运行以下命令在Debian 10上安装Apache Web Server

sudo apt-get -y install wget apache2

在Debian 10上安装phpMyAdmin

我们可以从下载页面检查phpMyAdmin的发布。感谢William Desportes提供有关如何获取最新版本的phpMyAdmin的提示。

使用wget命令下载最新版本的phpMyAdmin。

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

对于仅英语语言的软件包,请使用:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

解压缩下载的存档:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

将结果文件夹移至"/usr/share/phpmyadmin"文件夹。

sudo mv phpMyAdmin-*//usr/share/phpmyadmin

为phpMyAdmin临时文件创建目录。

sudo mkdir -p /var/lib/phpmyadmin/tmp
sudo chown -R www-data:www-data /var/lib/phpmyadmin

为phpMyAdmin配置文件(例如htpass文件)创建目录。

sudo mkdir /etc/phpmyadmin/

创建phpMyAdmin配置文件。

sudo cp /usr/share/phpmyadmin/config.sample.inc.php  /usr/share/phpmyadmin/config.inc.php

编辑文件`/usr/share/phpmyadmin/config.inc.php并设置秘密密码:

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

配置临时目录:

$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

配置Apache Web服务器

创建phpMyAdmin Apache配置文件:

sudo vim /etc/apache2/conf-enabled/phpmyadmin.conf

并将以下内容粘贴到文件中:

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authz_core.c>
        <IfModule mod_authn_file.c>
            AuthType Basic
            AuthName "phpMyAdmin Setup"
            AuthUserFile /etc/phpmyadmin/htpasswd.setup
        </IfModule>
        Require valid-user
    </IfModule>
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

我们可以通过添加以下行来限制来自特定IP的访问:

Require ip 127.0.0.1 192.168.18.0/24

重新启动apache Web服务器。

sudo systemctl restart apache2

访问phpMyAdmin Web界面

访问http://[ServerIP | Hostname]/phpmyadmin上的phpMyAdmin Web界面。使用数据库凭据用户名和密码登录。

成功登录后,将显示phpMyAdmin仪表板。