Nginx phpmyadmin reindirizza a / invece di / phpmyadmin al momento dell'accesso


9

Sto riscontrando problemi con phpmyadmin durante l'installazione di nginx.

Quando <ServerIP>/phpmyadminentro e accedo, vengo reindirizzato al <ServerIP>/index.php?<tokenstuff>posto di<ServerIP>/phpmyadmin/index.php?<tokenstuff>

File di configurazione di 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/;
    }
}
}

(Sono accettati anche tutti i suggerimenti generali su come riordinare quei file di configurazione)


@MichaelHampton In realtà penso che sia stato questo il problema. Ho rimosso il pacchetto installato tramite yum e scaricato le ultime dal sito Web phpmyadmin e voilá. Se metti una risposta, accetterò quello.
Frederik Nielsen,

Risposte:


2

Questo non suona come un problema di nginx. Sembra che phpMyAdmin non sia stato installato correttamente e pensa che sia /invece di /phpmyadmin. Controlla la tua configurazione di phpMyAdmin.


Questo è ciò che mi ha portato alla risposta giusta - reinstallare phpmyadmin - Grazie! :)
Frederik Nielsen il

4
"basta reinstallare" è una risposta assurda. Se la configurazione di phpMyAdmin è errata, dovrebbe esserci un modo per riconfigurare senza dover reinstallare l'intera applicazione!
alexw

1
Ciò richiede ulteriori informazioni: si prega di collegarsi a una fonte che spiega come e dove impostare il parametro "dove PHP pensa che sia".
Diana,

Questo è più un commento, che una risposta. Ottimo consiglio, ma, controlla phpMyAdmin per cosa?
SherylHohman,

@SherylHohman Potrebbe essere una domanda interessante posta separatamente. Ma questo è stato risolto molto tempo fa.
Michael Hampton,

13

Anche se l'autore ha risolto il suo problema con la reinstallazione di phpMyAdmin, nginx deve essere correttamente configurato per gestire correttamente il reindirizzamento al login.

Dopo giorni che mi sono sbattuto la testa sulla tastiera ho finalmente trovato la vera soluzione e sto condividendo qui poiché questa discussione ha ancora la massima priorità sulla ricerca di Google.

Come indicato sul link: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Per risolvere il problema, è necessario aggiungere il seguente blocco di codice al sito predefinito nginx-disponibile, si accederà con:

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

Posiziona questo blocco nel serverblocco:

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

Spero che questo aiuti qualcuno un giorno ...


Sono contento che questo abbia risolto il tuo problema! Codici felici!
Daniel Alves,

Questo è tutto qui ... risolve tutti i problemi ...
ThatTechGuy

sicuramente mi ha salvato più di un giorno. votato!
Xu Yin,

Non lo risolve per me. Altre idee?
Diana,

E se non volessi phpmyadmin su / phpmyadmin ma su / qualunque cosa invece? Ho provato a cambiare le "posizioni" nidificate ma non ha funzionato.
0lli.rocks,

4

Questo problema è causato dalla configurazione comune di cgi.fix_pathinfo = 0 che disabilita il percorso corrente per PHP-FPM. Una soluzione rapida è ripristinare cgi.fix_pathinfo nuovamente su 1 o impostare i parametri del percorso sul blocco del server virtuale di nginx.


2

Il tuo problema sembra essere simile a questo: /programming/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something

Se leggendolo e cambiando la configurazione, hai ancora problemi, ti preghiamo di dirlo!


Ho letto quel thread e ho provato alcune delle configurazioni, ma sempre lo stesso problema - o viene reindirizzato a / invece di / phpmyadmin, o va semplicemente 404.
Frederik Nielsen il

404 è "generato" da "try_files", il che significa che non trova i file phpmyadmin ... forse qualcosa non va nell'installazione di phpmyamdin?
Mikec,

Basta notare l'altro commento -.- Immagino che dopo tutto sia stata la configurazione di phpmyadmin!
Mikec,

Potrebbe essere .. Penso che sia stata una combinazione di entrambi.
Frederik Nielsen,


0

aggiungi un host virtaul al tuo server lampada con qualsiasi nome di dominio come 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;
    }
}

Modifica il tuo file Hosts

aggiungi questa riga in fondo

192.168.1.xx  phpmyadmin1.com

salvare e chiudere, quindi riavviare il server

service nginx restart

service php5-fpm restart

Accedi all'URL dell'host virtuale sul tuo browser nella pagina di accesso vedi phpmyadmin

http://screencloud.net/v/nGK5

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


Benvenuti in Server Fault! In entrambe le vostre domande e le risposte per favore cercate di non utilizzare nomi casuali di dominio e utilizzare sia il tuo dominio o uno dei RFC 6761 nomi a dominio riservati, come example.com, example.org o simili. Si prega di fare riferimento a queste domande e risposte per le nostre raccomandazioni in merito a come e cosa (non) offuscare nelle vostre domande.
HBruijn,

0

Solo questo ha funzionato per me

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

-1

phpMyAdmin dai repository di Ubuntu 16.04 e versioni successive non reindirizza correttamente.

Sto solo scaricando la nuova versione di phpmyadmin dal sito ufficiale 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

apri config.inc.php:

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

e metti un po 'di carattere casuale tra'

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

salva e apri il tuo dominio / phpmyadmin nel browser

inoltre è possibile modificare il collegamento a phpmyadmin (per una migliore sicurezza) e aggiungere l'autent di base da nginx al collegamento:

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

cd /var/www/html

sudo mv phpmyadmin anything

ora phpmyadmin funziona su https: // domain / qualunque cosa , aggiungiamo una password:

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

ora apri la tua configurazione nginx (per impostazione predefinita: sudo nano / etc / nginx / siti-disponibili / impostazione predefinita ) e aggiungi prima dell'ultimo}

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

Abilita archiviazione configurazione:

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

Trova le seguenti righe:

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

Passare a:

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

Individuare:

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

Rimuovi il commento ( rimuovi // )

Ora salva ed esci.

Vai al tuo mysql (di default: sudo mysql -u root -p )

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

ora prova ad aprire il dominio / qualsiasi cosa nel browser

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.