Skip to main content

Використання 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.



Як ви оціните статтю?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (9 оцінок, середнє: 3,56 з 5)
Завантаження ...

” 6 Коментарі "Використання phpmyadmin в зв'язці з nginx"

  1. адміністратор сайту, здрастуйте, як ви могли вже помітити у мене кожна перша буква слова чомусь пишеться автоматично заголовної. натрапив на ваш сайт тільки сьогодні, знайшов дуже багато добре описаних статей. Але конкретно по цій статті зробити phpmyadmin не зміг, тут відсутня вказівка ​​про те що треба додати символічне посилання на директорію / usr / share / phpmyadmin. без неї phpmyadmin не працював. мені здається що ця стаття не повна, на відміну від інших, написаних вами. тому оцінив тільки на 3. але в цілому статті на сайті дуже корисні, особливо для новачків, як я, все дуже добре написано і детально пояснено. додав до обраного ваш сайт, знайшов багато корисної інформації, якої неодмінно скористаюся для розвитку свого проекту! висловлюю велику подяку!

    1. Так дякую. Поправив css.
      А от щодо посилання сумніваюся. Куди їй посилатися, якщо алиас в конфіги nginx веде прямо в папку phpmyadmin? Буду вдячний, якщо доповніть, як саме ви вирішили проблему, тому що слабо уявляю вашу ситуацію. У мене цей конфіг працює. : /

      1. Я зовсім заплутався, поставив Ваш конфиг для location / pma / і все працює, навіть проблеми з перенаправленням при cgi.fix_pathinfo 0 немає. До цього наткнувся на вирішення проблеми з перенаправленням на цьому сайті http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374 . Перший раз коли прямував Ваших інструкцій не додав до конфиг «include fastcgi_params; fastcgi_param SCRIPT_FILENAME $ request_filename; »(не знаю що роблять ці два параметри), а без них як я тепер зрозумів алиас в конфіги працювати не буде, власне, потім спробував створити символьне посилання і наткнувся на проблему з неправильним перенаправленням на phpmyadmin. Загалом, через нерозуміння того як і навіщо працюють параметри в конфіги nginx я не зміг виконати інструкції простого гайда))
        Є одне питання: У мене всього два параметри в location ~ \ .php $ {include snippets / fastcgi-php.conf; fastcgi_pass unix: /var/run/php5-fpm.sock;} Чи слід мені зробити його як в вашій статті nginx + php-fpm готовий конфіг? Заздалегідь дякую!

        1. Відмінність методів в тому, що за наведеною посиланням папка / usr / share прописана, як коренева: root /usr/share/; . При цьому, не можна ніяк змінити назву локейшена / phpmyadmin. На відміну від прикладу тут, коли локейшн з будь-яким ім'ям, хоч / asdasd стає аліасом до папки / usr / share / phpmyadmin. Таким чином, можна захистити PMA від всяких ботів. :)

          Звичайно, в разі, аліаса слід прописувати саме fastcgi_param SCRIPT_FILENAME $request_filename; , Місце стандартного fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; .

          Опис змінних можна знайти тут: https://nginx.org/ru/docs/varindex.html .

          А конфігурацію з include snippets / fastcgi-php.conf можна залишити, як є. Інструкція була написана ще на прикладі Debian 7, де все зроблено не так зручно. У fastcgi-php.conf представлена більш правильна конфігурація з рядком fastcgi_split_path_info ^(.+\.php)(/.+)$; . Хоча, працювати може і по старій інструкції. :)

          1. ok.kr.ua, спасибі велике за таке докладне пояснення. Винен в свою неписьменність, вже шкодую що оцінив статтю на 3. Є купа статей і ніколи не знаєш чи можна довіряти авторові і просто копіпаст, не знаєш який буде результат і чи не призведе тебе до ще більшої кількості помилок, з цього вважаю за краще робити спочатку мінімальні конфігурації поки не розберуся в усьому сам і не буду впевнений що даний спосіб для мене оптимальний. Але тепер навчився)) Сайт відмінний. Дякуємо!

          2. Немає за що. :) А підхід правильний. Дійсно, деякі навіть не пробують на ділі те, що пишуть в статтях. Аби набрати трафік. Тому і з'явився цей блог, щоб записати, що працює.

Додати коментар

Ваш e-mail не буде опублікований.