Nginx phpmyadmin leitet beim Login zu / anstelle von / phpmyadmin um

9

Ich habe Probleme mit meinem phpmyadmin bei meiner Nginx-Installation.

Wenn ich eingeben <ServerIP>/phpmyadminund anmeldet, werde ich zu umgeleitet <ServerIP>/index.php?<tokenstuff>statt<ServerIP>/phpmyadmin/index.php?<tokenstuff>

Nginx-Konfigurationsdatei:

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

(Allgemeine Tipps zum Aufräumen dieser Konfigurationsdateien werden ebenfalls akzeptiert.)

Frederik Nielsen
quelle
@ MichaelHampton Eigentlich denke ich, das war das Problem. Ich habe das über yum installierte Paket entfernt und das neueste von der phpmyadmin-Website und voilá heruntergeladen. Wenn Sie eine Antwort geben, werde ich das akzeptieren.
Frederik Nielsen

Antworten:

2

Dies klingt nicht nach einem Nginx-Problem. Das klingt wie phpMyAdmin nicht korrekt installiert war und denkt , dass es ist /statt /phpmyadmin. Überprüfen Sie Ihre phpMyAdmin-Konfiguration.

Michael Hampton
quelle
Dies führte mich zur richtigen Antwort - Neuinstallation von phpmyadmin - Danke! :)
Frederik Nielsen
4
"einfach neu installieren" ist eine absurde Antwort. Wenn die Konfiguration von phpMyAdmin falsch ist, sollte es eine Möglichkeit geben, die Konfiguration neu zu konfigurieren, ohne die gesamte Anwendung neu installieren zu müssen!
Alexw
1
Dies erfordert weitere Informationen: Bitte verlinken Sie auf eine Quelle, in der erklärt wird, wie und wo der Parameter "Wo PHP denkt, dass er ist" festgelegt werden soll.
Diana
Dies ist eher ein Kommentar als eine Antwort. Toller Vorschlag, aber überprüfen Sie phpMyAdmin für was?
SherylHohman
@SherylHohman Das könnte eine interessante Frage stellen, die separat gestellt wird. Aber dieser wurde vor langer Zeit gelöst.
Michael Hampton
13

Obwohl der Autor sein Problem bei der Neuinstallation von phpMyAdmin gelöst hat, muss nginx ordnungsgemäß konfiguriert sein, damit die Umleitung bei der Anmeldung korrekt ausgeführt werden kann.

Nachdem ich tagelang meinen Kopf auf die Tastatur geschlagen hatte, fand ich endlich die richtige Lösung und teile sie hier, da dieser Thread bei der Google-Suche immer noch hohe Priorität hat.

Wie auf dem Link angegeben: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Um das Problem zu lösen, sollten Sie den folgenden Codeblock zu Ihrer Nginx-Standardwebsite hinzufügen, mit der Sie darauf zugreifen können:

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

Platziere diesen Block in serverBlock:

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

Ich hoffe das hilft jemandem eines Tages ...

Daniel Alves
quelle
Ich bin froh, dass dies Ihr Problem gelöst hat! Viel Spaß beim Codieren!
Daniel Alves
Dies ist es genau hier ... behebt alle Probleme ...
ThatTechGuy
hat mich definitiv mehr als einen Tag gerettet. gewählt!
Xu Yin
Repariert es nicht für mich. Irgendwelche anderen Ideen?
Diana
Was ist, wenn ich nicht phpmyadmin bei / phpmyadmin, sondern bei / was auch immer möchte? Ich habe versucht, die verschachtelten "Speicherorte" zu ändern, aber es hat nicht funktioniert.
0lli.rocks
4

Dieses Problem wird durch die allgemeine Konfiguration von cgi.fix_pathinfo = 0 verursacht, die den aktuellen Pfad für PHP-FPM deaktiviert. Eine schnelle Lösung besteht darin, cgi.fix_pathinfo wieder auf 1 zu ändern oder die Pfadparameter für den virtuellen Serverblock von nginx festzulegen.

Saúl Delgadillo R.
quelle
2

Ihr Problem scheint ähnlich zu sein: /programming/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something

Wenn Sie beim Lesen und Ändern Ihrer Konfiguration immer noch Probleme haben, sagen Sie es bitte!

Mikec
quelle
Ich habe diesen Thread gelesen und einige der Konfigurationen ausprobiert, aber immer noch das gleiche Problem - wird entweder zu / anstelle von / phpmyadmin umgeleitet oder geht einfach auf 404.
Frederik Nielsen
404 wird von "try_files" "generiert", was bedeutet, dass keine phpmyadmin-Dateien gefunden werden ... Vielleicht stimmt etwas mit der Installation von phpmyamdin nicht?
Mikec
Beachten Sie einfach den anderen Kommentar -.- Ich denke, es war doch phpmyadmin config!
Mikec
Könnte sein .. Ich denke, es war eine Kombination von beiden.
Frederik Nielsen
0

Fügen Sie Ihrem Lampenserver einen virtuellen Host mit einem beliebigen Domainnamen wie phpmyadmin1.com hinzu

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

Bearbeiten Sie Ihre Hosts-Datei

Fügen Sie diese Zeile unten hinzu

192.168.1.xx  phpmyadmin1.com

Speichern und schließen Sie den Server und starten Sie ihn neu

service nginx restart

service php5-fpm restart

Greifen Sie über Ihre Browser-URL auf Ihre virtuelle Host-URL zu

http://screencloud.net/v/nGK5

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

Sandeep Kumar Soni
quelle
Willkommen bei Server Fault! In beiden Fragen und Antworten bitte versuchen Sie sich aus mit zufälligem Domain - Namen und verwenden entweder Ihren Abstand zu nehmen eigene Domain oder eine der RFC 6761 reservierten Domain - Namen wie example.com, example.org oder ähnliches. In diesen Fragen und Antworten finden Sie unsere Empfehlungen dazu, wie und was (nicht) in Ihren Fragen zu verschleiern ist.
HBruijn
0

Nur das hat bei mir funktioniert

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

phpMyAdmin aus Repositorys von Ubuntu 16.04 und höher leitet nicht richtig um.

Ich lade gerade eine neue Version von phpmyadmin von der offiziellen phpmyadmin-Website herunter:

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

öffne config.inc.php:

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

und setze ein zufälliges Zeichen dazwischen '

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

Speichern und öffnen Sie Ihre Domain / phpmyadmin im Browser

Sie können auch den Link zu phpmyadmin ändern (für eine bessere Sicherheit) und dem Link eine grundlegende Authentifizierung von nginx hinzufügen:

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

cd /var/www/html

sudo mv phpmyadmin anything

Jetzt arbeitet Ihr phpmyadmin an https: // domain / irgendetwas. Fügen Sie ein Passwort hinzu:

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

Öffnen Sie jetzt Ihre Nginx-Konfiguration (standardmäßig: sudo nano / etc / nginx / sites-available / default ) und fügen Sie sie vor} hinzu

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

Konfigurationsspeicher aktivieren:

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

Suchen Sie die folgenden Zeilen:

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

Ändern:

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

Lokalisieren:

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

Kommentiere sie aus ( entferne // )

Speichern und beenden Sie nun.

Gehen Sie zu Ihrem MySQL (standardmäßig: sudo mysql -u root -p )

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

Versuchen Sie nun, die Domain / irgendetwas im Browser zu öffnen

Amokläufe
quelle