更新到v4.8.0后phpMyAdmin中出现错误:$ cfg [‘TempDir’](./tmp/)无法访问

2020/11/04 15:02 · php ·  · 0评论

phpMyAdminv4.7.9可以正常工作。现在,在今天更新到v4.8.0(将旧phpmyadmin文件夹替换为新文件夹)之后,我在phpMyAdmin中收到此消息:

$ cfg ['TempDir'](./tmp/)无法访问。phpMyAdmin无法缓存模板,因此会很慢。

./tmp/像这样添加了文件夹/usr/share/tmp

phpMyAdmin打开: /usr/share/phpmyadmin

这并没有改变任何东西。

谁知道这个错误?我能做什么?

解决方案是创建一个名为tmp的文件夹/usr/share/phpmyadmin/tmp

另外,请确保运行Web服务器(例如Apache)的用户(或组)对新创建的tmp文件夹具有写权限。因此,更改该用户的所有权或为所有用户添加写访问权限。后一种可能不是真正可取的。

简单的解决方法是在phpmyadmin目录中创建tmp目录并将权限设置为777

mkdir tmp && chmod 777 tmp

然后

更新您的config.inc.php文件,添加该行

$cfg['TempDir'] = 'tmp';

当我用最新版本(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']

就我而言

$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';

phpmyadmin文件夹中的config.inc.php文件

希望对别人有帮助

创建一个临时目录,该目录由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文档中明确声明

出于安全原因,所有目录都应位于网络服务器发布的树之外。

tmp在phpMyAdmin安装的基本目录中创建一个文件夹(例如/usr/share/phpmyadmin/tmp),并确保运行PHP的用户可写文件夹

对我来说phpmyadmin dir被发现在里面 /opt/lampp/

  1. 内部开放 /opt/lampp/phpmyadmin/
  2. 给予root特权来通过键入终端sudo su命令。
  3. 现在在同一终端使用(mkdir -p /tmp/),按Enter
  4. 现在, chmod 777 /tmp
  5. 里面phpmyadmin目录下有一个文件config.inc.php使用同一终端打开它。
  6. 添加此行$cfg['TempDir'] = /tmp; 并保存。
  7. 现在您可以使用了,只需重新加载选项卡,错误就会消失。

phpMyAdmin文档中:

$cfg['TempDir']
    Type:   string
    Default value:  './tmp/'

可以存储临时文件的目录的名称。目前有多种用途:

模板缓存可加快页面加载速度。ESRI Shapefile导入,请参阅6.30导入:如何导入ESRI Shapefile?

要解决上载文件的open_basedir限制,请参阅1.11从导入选项卡上载文件时出现“ open_basedir限制”。

该目录应具有尽可能严格的权限,因为访问此目录所需的唯一用户是运行Web服务器的用户。如果您具有root特权,只需将该用户授予此目录的所有者,并使其只能由该目录访问:

chown www-data:www-data tmp
chmod 700 tmp

如果您不能更改目录的所有者,则可以使用ACL进行类似的设置:

chmod 700 tmp
setfacl -m "g:www-data:rwx" tmp
setfacl -d -m "g:www-data:rwx" tmp

如果以上两种方法都不适合您,您仍然可以将目录设置为chmod 777,但这可能会导致其他用户冒着风险在该目录中读写数据。

好吧,以我为例,当我使用ubuntu 18.04时发生了此错误。您所需要做的只是转到安装目录(在ubuntu-opt / lampp / phpmyadmin中),并创建一个具有所有合适的读/写权限的文件夹tmp。

如果是Ubuntu,请按照以下步骤操作:

1.在cmd-中键入以下命令,进入PMA安装目录

cd opt / lampp / phpmyadmin

2.然后输入以下命令-

须藤mkdir tmp && chmod 777 tmp

然后你就完成了..!希望对您有所帮助。

1)创建tmp文件夹

mkdir /usr/share/phpmyadmin/tmp

2)找出您的PHP用户

<?php echo `whoami`; ?>

