作者:新青年博宇 | 来源:互联网 | 2022-12-21 13:04
phpMyAdmin
与v4.7.9一起工作正常.现在在更新到v4.8.0之后(将旧phpmyadmin
文件夹替换为新文件夹)我在phpMyAdmin中收到此消息:
$ cfg ['TempDir'](./ tmp /)无法访问.phpMyAdmin无法缓存模板,因此会很慢.
我添加了./tmp/
像这样的文件夹:/usr/share/tmp
phpMyAdmin正在: /usr/share/phpmyadmin
这并没有改变任何事情.
谁知道这个错误?我能做什么?
1> David..:
解决方案是创建一个名为tmp
this 的文件夹:/usr/share/phpmyadmin/tmp
.
还要确保运行Web服务器的用户(或组)(例如Apache)具有对新创建的tmp文件夹的写访问权.因此,将所有权更改为该用户或为所有用户添加写访问权限.后者可能不太可取.
这似乎不适用于使用手动安装的phpMyAdmin运行AMI Linux的Amazon EC2实例.我试图将整个`/ usr/share/phpmyadmin`文件夹,子文件夹和文件`chown`和`setfacl`提供给`apache`组,甚至`chmod` 777到`/ usr/share/phpmyadmin/tmp`但仍然得到错误.让它工作的唯一方法是在`config.inc.php`中设置`$ cfg ['TempDir'] ='/ tmp';`但是我不确定这是否是管理它的最佳方法
弄清楚它是由于SELinux.在`chmod 777/usr/share/phpmyadmin/tmp`之后通过给出`chcon -R -t httpd_sys_rw_content_t/usr/share/phpmyadmin/tmp`命令对其进行测试.在phpMyAdmin页面上没有报告更多错误.所以我使用`semanage fcontext -a -t httpd_sys_rw_content_t"/ usr/share/phpmyadmin/tmp(/.*)?"重新启动了更改.通过使用`ls -Z/usr/share/phpmyadmin |检查`tmp`目录的行来确保为上下文分配了适当的权限.grep tmp`.错误似乎肯定消失了.
2> user889030..:
简单的解决方法是在phpmyadmin目录中创建tmp目录并将权限设置为777
mkdir tmp && chmod 777 tmp
然后
更新你的config.inc.php文件添加该行
$cfg['TempDir'] = 'tmp';
我这样做了,但是在配置文件中添加了$ cfg ['TempDir'] ='/ tmp';`。
3> Ishimwe Auba..:
在我的情况下,我补充说
$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';
到了
config.inc.php phpmyadmin文件夹中的文件
希望它会帮助某人
如果需要,请记住添加所需的权限.
4> wevrem..:
当我用最新版本(4.8.0)从包存储库(v4.6.6)替换phpMyAdmin版本时,我在Ubuntu 18.04上遇到了同样的问题.我不知道你是否在Ubuntu上运行,但也许我的回复会对你(或其他)遇到类似问题的人有所帮助.
我把新版本放在标准位置,/usr/share/phpmyadmin/
但是Ubuntu的PMA软件包安装将一些配置设置放在其他地方(参见/etc/phpmyadmin/
和/var/lib/phpmyadmin/
).我发现这个设置/etc/phpmyadmin/apache.conf
:
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
确定该目录已经创建并具有适当的权限.想要尽可能接近软件包安装设置,我进行了此更改/usr/share/phpmyadmin/libraries/vendor_config.php
并直接指向该文件夹:
//define('TEMP_DIR', './tmp/');
define('TEMP_DIR', '/var/lib/phpmyadmin/tmp/');
此设置由/usr/share/phpmyadmin/libraries/config.default.php
(您不应编辑)来设置$cfg['TempDir']
.
5> jormaster3k..:
tmp
在phpMyAdmin安装的基本目录中创建一个文件夹(例如/usr/share/phpmyadmin/tmp
),并确保用户可以在其下运行PHP.
6> rsanden..:
创建一个临时目录,该目录归Web服务器用户所有并限于此。别不把它phpMyAdmin的根目录内。(在此示例中,网络服务器的运行方式为apache
):
mkdir -p /var/tmp/phpMyAdmin
chown apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin
接下来,TempDir
在phpMyAdmin的内部设置config.inc.php
:
$cfg['TempDir'] = '/var/tmp/phpMyAdmin';
任何建议您创建的答案/usr/share/phpmyadmin/tmp
都在倡导不良的安全实践。这对于临时目录通常是正确的,并在正式的phpMyAdmin文档中明确声明:
出于安全原因,所有目录都应位于网络服务器发布的树之外。