PHPMyAdmin/setup 显示空白屏幕,而 PMA 本身工作
Posted
技术标签:
【中文标题】PHPMyAdmin/setup 显示空白屏幕,而 PMA 本身工作【英文标题】:PHPMyAdmin/setup show blank screen, while PMA itself works 【发布时间】:2013-06-11 23:54:50 【问题描述】:我正在 nginx 服务器上设置 phpMyAdmin。系统本身可以工作,但是,我应该能够更改设置(即构建新的 config.inc.php)的 /setup 页面是空白的。它不显示错误,返回 200 OK 并且 /var/log/nginx/error.log 中没有任何内容。
这是我对这个服务器块的 nginx 配置:
listen [::]:80;
root /usr/share/phpmyadmin; # path to my pma installation
index index.php;
charset utf-8;
server_name my-host;
location /
autoindex off;
location ~ \.php$
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
location ~ /\.
deny all;
location /libraries
deny all;
location /setup/lib
deny all;
有人知道这里发生了什么吗?
/setup/lib/common.inc.php 文件中似乎有错误:
<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Loads libraries/common.inc.php and preforms some additional actions
*
* @package PhpMyAdmin-setup
*/
/**
* Do not include full common.
* @ignore
*/
echo 1;
define('PMA_MINIMUM_COMMON', true);
define('PMA_SETUP', true);
chdir('..');
echo 2;
if (!file_exists('./libraries/common.inc.php'))
die('Bad invocation!');
echo 3;
require_once './libraries/common.inc.php';
require_once './libraries/config/config_functions.lib.php';
require_once './libraries/config/messages.inc.php';
require_once './libraries/config/ConfigFile.class.php';
require_once './libraries/url_generating.lib.php';
require_once './libraries/user_preferences.lib.php';
echo 4;
// use default error handler
restore_error_handler();
echo 5;
// Save current language in a cookie, required since we use PMA_MINIMUM_COMMON
$GLOBALS['PMA_Config']->setCookie('pma_lang', $GLOBALS['lang']);
echo 6;
ConfigFile::getInstance()->setPersistKeys(array(
'DefaultLang',
'ServerDefault',
'UploadDir',
'SaveDir',
'Servers/1/verbose',
'Servers/1/host',
'Servers/1/port',
'Servers/1/socket',
'Servers/1/extension',
'Servers/1/connect_type',
'Servers/1/auth_type',
'Servers/1/user',
'Servers/1/password'));
echo 7;
// allows for redirection even after sending some data
ob_start();
输出:123456
【问题讨论】:
我建议查看php错误日志,白屏通常意味着php脚本在中间某处死亡。 @MohammadAbuShady 我正在使用 php-fastcgi,错误被传递给 nginx 并会出现在 nginx 日志中。 我知道,但有时它不会,我以前遇到过很多次这样的事情,不会伤害跟踪 php 错误日志并尝试刷新 phpmyadmin。 @MohammadAbuShady 没有 PHP 错误日志,因为它会将所有内容都传递给 nginx。 如何编辑setup/index.php
并使第一行类似于die("working");
并查看它是否有效,以了解它的nginx 或php 是否有效,如果它有效,请打开错误报告并移除模具和再次运行它
【参考方案1】:
这很可能与 bug #1175142 相同,已在 4:4.0.1-2 修复。问题是在 Debian 打包的 phpMyAdmin 中,配置脚本包含一个辅助函数,这会阻止配置文件被多次加载。
【讨论】:
【参考方案2】:我遇到了同样的问题,我通过更改特定于我的 phpmyadmin 目录的 nginx conf 中的默认缓冲区大小来解决它。最后 4 行是我添加/更改的。
location ~ \.php$
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
【讨论】:
【参考方案3】:修复了在我的 /etc/nginx/conf.d/virtual.conf 文件中添加这些选项:
location ~ \.php$
....
include fastcgi_params;
fastcgi_buffer_size 128k;
fastcgi_buffers 256 4k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
...
并重新启动 nginx。
【讨论】:
以上是关于PHPMyAdmin/setup 显示空白屏幕,而 PMA 本身工作的主要内容,如果未能解决你的问题,请参考以下文章
RecyclerView 不显示从本地主机发送的 JSON 只是空白屏幕
Sencha Touch 2 - Iphone 应用程序 - 空白屏幕