在Ubuntu 20.04/18.04/Debian 9上用Apache安装phpMyAdmin

时间:2020-02-23 14:40:46  来源:igfitidea点击:

在今天的教程中,我们将讨论如何在Ubuntu 18.04/Debian 9上使用Apache安装phpMyAdmin。在Ubuntu 20.04/18.04和Debian 9存储库中可用的phpMyAdmin软件包有些陈旧。如果我们需要在Ubuntu 20.04/18.04/Debian 9上安装最新的phpMyAdmin,则必须从官方的phpMyAdmin发布页面下载该软件包。

什么是phpMyAdmin?

phpMyAdmin是一个用PHP编写的免费开放源代码工具,用于从Web界面管理MySQL和MariaDB数据库服务器。大多数开发人员更喜欢使用phpMyAdmin与数据库服务器进行交互,因为它易于使用,再加上高级SQL编辑器,可以轻松构建和测试复杂的SQL查询。

在Ubuntu/Debian上安装PHP

运行phpMyAdmin的第一个软件要求是PHP。由于phpMyAdmin是用PHP编写的,因此我们需要在主机系统上安装它。 PHP版本可以是存储库中可用的版本,也可以是更新版本。

如果选择使用OS存储库中可用的PHP版本,请通过在终端中运行以下命令来安装它。

sudo apt update
sudo apt-get install -y php php-tcpdf php-cgi php-pear php-mbstring libapache2-mod-php php-common php-phpseclib php-mysql

安装MariaDB数据库服务器

下一步是安装MariaDB数据库服务器。

sudo apt install mariadb-server

保护数据库服务器:

sudo mysql_secure_installation

我们需要一个非root用户才能访问phpMyAdmin仪表板。如果我们没有,则可以创建一个测试。

登录到mysql shell:

$sudo mysql -u root

创建测试数据库和用户。

CREATE DATABASE mydemo;
GRANT ALL ON mydemo.* TO theitroad@localhost IDENTIFIED BY 'MyStrongDBPassw0rd';
FLUSH PRIVILEGES;
QUIT

使用创建的用户测试登录。

$mysql -u mydemo -pMyStrongDBPassw0rd
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 59
Server version: 10.3.22-MariaDB-1ubuntu1 Ubuntu 20.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

安装Apache Web服务器

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

通过运行以下命令在Ubuntu/Debian上安装Apache:

sudo apt-get -y install apache2

在Ubuntu 20.04/18.04/Debian 9上下载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并设置秘密密码:

$sudo vim /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
  • 其中192.168.18.0/24是我们信任的子网。

重新启动apache Web服务器。

sudo systemctl restart apache2

访问phpMyAdmin Web界面

打开URLhttp://[ServerIP | Hostname]/phpmyadmin,使用数据库凭据用户名和密码登录phpMyAdmin仪表板。

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