3)将tmp文件夹的所有权更改为在步骤2中找到的php用户

sudo chown -R step2phpuser:step2phpuser /usr/share/phpmyadmin/tmp

4)注销phpmyadmin并重新登录

我有同样的错误信息。我正在将Lampp与Ubuntu16.04一起使用。您应该转到“ phpmyadmin”目录,在我的情况下为“ / opt / lampp / phpmyadmin /”,创建一个新的“ tmp”文件夹。打开一个终端窗口,然后:

cd YOUR_PATH_TO_PHPMYADMIN
sudo mkdir tmp

现在,您必须更改“ tmp”文件夹的组才能授予php用户访问权限。为了找到它,您可以在本地主机目录中创建一个php文件,在我的情况下为“ htdocs”

sudo touch user.php
sudo nano user.php

在nano编辑器中,键入:

<?php echo `whoami`; ?>

然后按CTRL + O和CTRL + X保存并退出。打开浏览器并在地址栏中输入

localhost/user.php

它显示了您的php用户。

之后,转到终端并导航到phpmyadmin目录中最近创建的“ tmp”目录,然后键入:

sudo chgrp YOUR_PHP_USER tmp -R

并将权限更改为“ tmp”目录:

sudo chmod 775 tmp -R

我建议不要对任何文件授予777权限。

希望对您有所帮助!

对于Arch和Manjaro用户:

创建一个文件夹tmp/etc/webapps/phpmyadmin/-mkdir /etc/webapps/phpmyadmin/tmp

将权限设置为777- chmod 777 /etc/webapps/phpmyadmin/tmp

将此行添加到配置文件中/etc/webapps/phpmyadmin/config.inc.php-$cfg['TempDir'] = '/tmp';

干杯:)

在我的案例中[MacOs ElCapitán/葡萄牙语],消息是:

The $cfg['TempDir'] (./temp/) is not accessible

我的解决方案在xamppfiles / phpmyadmin / config.inc.php中:

$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';

也就是说,我只是在路径上添加了一点...工作很好。

我只是将vendor_config.php文件更改define('TEMP_DIR', '/tmp/');而不是define('TEMP_DIR', './tmp/');

这似乎有效。

我有一个类似的问题,与“临时”目录。解决方案是将“ twig”目录(在“ temp”内部)的所有者和组更改为“ apache”(所有者和组)

只需转到phpmyadmin文件夹并输入以下代码

$ cfg ['TempDir'] ='./tmp/';

然后检查tmp文件夹是否存在,如果不存在,则进入phpmyadmin,然后创建tmp文件夹并对其授予读取和正确权限。

tmp在phpmyadmin文件的根目录中创建文件夹

除此之外,您还需要提供对该文件夹的所有权限。这就是我在Windows中所做的。

我有同样的问题,但以上答案都无法解决。就我而言,我的php安全性设置是如此严格,以保护php不能访问open_basedir位于我本人定义的范围之外的目录/etc/php.d/99-security.ini(我是从安全摘要中透彻添加的,并且/etc/php.ini在您的情况下,这些设置也可以位于文件中):

;; Limit PHP Access To File System
; Limits the PHP process from accessing files outside
; of specifically designated directories such as /var/www/html/
open_basedir="/home/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/"

改成:

open_basedir="/home/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/:'/usr/share/phpmyadmin/tmp/"  ;<== changing to this solved the prblem

您只需要在错误消息('/ usr / share / phpmyadmin / tmp /')和open_basedir选项结尾处添加自己的目录:在添加分隔符之前,请不要忘记放置分隔符

我的答案交给centos 7 Sentora用户,
必须在Sentora的phpMyadmin下创建
tmp文件夹,如下所示

cd /etc/sentora/panel/etc/apps/phpmyadmin/
sudo mkdir tmp

创建文件夹后,请确保您授予Apache对tmp文件夹的访问权限

chown -R apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/

本文地址:http://php.askforanswer.com/gengxindaov4-8-0houphpmyadminzhongchuxiancuowu-cfg-tempdir-tmp-wufafangwen.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!