Nginx phpmyadmin redirigiendo a / en lugar de / phpmyadmin al iniciar sesión


9

Tengo problemas con mi phpmyadmin en mi instalación de nginx.

Cuando entro <ServerIP>/phpmyadminy entra, me redirigen al <ServerIP>/index.php?<tokenstuff>lugar de<ServerIP>/phpmyadmin/index.php?<tokenstuff>

Archivo de configuración de 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/;
    }
}
}

(También se aceptan consejos generales sobre cómo ordenar esos archivos de configuración)


@MichaelHampton En realidad creo que ese era el problema. Eliminé el paquete instalado a través de yum, descargué el último del sitio web phpmyadmin y voilá. Si pones una respuesta, lo aceptaré.
Frederik Nielsen

Respuestas:


2

Esto no suena como un problema nginx. Esto suena como que phpMyAdmin no se instaló correctamente y cree que está en /lugar de hacerlo /phpmyadmin. Verifique su configuración de phpMyAdmin.


Esto es lo que me llevó a la respuesta correcta: reinstalar phpmyadmin. ¡Gracias! :)
Frederik Nielsen

44
"solo reinstalar" es una respuesta absurda. Si la configuración de phpMyAdmin es incorrecta, ¡debería haber una forma de reconfigurar sin tener que reinstalar toda la aplicación!
alexw

1
Esto pide más información: por favor, enlace a una fuente que explique cómo y dónde establecer el parámetro 'donde PHP piensa que es'.
Diana

Esto es más un comentario que una respuesta. Gran sugerencia, pero, ¿para qué ver phpMyAdmin?
SherylHohman

@SherylHohman Eso podría hacer una pregunta interesante hecha por separado. Pero este se resolvió hace mucho tiempo.
Michael Hampton

13

A pesar de que el autor ha resuelto su problema reinstalando phpMyAdmin, nginx debe configurarse adecuadamente para manejar la redirección al iniciar sesión correctamente.

Después de días golpeándome la cabeza con el teclado, finalmente encontré la solución real y estoy compartiendo aquí, ya que este hilo todavía tiene alta prioridad en la búsqueda de Google.

Como se indica en el enlace: http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

Para resolver el problema, debe agregar el siguiente bloque de código a su sitio predeterminado nginx disponible, accederá con:

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

Coloque este bloque en serverbloque:

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

Espero que esto ayude a alguien algún día ...


¡Me alegra que esto haya resuelto tu problema! ¡Felices codificaciones!
Daniel Alves

Aquí está ... soluciona todos los problemas ...
ThatTechGuy

Definitivamente me salvó más de un día. arriba votado!
Xu Yin

No me lo arregla. ¿Alguna otra idea?
Diana

¿Qué sucede si no quiero phpmyadmin en / phpmyadmin sino en / lo que sea? Intenté cambiar las "ubicaciones" anidadas pero no funcionó.
0lli.rocks

4

Este problema es causado por la configuración común de cgi.fix_pathinfo = 0 que deshabilita la ruta actual para PHP-FPM. Una solución rápida es cambiar cgi.fix_pathinfo de nuevo a 1, o establecer los parámetros de ruta en el bloque del servidor virtual de nginx.


2

Su problema parece ser similar a esto: /programming/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something

Si al leer eso y cambiar tu configuración aún tienes problemas, ¡díselo!


Leí ese hilo e intenté algunas de las configuraciones, pero sigue siendo el mismo problema: o se redirige a / en lugar de / phpmyadmin, o simplemente pasa al 404.
Frederik Nielsen

404 es "generado" por "try_files", lo que significa que no encuentra archivos phpmyadmin ... ¿tal vez hay algún problema con la instalación de phpmyamdin?
Mikec

Solo note el otro comentario -.- ¡Supongo que era phpmyadmin config después de todo!
Mikec

Podría ser ... Creo que fue una combinación de ambos.
Frederik Nielsen


0

agregue un host virtaul a su servidor de la lámpara con cualquier nombre de dominio como 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;
    }
}

Edite su archivo de hosts

agregue esta línea en la parte inferior

192.168.1.xx  phpmyadmin1.com

guardar y cerrar, luego reinicie su servidor

service nginx restart

service php5-fpm restart

Acceda a su URL de host virtual en el navegador, vea su página de inicio de sesión de phpmyadmin

http://screencloud.net/v/nGK5

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


¡Bienvenido a Server Fault! Tanto en sus preguntas como en sus respuestas, intente abstenerse de usar nombres de dominio aleatorios y use su propio dominio o uno de los nombres de dominio reservados RFC 6761 como example.com, example.org o similar. Consulte estas preguntas y respuestas para conocer nuestras recomendaciones con respecto a cómo y qué (no) ofuscar en sus preguntas.
HBruijn

0

Solo esto funcionó para mí

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

-1

phpMyAdmin de los repositorios de Ubuntu 16.04 y posteriores no redirigen correctamente.

Acabo de descargar una nueva versión de phpmyadmin del sitio oficial de 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

abra config.inc.php:

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

y poner un poco de carácter aleatorio entre

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

guarda y abre tu dominio / phpmyadmin en el navegador

También puede cambiar el enlace a phpmyadmin (para una mejor seguridad) y agregar autenticación básica de nginx al enlace:

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

cd /var/www/html

sudo mv phpmyadmin anything

ahora su phpmyadmin funciona en https: // dominio / cualquier cosa , agreguemos una contraseña:

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

ahora abra su configuración nginx (por defecto: sudo nano / etc / nginx / sites-available / default ) y agregue befor last}

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

Habilitar almacenamiento de configuración:

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

Localice las siguientes líneas:

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

Cambiar a:

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

Localizar:

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

Descomentarlos ( eliminar // )

Ahora guarda y sal.

Vaya a su mysql (por defecto: sudo mysql -u root -p )

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

ahora intenta abrir el dominio / cualquier cosa en el navegador

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.