NGINX konfiguracja phpMyAdmin na localhost

Autor: Rafal Marguzewicz
Opublikowany:
Kategorie: DevOps
Tagi:


nginxGdy mamy już zainstalowany serwer NGINX oraz MariaDb/MySQL możemy przystąpić do instalowania i konfigurowania phpMyAadmin (będę używał skrótu PMA). Artykuł jest dla systemu Linux. Jeżeli potrzebujesz phpMyAdmin na serwerze do którego jest dostęp z internetu polecam zobaczyć artykuł NGINX konfiguracja phpMyAdmin na serwerze zdalnym.

Planowana konfiguracja wygląda tak http://localhost/ – lista wszystkich stron, http://localhost/panel-pma/ – strona phpMyAdmin. Aby lepiej nam się pracowało z phpMyadmin skonfigurujemy logowanie bez autoryzacji oraz brak tokenu autoryzacyjnego. Dzięki temu gdy zostawimy na chwilę stronę phpMyAdmin nie będzie nas wylogowywać co jakiś czas.

Konfiguracja PMA na NGINX – lista zadań:

  1. Instalacja phpMyadmin
  2. Konfiguracja serwera HTTP – NGINX
  3. Konfiguracja phpMyAdmin:
    • – automatyczne logowanie
    • – wyłączenie tokenu sesji
  4. Objaśnienie możliwych problemów

1. Instalacja phpMyAdmin

sudo apt install phpmyadmin

Gdy zostaniesz zapytany o automatyczne prze konfigurowanie serwera WWW nie wybieraj apache2 i lighthttp tylko kliknij tabulator i ok. Potem poprosi Cię o hasło i tyle z instalacji phpMyAdmin. PMA zostanie zainstalowany w katalogu /usr/share/phpmyadmin/ (jeżeli w twoim systemie będzie inaczej pamiętaj o modyfikacji konfiguracji)

instalacja pma nginx

Konfiguracja serwera HTTP

Przykład konfigu NGINX:

server {
	listen 80;
	server_name localhost;
# ścieżka do folderu z wszystkimi stronami WWW
	root /home/<user>/Desktop/localhost;
	index index.php index.html index.htm;
	include global.conf;

# lista folderów    
location / {
	autoindex on;
}
        

location ~ \.php$ {
	try_files $uri =404;
	include fastcgi.conf;
}

	location /panel-pma/ {
# ścieżka do folderu PMA
		alias /usr/share/phpmyadmin/;

		location ~ ^/panel-pma/(.+\.php)$ {
			alias /usr/share/phpmyadmin/$1;
			include fastcgi.conf;
		}
		
		location ~* ^/panel-pma/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
     		  	 alias /usr/share/phpmyadmin/$1;
    		}
	}
}

W moich konfiguracjach używam edytowanego pliku fastcgi.conf oraz global.conf. Więcej na ten temat znajdziesz w artykule Instalacja LEMP Linux Nginx MariaDB PHP
Jeżeli nie będziesz miał tych plików w folderze /etc/nginx/ w tedy przeładowanie konfiguracji NGINX zwróci błąd.

Po zapisaniu pliku możemy przeładować konfigurację

sudo service nginx reload

A PMA powinien być dostępny pod adresem Http://localhost/panel-pma/

Konfiguracja PMA

  • automatyczne logowanie:
    W przypadku systemów Debian/Ubuntu plik konfiguracyjny znajduje się w /etc/phpmyadmin/config.inc.phpMusimy ustawić mozliwość logowania bez hasła
    $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
    Następnie zmienić typ autoryzacji z cookie na config
    $cfg['Servers'][$i]['auth_type'] = 'config';

    Wtedy trzeba ustawić login i hasło na stałe;
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = '';

    To jeszcze nie wszystko, PMA ma możliwość logowania się z jednego formularza do kilku różnych serwerów SQL, dla tego trzeba ustawić gdzieś na początku
    $i = 1; i skasować wszystkie inkrementacje ($i++;)

    Pełna zawartość pliku /etc/phpmyadmin/config.inc.php

    <?php
    /**
     * Debian local configuration file
     */
    
    if (!function_exists('check_file_access')) {
        function check_file_access($path)
        {
            if (is_readable($path)) {
                return true;
            } else {
                error_log(
                    'phpmyadmin: Failed to load ' . $path
                    . ' Check group www-data has read access and open_basedir restrictions.'
                );
                return false;
            }
        }
    }
    
    // Load secret generated on postinst
    if (check_file_access('/var/lib/phpmyadmin/blowfish_secret.inc.php')) {
        require('/var/lib/phpmyadmin/blowfish_secret.inc.php');
    }
    
    // Load autoconf local config
    if (check_file_access('/var/lib/phpmyadmin/config.inc.php')) {
        require('/var/lib/phpmyadmin/config.inc.php');
    }
    if (check_file_access('/etc/phpmyadmin/config-db.php')) {
        require('/etc/phpmyadmin/config-db.php');
    }
    
    $i = 1;
    $cfg['Servers'][$i]['host'] = 'localhost';
    $cfg['Servers'][$i]['AllowNoPassword'] = TRUE;
    $cfg['Servers'][$i]['auth_type'] = 'config';
    $cfg['Servers'][$i]['user'] = 'root';
    $cfg['Servers'][$i]['password'] = '';
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
  • wyłączenie tokenu sesji:
    Edytujemy plik /usr/share/phpmyadmin/libraries/common.inc.php. W linii 480 dodajemy $token_mismatch = false;

    $token_mismatch = true;
    $token_provided = false;
    if (PMA_isValid($_REQUEST['token'])) {
        $token_provided = true;
        $token_mismatch = ! hash_equals($_SESSION[' PMA_token '], $_REQUEST['token']);
    }
    $token_mismatch = false;
    

Możliwe problemy

Najczęstsze problemy NGINX: błędne adresy folderów w konfiguracji, błądy składniowe konfiguracji. SQL: złe hasło do root, nie poprawna instalacja MariaDb. Linux: uprawnienia (chmod lub chown) do folderów. W przypadku wystąpienia problemów, potrzebuje więcej informacji: Jeżeli to błąd składniowy pliku konfiguracji NGINX, wypisze Ci numery linii z błędami:
sudo nginx -t

błędne adresy folderów lub uprawnienia do folderów, logi powinny pomóc

sudo tail /var/log/nginx/error.log

W tedy albo trzeba ustawić własność folderu i grupę na www-data i/lub sprawdzić czy ścieżki folderów zgadzają się z tymi w konfiguracji.

W przypadku problemów ze strony serwera SQL sprawdź czy możesz się zalogować z poziomy terminala

mysql -u root -p
NGINX konfiguracja phpMyAdmin na localhost
5 / 2 votes


Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Nazwa *
Email *

Przeczytaj poprzedni wpis:
Instalacja LEMP czyli Linux Nginx MariaDB i PHP7

Jeżeli mamy zainstalowany system Linux możemy przejść do instalacji reszty zestawu LEMP Linux, NGINX, MariaDb i PHP7. Od momentu kiedy...

Zamknij