로그인시 Nginx phpmyadmin이 / phpmyadmin 대신 /로 리디렉션


9

내 nginx 설치에서 phpmyadmin에 문제가 있습니다.

내가 입력하는 경우 <ServerIP>/phpmyadmin와의 로그, 내가로 리디렉션 <ServerIP>/index.php?<tokenstuff>대신<ServerIP>/phpmyadmin/index.php?<tokenstuff>

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

(구성 파일 정리에 대한 일반적인 팁도 허용됩니다)


@MichaelHampton 사실 나는 그것이 문제라고 생각합니다. yum을 통해 설치된 패키지를 제거하고 phpmyadmin 웹 사이트 및 voilá에서 최신 패키지를 다운로드했습니다. 당신이 대답을한다면, 나는 그것을 받아 들일 것입니다.
Frederik Nielsen

답변:


2

이것은 nginx 문제처럼 들리지 않습니다. 이것은 phpMyAdmin이 올바르게 설치되지 않은 것 같고 /대신에 있다고 생각합니다 /phpmyadmin. phpMyAdmin 구성을 확인하십시오.


이것이 올바른 답변으로 안내하는 것입니다-phpmyadmin 재설치-감사합니다! :)
Frederik Nielsen

4
"그냥 다시 설치"는 터무니없는 대답입니다. phpMyAdmin의 구성이 잘못되면 전체 응용 프로그램을 다시 설치하지 않고도 재구성 할 수있는 방법이 있어야합니다!
alexw

1
자세한 내용은 다음과 같습니다. 'PHP가 생각하는 위치'매개 변수를 설정하는 방법과 위치를 설명하는 소스로 연결하십시오.
Diana

이것은 답변보다 더 많은 의견입니다. 큰 제안이지만 phpMyAdmin에서 무엇을 확인합니까?
SherylHohman

@SherylHohman 흥미로운 질문이 따로있을 수도 있습니다. 그러나 이것은 오래 전에 해결되었습니다.
마이클 햄튼

13

저자가 phpMyAdmin 재설치 문제를 해결했지만 로그인시 리디렉션을 처리하도록 nginx를 올바르게 구성해야합니다.

며칠 후 키보드로 머리를 부딪친 후에 마침내 진정한 해결책을 찾았고이 스레드는 여전히 Google 검색에서 우선 순위가 높으므로 여기에서 공유하고 있습니다.

링크에 명시된 바와 같이 : http://www.samundra.com.np/use-phpmyadmin-with-nginx-and-php7/1374

이 문제를 해결하려면 nginx 기본 사이트에 다음 코드 블록을 추가해야합니다.

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

이 블록을 server블록에 배치하십시오.

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

언젠가 누군가에게 도움이되기를 바랍니다 ...


문제가 해결되어 다행입니다. 행복한 코딩!
다니엘 알베스

이것은 바로 여기에 있습니다 ... 모든 문제를 해결 ...
ThatTechGuy

확실히 하루 이상 저를 구했습니다. 투표했다!
Xu Yin

나를 위해 고치지 않습니다. 다른 아이디어가 있습니까?
Diana

phpmyadmin을 / phpmyadmin에서 대신 / whatever에서 원하지 않으면 어떻게합니까? 중첩 된 "위치"를 변경하려고 시도했지만 작동하지 않았습니다.
0lli.rocks

4

이 문제는 PHP-FPM의 현재 경로를 비활성화하는 cgi.fix_pathinfo = 0의 일반적인 구성으로 인해 발생합니다. 빠른 해결책 중 하나는 cgi.fix_pathinfo를 다시 1로 변경하거나 nginx의 가상 서버 블록에서 경로 매개 변수를 설정하는 것입니다.


2

당신은 문제가 이것과 비슷한 것 같습니다 : https : //.com/questions/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something

그것을 읽고 설정을 변경해도 여전히 문제가 있다면 알려주십시오!


그 스레드를 읽고, 그리고 CONFIGS의 일부를 시도했지만 여전히 같은 문제 - 하나 대신에 / phpMyAdmin을 /로 리디렉션됩니다, 아니면 그냥 404 간다
프레데릭 닐슨를

404는 "try_files"에 의해 "생성"되는데, 이는 phpmyadmin 파일을 찾을 수 없음을 의미합니다. 아마도 phpmyamdin 설치에 문제가 있습니까?
Mikec

다른 의견에 주목하십시오. -.- 결국 phpmyadmin 설정이라고 생각합니다!
Mikec

아마 .. 나는 그것이 둘의 조합이라고 생각합니다.
Frederik Nielsen


0

phpmyadmin1.com과 같은 도메인 이름으로 virtaul 호스트를 램프 서버에 추가하십시오.

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

호스트 파일 편집

이 줄을 맨 아래에 추가하십시오

192.168.1.xx  phpmyadmin1.com

저장하고 닫은 다음 서버를 다시 시작하십시오.

service nginx restart

service php5-fpm restart

브라우저에서 가상 호스트 URL에 액세스하십시오. phpmyadmin 로그인 페이지를 참조하십시오.

http://screencloud.net/v/nGK5

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


서버 결함에 오신 것을 환영합니다! 질문과 답변 모두에서 임의 도메인 이름을 사용하거나 사용자의 사용을 자제 해보세요 자신의 도메인 또는 중 하나 RFC 6761 과 같은 예약 된 도메인 이름 example.com, example.org 또는 유사한. 질문 에서 어떻게 그리고 무엇을 혼란스럽게 할 것인지에 관한 권장 사항은 이 Q & A 를 참조하십시오 .
HBruijn

0

이것 만이 나를 위해 일했다

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

-1

Ubuntu 16.04 이상의 리포지토리에서 phpMyAdmin이 올바르게 리디렉션되지 않습니다.

공식 phpmyadmin 사이트에서 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

config.inc.php를여십시오 :

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

그리고 임의의 문자 berween '

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

브라우저에서 도메인 / phpmyadmin을 저장하고 엽니 다

또한 보안 강화를 위해 phpmyadmin으로의 링크를 변경하고 nginx에서 기본 인증을 추가하여 링크 할 수 있습니다.

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

cd /var/www/html

sudo mv phpmyadmin anything

이제 phpmyadmin이 https : // domain / anything 에서 작동하므로 암호를 추가 할 수 있습니다.

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

이제 nginx 설정을 열고 (기본 : sudo nano / etc / nginx / sites-available / default ) 마지막에 추가하십시오}

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

구성 저장소 활성화 :

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

다음 줄을 찾으십시오.

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

로 변경:

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

위치하고 있다:

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

주석 처리를 제거하십시오 (// 제거 ).

이제 저장하고 종료하십시오.

mysql로 ​​이동하십시오 (기본적으로 sudo mysql -u root -p )

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

이제 브라우저에서 도메인 / 무엇이든 열어보십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.