Nginx phpmyadmin chuyển hướng đến / thay vì / phpmyadmin khi đăng nhập


9

Tôi gặp sự cố với phpmyadmin trên cài đặt nginx của mình.

Khi tôi nhập <ServerIP>/phpmyadminvà đăng nhập, tôi được chuyển hướng đến <ServerIP>/index.php?<tokenstuff>thay vì<ServerIP>/phpmyadmin/index.php?<tokenstuff>

Tập tin cấu hình Nginx:

user  nginx;
worker_processes  5;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  2;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

Mặc định.

server {
    listen       80;
    server_name  _;

    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   unix:/tmp/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
    location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)$ {
        try_files $uri =404;
        root /usr/share/;
        fastcgi_pass unix:/tmp/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $request_filename;
        include fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_script_name;
    }

    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
        root /usr/share/;
    }
}
}

(Bất kỳ mẹo chung nào về việc dọn dẹp các tệp cấu hình đó cũng được chấp nhận)


@MichaelHampton Thật ra tôi nghĩ đó là vấn đề. Tôi đã gỡ bỏ gói được cài đặt qua yum và tải xuống bản mới nhất từ ​​trang web phpmyadmin và voilá. Nếu bạn đưa ra một câu trả lời, tôi sẽ chấp nhận điều đó.
Frederik Nielsen

Câu trả lời:


2

Điều này không giống như một vấn đề nginx. Điều này có vẻ như phpMyAdmin đã không được cài đặt chính xác và nghĩ rằng đó là lúc /thay thế /phpmyadmin. Kiểm tra cấu hình phpMyAdmin của bạn.


Đây là những gì dẫn tôi đến câu trả lời đúng - cài đặt lại phpmyadmin - Cảm ơn! :)
Frederik Nielsen

4
"chỉ cần cài đặt lại" là một câu trả lời vô lý. Nếu cấu hình của phpMyAdmin sai, cần có cách để cấu hình lại mà không phải cài đặt lại toàn bộ ứng dụng!
alexw

1
Điều này cầu xin thêm thông tin: Vui lòng liên kết đến một nguồn giải thích cách thức và nơi để đặt tham số 'nơi PHP nghĩ đó là'.
Diana

Đây là một nhận xét nhiều hơn là một câu trả lời. Đề xuất tuyệt vời, nhưng, hãy kiểm tra phpMyAdmin để làm gì?
SherylHohman

@SherylHohman Điều đó có thể làm cho một câu hỏi thú vị được hỏi riêng. Nhưng điều này đã được giải quyết từ lâu.
Michael Hampton

13

Mặc dù tác giả đã giải quyết vấn đề cài đặt lại phpMyAdmin, nginx cần được cấu hình đúng để xử lý chuyển hướng khi đăng nhập chính xác.

Sau nhiều ngày đập đầu vào bàn phím, cuối cùng tôi cũng tìm được giải pháp thực sự và tôi đang chia sẻ ở đây vì chủ đề này vẫn được ưu tiên cao trên tìm kiếm google.

Như đã nêu trên liên kết: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Để giải quyết vấn đề, bạn nên thêm khối mã sau vào trang web mặc định nginx của mình, bạn sẽ truy cập nó bằng:

sudo nano /etc/nginx/sites-available/default

Đặt khối này trong serverkhối:

