VPS – Debian 10 – phpMyAdmin

phpMyAdmin poskytuje pokročilý SQL editor, který usnadňuje vytváření a testování složitých SQL dotazů. Také vám umožňuje spravovat databáze, uživatele, import a export dat, uložené procedury a spouštěče, provádět a upravovat dotazy, prohledávat databázi globálně a mnohem více.

Tento tutoriál vysvětluje kroky pro instalaci phpMyAdminu s Apache na Debianu 10 (Buster).

Instalace PHP

PHP je hlavním softwarovým požadavkem pro spuštění phpMyAdmin. Nainstalujte jej pomocí příkazů.

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 & Apache Web Server

Již jsme si ukazovali při instalování LAMP balíčku.
Viz: VPS – Debian 10 – Instalace LAMP

Instalace phpMyAdmin

Stáhněte si nejnovější verzi phpMyAdmin s příkazem wget.

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

Extrahujeme stažený archiv:

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

Přesuňte výslednou složku do složky /usr/share/phpmyadmin.

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

Vytvořte adresář pro dočasné soubory phpMyAdmin.

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

Vytvořte adresář pro konfigurační soubory phpMyAdmin, jako je například soubor htpass.

sudo mkdir /etc/phpmyadmin/

Vytvořte konfigurační soubor phpMyAdmin.

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

Upravte soubor /usr/share/phpmyadmin/config.inc.php a nastavte tajné přístupové heslo:

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

Nakonfigurujte adresář dočasný:

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

Konfigurace webového serveru Apache

Vytvořte konfigurační soubor phpMyAdmin Apache:

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

A vložte do souboru následující obsah:

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>

Přístup z konkrétní adresy IP můžete omezit přidáním následujícího řádku:

Require ip 127.0.0.1 192.168.18.0/24

Zapnutí funkce & Restart apache server

sudo a2enconf phpmyadmin
sudo systemctl restart apache2

Přístup k webovému rozhraní phpMyAdmin na adrese http://[IP|Domena]/phpmyadmin.
K přihlášení použijte přihlašovací údaje k databázi – uživatelské jméno a heslo.

Jak nainstalovat a nastavit PHP 7 + MariaDB + NGINX + phpMyAdmin ...

[!] phpMyAdmin na subdoméně

Nejprve deaktivujte konfigurační soubor phpMyAdmin, který mapuje /phpmyadmin na /usr/share/phpmyadmin:

sudo a2disconf phpmyadmin

Poté vytvořte nového virtuálního hostitele (/etc/apache2/sites-available/pma.domena.tdl.conf) s následujícím obsahem:

<VirtualHost *:80>
    ServerAdmin admin@domena.tdl
    ServerName pma.domena.tdl
    ServerAlias www.pma.domena.tdl

    DocumentRoot /usr/share/phpmyadmin

    <Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All

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

            php_flag magic_quotes_gpc Off
            php_flag track_vars On
            php_flag register_globals Off
            php_admin_flag allow_url_fopen Off
            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/javascript/:/usr/share/php/tcpdf/
        </IfModule>
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Nakonec zapneme subdoménu & restartujte Apache:

sudo a2ensite pma.domena.tdl
sudo a2disconf phpmyadmin