Назад | Перейти на главную страницу

Расположение phpmyadmin для nginx

Я установил nginx и phpmyadmin. Я создал домен с этими параметрами для тестирования phpmyadmin:

server {
listen 80;
server_name example.com;

root /usr/share/phpmyadmin;
index index.php;
fastcgi_index index.php;

location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}


}

И все работает правильно (если я захожу в домен, я могу войти в phpmyadmin). Проблема в том, что это было просто для тестирования phpmyadmin, теперь я хотел бы переместить его на свой сайт по умолчанию. Но я не могу понять, как это сделать на / phpmyadmin. Вот конфигурация для сайта nginx по умолчанию (где я бы хотел разместить это местоположение / phpmyadmin):

server {

server_name blabla;

access_log  /var/log/nginx/$host.access.log;
error_log   /var/log/nginx/error.log;

root    /var/www/default;
index   index.php index.html;

location / {
try_files $uri $uri/ index.php;
}  

location ~ \.php$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}

### NginX Status
location /nginx_status {
stub_status on;
access_log   off; 
}

### FPM Status
location ~ ^/(status|ping)$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
access_log      off;
}

}

Как бы странно это ни звучало, "стандартный" конфиг не работал для phpMyAdmin с моей стороны.

Вот что я в итоге сделал, теперь успешно работаю над "/ phpmyadmin":

    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/;
           }
    }

Я нигде не опытный администратор, и эту часть конфигурации нужно почистить, но я надеюсь, что это хороший стартер.

В phpmyadmin нет ничего особенного; стандартного блока местоположения PHP будет достаточно:

location /phpmyadmin {
    root /usr/share/phpmyadmin;

    location ~ \.php$ {
        include /etc/nginx/fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
    }
}