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 파일에 대한 사용자 및 그룹을 설정할 수 있습니다.