我在NginX服务器上设置PHPMyAdmin。系统本身可以工作,但是,我应该能够更改设置的/ setup页面(即构建新的config.inc.php)是空白的。它没有显示错误,返回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
答案 0 :(得分: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;
}
答案 1 :(得分:0)
这很可能与bug #1175142 相同,已修复4:4.0.1-2。问题是在Debian打包的phpMyAdmin中,配置脚本包含一个帮助函数,它阻止配置文件多次加载。
答案 2 :(得分:0)
修复了在/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。