Использование phpmyadmin в связке с nginx

После настройки связки nginx+php-fpm вам может потребоваться phpmyadmin для управления базами данных MySQL. Наиболее распространённая практика — доступ через алиас. Чуть реже — поддомен. Рассмотрим первый вариант.

В первую очередь следует установить сам phpmyadmin незамысловатой командой:

# aptitude install phpmyadmin

Во время установки будет задано два вопроса. Первый — выполнить ли автоматическую настройку для веб-серверов apache и lighttpd. Второй — следует ли настраивать конфигурацию phpmyadmin посредством db-config.

Первый вопрос пропускаем. При желании, второй вопрос вы можете изучить и выполнить соответствующую настроку. Правда, phpmyadmin будет нормально работать и без этого.

Далее открываем конфигурационный файл nginx и приписываем к нужному сайту следующий location:

location /pma/ {   alias /usr/share/phpmyadmin/;   location ~ .php$ {     fastcgi_pass unix:/var/run/php-pool-name.sock;     fastcgi_index index.php;     include fastcgi_params;     fastcgi_param SCRIPT_FILENAME $request_filename;     fastcgi_ignore_client_abort off;   }   location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {     access_log    off;     log_not_found    off;     expires 1M;   } }

Локейшену следует присвоить какое-нибудь уникальное имя, чтобы туда не стучались боты.

Также в качестве значения параметра fastcgi_pass прописываем адрес пула php (tcp или socket, в зависимости от настройки вашего сервера).

Напоследок добавляем исключения open_basedir для каталогов /usr/share/phpmyadmin и /usr/share/php/php-gettext. Тут возможны два варианта. Первый из них (предпочтительный) — это параметр в конфигурационном файле пула:

php_admin_value[open_basedir] ="/usr/share/phpmyadmin:/usr/share/php/php-gettext"

Второй вариант — в вышеописанном location добавить строку:

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/usr/share/phpmyadmin:/usr/share/php/php-gettext";

После редактирования конфигурационных файлов следует перезапустить nginx и php-fpm.