Как настроить phpmyadmin с помощью nginx и получить к нему доступ через http://vps-ip/phpmyadmin

Файлы phpmyadmin находятся здесь /usr/share/phpmyadmin/

И у меня есть этот код блока сервера, который позволяет мне получить доступ к phpmyadmin только из http://vps-ip/:

server {
        listen 80; ## listen for ipv4; this line is default and implied
        #listen [::]:80 default ipv6only=on; ## listen for ipv6
        root /usr/share/phpmyadmin/;
        index index.php index.html index.htm;
        server_name ein;

        location / {
                root /usr/share/phpmyadmin/;
                index index index.php;
                try_files $uri/ $uri /index.php?q=$uri&amp&$args;
                port_in_redirect off;
        }

        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
                access_log off;
                log_not_found off;
                expires max;
                root /usr/share/phpmyadmin/;
        }

        location ~ \.php$ {
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                fastcgi_pass php;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin/$fastcgi_script_name;
                include fastcgi_params;
                fastcgi_param QUERY_STRING $query_string;
                fastcgi_param REQUEST_METHOD $request_method;
                fastcgi_param CONTENT_TYPE $content_type;
                fastcgi_param CONTENT_LENGTH $content_length;
                fastcgi_intercept_errors on;
                fastcgi_ignore_client_abort off;
                fastcgi_connect_timeout 60;
                fastcgi_send_timeout 360;
                fastcgi_read_timeout 360;
                fastcgi_buffer_size 128k;
                fastcgi_buffers 8 256k;
                fastcgi_busy_buffers_size 256k;
                fastcgi_temp_file_write_size 256k;
        }

        location ~ /.htaccess { deny all; log_not_found off; access_log off; }
        location ~ /.htpasswd { deny all; log_not_found off; access_log off; }
        location = /favicon.ico { allow all; log_not_found off; access_log off; }
        location = /robots.txt { allow all; log_not_found off; access_log off; }
}

Какие изменения мне нужно сделать, чтобы получить доступ к phpmyadmin из http://vps-ip/phpmyadmin и получить доступ к моему сайту с http://vps-ip/?

ОК, я нашел решение для этого:

location ^~ /phpmyadmin/ { 
    alias /usr/share/phpmyadmin/; 

    location ~ \.php$ { 
    include fastcgi_params; 
    fastcgi_param SCRIPT_FILENAME $request_filename; 
    fastcgi_pass php; 
    } 
}

2 ответа

Решение

Этот процесс называется Aliasing, в основном он настраивает что-то, чтобы отправиться куда-то еще. У меня лично нет опыта работы с NGINX, но согласно этому посту вы должны использовать:

location /phpmyadmin/ {
    alias /usr/share/phpmyadmin/;
}

Надеюсь, это поможет.:)

Вам нужно изменить свой корень. Прямо сейчас у вас это как root /usr/share/phpmyadmin/, Это означает, что nginx думает http://vps-ip/ должно быть подано с /usr/share/phpmyadmin/, Являются ли файлы, которыми вы хотите поделиться на http://vps-ip/ находится в /usr/share/? (Это кажется странным местом для них, вам, вероятно, следует создать папку для вашего сайта).

Другие вопросы по тегам