PhpMyAdmin+PHP-FPM+Debian 6+NginX

Главные вкладки

Аватар пользователя Григорий_978 Григорий_978 12 апреля 2012 в 17:32

Не могу разобраться в том, как настроить PhpMyAdmin для работы под веб-сервером NginX (Apache не используется)
Есть PHP-FPM, есть настроенный пул, есть работающий конфиг NginX и работающие виртуальные хосты, но PhpMyAdmin ни как не запускается. настраивал по мануалу:
http://manualpages.pro/node/31
в принципе, проблема только с PhpMyAdmin, всё остальное работает, нашел ссылку: http://www.howtoforge.com/running-phpmyadmin-on-nginx-lemp-on-debian-squ...

но ничего не понял, ничего у меня не заработало. кто сталкивался с подобной ситуацией, подскажите решение!

Комментарии

Аватар пользователя Григорий_978 Григорий_978 12 апреля 2012 в 20:06

Всем интересующимся, решением проблемы с phpmyadmin смотреть здесь: http://www.howtoforge.com/running-phpmyadmin-on-nginx-lemp-on-debian-squ... Работает, проверил сам. пример конфига:

server {
       listen 80;
       server_name www.example.com example.com;
       root /var/www/example.com;
       if ($http_host != "www.example.com") {
                 rewrite ^ http://www.example.com$request_uri permanent;
       }
       index index.php index.html;
       location = /favicon.ico {
                log_not_found off;
                access_log off;
       }
       location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
       }
       # Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
        location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
                deny all;
        }
       # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
       location ~ /\. {
                deny all;
                access_log off;
                log_not_found off;
       }
       location ~*  \.(jpg|jpeg|png|gif|css|js|ico)$ {
                expires max;
                log_not_found off;
       }
       location ~ \.php$ {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                               
       }
        location /phpmyadmin {
               root /usr/share/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/;
                       fastcgi_pass 127.0.0.1:9000;
                       fastcgi_index index.php;
                       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                       include /etc/nginx/fastcgi_params;
               }
               location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                       root /usr/share/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }
}

само собой, example.com заменить на ваш_сайт.ру
скриншот в тему

Аватар пользователя bsyomov bsyomov 12 апреля 2012 в 22:44

Ничего так конфиг.
Только ещё отказаться от phpmyadmin стоит и пользоваться для работы с базой каким-нить десктопным приложением через ssh тунель, это практичнее и безопаснее.
А к php-fpm лучше цепляться через сокет, а не через tcp.
Ну и самое начало лучше сделать так:

server {
  server_name example.com;
  rewrite (.*) http://www.example.com$1;
}
server {
  server_name www.example.com;
  ...
}

(ну или наоборот, www->без www, что логичнее)

А в локейшен для php добавить:

  try_files $uri =404;

Ну а самое главное, eсли мы о Drupal говорим:

  location / {
    try_files $uri $uri/ /index.php?q=$uri;
  }

И чтобы работало масштабирование изображений:

location ~* ^/sites/.*/files/styles/.*\.(jpg|jpeg|png|gif)$ {
  try_files $uri /index.php?q=$uri;
}