Nginx phpmyadmin mengarahkan ulang ke / bukannya / phpmyadmin saat login


9

Saya mengalami masalah dengan phpmyadmin saya di instal nginx saya.

Ketika saya masuk <ServerIP>/phpmyadmindan masuk , saya diarahkan ke <ServerIP>/index.php?<tokenstuff>bukan<ServerIP>/phpmyadmin/index.php?<tokenstuff>

File konfigurasi 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;
}

Default.conf:

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

(Setiap tips umum tentang merapikan file-file konfigurasi juga diterima)


@MichaelHampton Sebenarnya saya pikir itu masalahnya. Saya menghapus paket yang diinstal melalui yum, dan mengunduh yang terbaru dari situs web phpmyadmin, dan voilá. Jika Anda memberikan jawaban, saya akan menerimanya.
Frederik Nielsen

Jawaban:


2

Ini tidak terdengar seperti masalah nginx. Ini terdengar seperti phpMyAdmin tidak diinstal dengan benar dan berpikir bahwa itu adalah /bukan /phpmyadmin. Periksa konfigurasi phpMyAdmin Anda.


Inilah yang menuntun saya ke jawaban yang tepat - menginstal ulang phpmyadmin - Terima kasih! :)
Frederik Nielsen

4
"just instal ulang" adalah jawaban yang tidak masuk akal. Jika konfigurasi phpMyAdmin salah, harus ada cara untuk mengkonfigurasi ulang tanpa harus menginstal ulang seluruh aplikasi!
alexw

1
Ini meminta informasi lebih lanjut: Harap tautkan ke sumber yang menjelaskan bagaimana dan di mana mengatur parameter 'di mana PHP menganggapnya'.
Diana

Ini lebih dari sekadar komentar, bukan jawaban. Saran bagus, tapi, periksa phpMyAdmin untuk apa?
SherylHohman

@ SherylHohman Itu mungkin membuat pertanyaan menarik ditanyakan secara terpisah. Tapi yang ini sudah dipecahkan sejak lama.
Michael Hampton

13

Meskipun penulis telah memecahkan masalahnya menginstal ulang phpMyAdmin, nginx perlu dikonfigurasi dengan benar untuk menangani pengalihan setelah login dengan benar.

Setelah berhari-hari menghancurkan kepala saya pada keyboard saya akhirnya menemukan solusi nyata dan saya berbagi di sini karena utas ini masih memiliki prioritas tinggi pada pencarian google.

Sebagaimana dinyatakan pada tautan: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Untuk mengatasi masalah, Anda harus menambahkan blok kode berikut ke situs nginx default Anda yang tersedia, Anda akan mengaksesnya dengan:

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

Tempatkan blok ini di serverblok:

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

Saya harap ini membantu seseorang suatu hari ...


Saya senang bahwa ini menyelesaikan masalah Anda! Selamat coding!
Daniel Alves

Ini dia di sini ... memperbaiki semua masalah ...
ThatTechGuy

pasti menyelamatkan saya lebih dari satu hari. terpilih!
Xu Yin

Tidak memperbaikinya untuk saya. Ada ide lain?
Diana

Bagaimana jika saya tidak ingin phpmyadmin di / phpmyadmin tetapi di / apa pun? Saya mencoba mengubah "lokasi" yang bersarang tetapi tidak berhasil.
0lli.rocks

4

Masalah ini disebabkan oleh konfigurasi umum cgi.fix_pathinfo = 0 yang menonaktifkan jalur saat ini untuk PHP-FPM. Salah satu solusi cepat adalah mengubah cgi.fix_pathinfo kembali ke 1, atau mengatur parameter path pada blok server virtual nginx.


2

Masalah Anda tampaknya mirip dengan ini: /programming/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something

Jika dengan membaca itu dan mengubah konfigurasi Anda, Anda masih memiliki masalah, silakan beri tahu!


Saya membaca utas itu, dan mencoba beberapa konfigurasi, tetapi masih masalah yang sama - baik dialihkan ke / bukan / phpmyadmin, atau hanya berjalan 404.
Frederik Nielsen

404 "dihasilkan" oleh "try_files", yang berarti tidak menemukan file phpmyadmin ... mungkin ada yang salah dengan instal phpmyamdin?
Mikec

Perhatikan saja komentar lain -.- Saya kira itu adalah konfigurasi phpmyadmin!
Mikec

Mungkin .. saya pikir itu kombinasi keduanya.
Frederik Nielsen


0

tambahkan host virtaul ke server lampu Anda dengan nama domain seperti 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;
    }
}

Edit file Host Anda

tambahkan baris ini di bagian bawah

192.168.1.xx  phpmyadmin1.com

simpan dan tutup, lalu restart server Anda

service nginx restart

service php5-fpm restart

Akses url host virtual Anda di browser, lihat halaman login phpmyadmin Anda

http://screencloud.net/v/nGK5

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


Selamat Datang di Kesalahan Server! Baik dalam pertanyaan maupun jawaban Anda, cobalah untuk tidak menggunakan nama domain acak dan menggunakan domain Anda sendiri atau salah satu dari nama domain khusus RFC 6761 seperti example.com, example.org atau serupa. Silakan lihat Q&A ini untuk rekomendasi kami mengenai bagaimana dan apa (tidak) dikaburkan dalam pertanyaan Anda.
HBruijn

0

Hanya ini yang berhasil untuk saya

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

-1

phpMyAdmin dari repositori Ubuntu 16.04 dan yang lebih baru tidak dialihkan dengan benar.

Saya hanya mengunduh versi baru phpmyadmin dari situs resmi 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

buka config.inc.php:

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

dan menempatkan beberapa karakter acak berween '

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

simpan dan buka domain / phpmyadmin Anda di browser

Anda juga dapat mengubah tautan ke phpmyadmin (untuk keamanan yang lebih baik) dan menambahkan auth dasar dari nginx ke tautan:

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

cd /var/www/html

sudo mv phpmyadmin anything

sekarang phpmyadmin Anda berfungsi di https: // domain / apa saja , mari tambahkan beberapa kata sandi:

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

sekarang buka konfigurasi nginx Anda (secara default: sudo nano / etc / nginx / sites-available / default ) dan tambahkan sebelum terakhir}

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

Aktifkan Penyimpanan Konfigurasi:

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

Temukan baris berikut:

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

Mengubah:

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

Menemukan:

// $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';

Batalkan komentar mereka ( hapus // )

Sekarang simpan dan keluar.

Buka mysql Anda (secara default: sudo mysql -u root -p )

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

sekarang coba buka domain / apa saja di browser

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.