# Phpmyadmin Configurations
    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_param HTTPS on; # <-- add this line
               fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
               fastcgi_index index.php;
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               include fastcgi_params;
       }
       location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
               root /usr/share/;
       }
   }

   # Dealing with the uppercased letters
   location /phpMyAdmin {
       rewrite ^/* /phpmyadmin last;
   }

Tôi hy vọng điều này sẽ giúp ai đó một ngày ...


Tôi rất vui vì điều này đã giải quyết vấn đề của bạn! Chúc mừng mã hóa!
Daniel Alves

Đây là nó ngay tại đây ... khắc phục tất cả các vấn đề ...
ThatTechGuy

chắc chắn đã cứu tôi hơn một ngày. đã bỏ phiếu!
Xu Yin

Không sửa nó cho tôi. Còn ý tưởng nào khác không?
Diana

Điều gì xảy ra nếu tôi không muốn phpmyadmin tại / phpmyadmin nhưng tại / bất cứ điều gì thay vào đó? Tôi đã thử thay đổi "địa điểm" lồng nhau nhưng không được.
0lli.rocks

4

Vấn đề này là do cấu hình phổ biến của cgi.fix_pathinfo = 0 vô hiệu hóa đường dẫn hiện tại cho PHP-FPM. Một giải pháp nhanh chóng là thay đổi cgi.fix_pathinfo trở lại 1 hoặc đặt tham số đường dẫn trên khối máy chủ ảo của nginx.


2

Vấn đề của bạn có vẻ giống như thế này: /programming/1011101/nginx-location-directive-doesnt-seem-to-be-usiness-am-i-missing-s Something

Nếu bằng cách đọc và thay đổi cấu hình của bạn, bạn vẫn có vấn đề, xin vui lòng cho biết!


Tôi đã đọc chủ đề đó và đã thử một số cấu hình, nhưng vẫn cùng một vấn đề - hoặc được chuyển hướng đến / thay vì / phpmyadmin, hoặc chỉ đi 404.
Frederik Nielsen

404 được "tạo ra" bởi "try_files", điều đó có nghĩa là nó không tìm thấy tệp phpmyadmin ... có thể có gì đó không đúng với cài đặt phpmyamdin?
Mikec

Chỉ cần chú ý bình luận khác -.- Tôi đoán đó là cấu hình phpmyadmin!
Mikec

Có thể .. Tôi nghĩ đó là sự kết hợp của cả hai.
Frederik Nielsen


0

thêm máy chủ lưu trữ vào máy chủ đèn của bạn với bất kỳ tên miền nào như phpmyadmin1.com

server {
    #listen 80 default_server;
    #listen [::]:80 default_server ipv6only=on;

    root /var/www/phpmyadmin;
    #some /var/www/html/phpmyadmin
    index index.php index.html index.htm;

    server_name phpmyadmin1.com;

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

    location ~ \.php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   unix:/tmp/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

Chỉnh sửa tập tin máy chủ của bạn

thêm dòng này ở dưới cùng

192.168.1.xx  phpmyadmin1.com

lưu và đóng, sau đó khởi động lại máy chủ của bạn

service nginx restart

service php5-fpm restart

Truy cập url máy chủ ảo của bạn trên trình duyệt, bạn thấy trang đăng nhập phpmyadmin

http://screencloud.net/v/nGK5

http://screencloud.net/v/6M8r


Chào mừng bạn đến với Lỗi Máy chủ! Trong cả câu hỏi và câu trả lời của bạn, vui lòng cố gắng không sử dụng tên miền ngẫu nhiên và sử dụng tên miền của riêng bạn hoặc một trong những tên miền dành riêng RFC 6761 như example.com, example.org hoặc tương tự. Vui lòng tham khảo Câu hỏi và trả lời này để biết các đề xuất của chúng tôi liên quan đến cách thức và điều gì (không) làm xáo trộn các câu hỏi của bạn.
HBruijn

0

Chỉ điều này làm việc cho tôi

location /utils/phpmyadmin/ {
    try_files $uri $uri/ =404;
    index index.php index.html index.htm
    proxy_set_header Proxy "";
}

-1

phpMyAdmin từ kho lưu trữ Ubuntu 16.04 trở lên không chuyển hướng đúng.

Tôi chỉ tải xuống phiên bản mới của phpmyadmin từ trang web chính thức của phpmyadmin:

sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.6/phpMyAdmin-4.6.6-all-languages.tar.gz

sudo tar xvf phpMyAdmin-4.6.6-all-languages.tar.gz

sudo mv phpMyAdmin-4.6.6-all-languages /usr/share/phpmyadmin

sudo rm -rf phpMyAdmin-4.6.6-all-languages.tar.gz

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

mở config.inc.php:

sudo nano /usr/share/phpmyadmin/config.inc.php

và đặt một số nhân vật ngẫu nhiên berween '

$cfg['blowfish_secret'] = 'i\kywQ>_h4L~S-Pt2rS'VAe)QpED7JI#';

lưu và mở tên miền / phpmyadmin của bạn trong trình duyệt

ngoài ra, bạn có thể thay đổi liên kết đến phpmyadmin (để bảo mật tốt hơn) và thêm auth cơ bản từ nginx vào liên kết:

sudo ln -s /usr/share/phpmyadmin /var/www/html

cd /var/www/html

sudo mv phpmyadmin anything

bây giờ phpmyadmin của bạn hoạt động trên https: // domain / anything , hãy thêm một số mật khẩu:

sudo sh -c "echo -n 'YourNameForLoginThere:' >> /etc/nginx/pmapass"
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/pmapass"

bây giờ hãy mở cấu hình nginx của bạn (theo mặc định: sudo nano / etc / nginx / site-Available / default ) và thêm lần cuối}

location /anything {
    auth_basic "Restricted";
    auth_basic_user_file /etc/nginx/pmapass;
}

Kích hoạt lưu trữ cấu hình:

sudo nano /usr/share/phpmyadmin/config.inc.php

Xác định vị trí các dòng sau:

// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';

Thay đổi thành:

$cfg['Servers'][$i]['controluser'] = 'yourdatabaseuser';
$cfg['Servers'][$i]['controlpass'] = 'yourdatabasepassword';

Định vị:

// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma__relation';
// $cfg['Servers'][$i]['table_info'] = 'pma__table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma__column_info';
// $cfg['Servers'][$i]['history'] = 'pma__history';
// $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
// $cfg['Servers'][$i]['tracking'] = 'pma__tracking';
// $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
// $cfg['Servers'][$i]['recent'] = 'pma__recent';
// $cfg['Servers'][$i]['favorite'] = 'pma__favorite';
// $cfg['Servers'][$i]['users'] = 'pma__users';
// $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
// $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
// $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
// $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
// $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
// $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

Bỏ ghi chú chúng ( xóa // )

Bây giờ lưu và thoát.

Chuyển đến mysql của bạn (theo mặc định: sudo mysql -u root -p )

GRANT SELECT, INSERT, UPDATE, DELETE ON phpmyadmin.* TO 'yourdatabaseuser'@'localhost' IDENTIFIED BY 'yourdatabasepassword';
exit;

Bây giờ hãy thử mở tên miền / bất cứ thứ gì trong trình duyệt

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.