nginx/php-fpm을 사용하여 로그인한 후 phpmyadmin 빈 페이지

nginx/php-fpm을 사용하여 로그인한 후 phpmyadmin 빈 페이지

www.***/phpmyadmin을 방문하여 로그인할 수 있습니다. mysql 사용자로 로그인하면 오류 없이 빈 페이지를 바로 클릭합니다. 시스템은 Raspbian에서 실행됩니다.

설치: nginx 1.2.1, php5.4.36

다른 컴퓨터의 다른 브라우저에서 로그인을 시도했습니다. 쿠키를 재설정합니다. URL은 phpmyadmin/index.php?token=****3a35b78052f67500a6bb2bd411e6으로 변경됩니다.

내 nginx 구성:

    upstream php-handler {
    server 127.0.0.1:9000;
    #server unix:/var/run/php5-fpm.sock;
    }

    server {
    listen 80;
    server_name ***.net;
    return 301 https://$server_name$request_uri; # enforce https
    }

    server {
    listen 443 ssl;
    server_name ***.net;

    ssl_certificate /etc/nginx/cert.pem;
    ssl_certificate_key /etc/nginx/cert.key;

    ssl_ciphers "AES128+EECDH:AES128+EDH";
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
    add_header X-Frame-Options DENY;
    add_header X-Content-Type-Options nosniff;

    # Path to the root of your installation
    root /var/www/owncloud;

    client_max_body_size 1000M; # set max upload size
    fastcgi_buffers 64 4K;

    rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
    rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
    rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

    index index.php
    error_page 403 /core/templates/403.php;
    error_page 404 /core/templates/404.php;

    location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
 }


# phpmyadmin
location /phpmyadmin {
alias   /usr/share/phpmyadmin;
index   index.php;
}

location ~ ^/phpmyadmin/libraries {
deny all;
}

location ~ ^/phpmyadmin/setup/lib {
deny all;
}

location ~ ^/phpmyadmin/setup/(.+\.php)$ {
auth_basic              "phpMyAdmin Setup";
auth_basic_user_file    "/etc/phpmyadmin/htpasswd.setup";
alias                   /usr/share/phpmyadmin/setup/$1;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass            php-handler;
fastcgi_index           index.php;
include                 fastcgi_params;
}

location ~ ^/phpmyadmin/(.+\.php)$ {
alias                   /usr/share/phpmyadmin/$1;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass            php-handler;
fastcgi_index           index.php;
include                 fastcgi_params;
}

location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) {
    deny all;
}


location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param HTTPS on;
    fastcgi_pass php-handler;
    fastcgi_index index.php;
}

# Optional: set long EXPIRES header on static assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}

}

당신의 도움에 감사드립니다

답변1

Apache를 사용하고 있음에도 불구하고 동일한 문제가 발생한 것 같습니다. 페이지의 소스 코드를 보면 대부분의 html이 여전히 빈 프레임이라는 것을 알 수 있습니까?

그렇다면 nginx 설정의 다음 줄로 인해 문제가 발생할 가능성이 높습니다.

add_header X-Frame-Options DENY;

SAMEORIGIN으로 설정하면 phpmyadmin에게 어떤 상황에서도 페이지가 프레임에 표시되지 않도록 하는 지시문이 제공됩니다.

시도한 모든 로그에서 오류를 찾을 수 없습니다.

답변2

파일 권한 충돌이 있는 것 같습니다. nginx와 php-fpm 모두에 대해 동일한 사용자를 설정하여 가장 일반적으로 "nginx" 또는 "www-data"로 실행하도록 설정하십시오. 구성 파일은 /etc/php-fpm.d/www.conf 및 /etc/nginx.conf입니다. chown nginx:nginx /usr/share/phpmyadmin/*예를 들어, hpMyadmin 파일에 대한 사용자 및 그룹을 설정할 수 있습니다.

관련 정보