PHPMyAdmin/setup显示空白屏幕,而PMA本身工作

pkmbmrz7  于 2022-11-09  发布在  PHP
关注(0)|答案(4)|浏览(214)

我正在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;
}

有人知道这里发生了什么吗?
您访问的页面不存在,或者该页面不存在。

<?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

8xiog9wr

8xiog9wr1#

我也遇到过同样的问题,我通过修改phpmyadmin目录的nginx conf文件中的默认缓冲区大小来解决这个问题。

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

q8l4jmvw2#

最有可能的问题是与bug #1175142相同的问题,已经修复4:4.0.1-2。问题是在Debian打包的phpMyAdmin中,配置脚本包括一个帮助器函数,这阻止了配置文件被多次加载。

ijnw1ujt

ijnw1ujt3#

修复了在我的/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。

nvbavucw

nvbavucw4#

刚遇到这个。以防你

  • 全新安装nginxphp7.4-fpm,可能还安装MariaDB
  • 正确配置sites-enabled/以运行PHP并具有工作的phpinfo()
  • 正确配置SSL甚至
  • 下载了phpMyAdmin作为zip文件,并将其解压缩

但它仍然返回一个空白的HTTP200页面,您是否记得安装它的PHP依赖项?结果我完全忘记了它的requirements,例如php-gd
为了保存时间,我运行了apt-get install phpmyadmin。它应该提取phpMyAdmin正常运行所需的所有内容。它还应该设置它所需的数据库结构。
之后删除phpmyadmin apt包是可选的,我这样做了,因为我从phpMyAdmin的网站下载了zip。

相关问题