phpMyAdmin
在v4.7.9中运行良好。现在在今天更新到v4.8.0之后(将新的phpmyadmin
文件夹替换为新文件夹)我在phpMyAdmin中收到此消息:
$ cfg [' TempDir'](。/ tmp /)无法访问。 phpMyAdmin无法使用 缓存模板,因此会很慢。
我添加了文件夹./tmp/
,如下所示:/usr/share/tmp
phpMyAdmin已开启:/usr/share/phpmyadmin
这并没有改变任何事情。
谁知道这个错误?我该怎么办?
答案 0 :(得分:41)
解决方案是创建一个名为tmp
的文件夹,如下所示:/usr/share/phpmyadmin/tmp
。
还要确保运行Web服务器的用户(或组)(例如Apache)具有对新创建的tmp文件夹的写访问权。因此,将所有权更改为该用户或为所有用户添加写访问权限。后者可能不太合适。
答案 1 :(得分:12)
简单修复是在phpmyadmin目录中创建tmp目录并将权限设置为777
mkdir tmp && chmod 777 tmp
然后
更新你的config.inc.php文件添加该行
$cfg['TempDir'] = 'tmp';
答案 2 :(得分:11)
当我用最新版本(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']
。
答案 3 :(得分:10)
在我的情况下,我添加了
$cfg['TempDir'] = '/usr/share/phpmyadmin/temp';
到
的config.inc.php phpmyadmin文件夹中的文件
希望它会帮助某人
答案 4 :(得分:5)
在phpMyAdmin安装的基本目录中创建一个tmp
文件夹(例如/usr/share/phpmyadmin/tmp
),并确保用户可以在其下运行PHP。
答案 5 :(得分:2)
$cfg['TempDir']
Type: string
Default value: './tmp/'
可以存储临时文件的目录的名称。 它目前用于多种用途:
模板缓存可加快页面加载速度。 ESRI Shapefiles导入,请参见6.30导入:如何导入ESRI Shapefile?。
要解决open_basedir对上传文件的限制,请参阅1.11从导入选项卡上传文件时我收到'open_basedir restriction'。
此目录应具有尽可能严格的权限,因为访问此目录所需的唯一用户是运行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,但它可能会给其他用户带来系统读取和写入此目录中数据的风险。
答案 6 :(得分:2)
创建一个临时目录,该目录归Web服务器用户所有且仅限于此。 不不要将其放置在phpMyAdmin Webroot内。 (在此示例中,网络服务器以apache
的身份运行):
mkdir -p /var/tmp/phpMyAdmin
chown apache:apache /var/tmp/phpMyAdmin
chmod 700 /var/tmp/phpMyAdmin
接下来,在phpMyAdmin的TempDir
中设置config.inc.php
:
$cfg['TempDir'] = '/var/tmp/phpMyAdmin';
任何建议您创建/usr/share/phpmyadmin/tmp
的答案都在倡导不良的安全做法。临时目录通常是这样,并明确声明了in the official phpMyAdmin documentation:
出于安全原因,所有目录都应在树外 由网络服务器发布。
答案 7 :(得分:2)
好吧,在我的情况下,当我使用ubuntu 18.04时发生了此错误。 您所需要做的只是进入安装目录(在ubuntu中-opt / lampp / phpmyadmin) 并创建一个具有所有合适的读/写权限的tmp文件夹。
在使用ubuntu时,请遵循以下步骤-
通过在cmd-中键入以下命令1.go到PMA安装目录
cd opt / lampp / phpmyadmin
2。然后键入以下命令-
sudo mkdir tmp && chmod 777 tmp
然后您就完成了.. !! 希望对您有所帮助。
答案 8 :(得分:1)
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并重新登录
答案 9 :(得分:1)
我遇到了同样的问题,但是以上答案都无法解决。
在我的情况下,我的php安全设置是如此严格,以保护php不能访问位于我的open_basedir
的{{1}}中定义的范围之外的目录(我是从安全摘要中永久添加的,而且这些设置也可以位于/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/"
您只需要在错误消息('/ usr / share / phpmyadmin / tmp /')和open_basedir="/home/:/etc/phpMyAdmin/:/var/lib/phpMyAdmin/:'/usr/share/phpmyadmin/tmp/" ;<== changing to this solved the prblem
选项的末尾添加您自己的目录。不要忘记在添加分隔符open_basedir
之前将其放置。
答案 10 :(得分:1)
在phpmyadmin文件的根目录中创建tmp
文件夹
除此之外,您还需要提供对该文件夹的所有权限。这就是我在Windows中所做的。
答案 11 :(得分:1)
我在使用“ temp”目录时遇到了类似的问题。解决方案是将“ twig”目录的所有者和组(在“ temp”内部)更改为“ apache”(所有者和组)
答案 12 :(得分:1)
我刚将vendor_config.php
文件更改为define('TEMP_DIR', '/tmp/');
而不是define('TEMP_DIR', './tmp/');
这似乎有效。
答案 13 :(得分:1)
在我的案例中[MacOsElCapitán/ portuguese],消息是:
The $cfg['TempDir'] (./temp/) is not accessible
我的解决方案,在xamppfiles / phpmyadmin / config.inc.php中:
$cfg['TempDir'] = './temp/'; to $cfg['TempDir'] = '../temp/';
也就是说,我只是在路径上添加了一点...工作没问题。
答案 14 :(得分:0)
只需转到phpmyadmin文件夹并输入以下代码
$ cfg ['TempDir'] ='./tmp /';
然后检查tmp文件夹是否存在到phpmyadmin中(如果不存在),然后创建tmp文件夹并对其授予读取和正确权限。
答案 15 :(得分:0)
“我的答案”送给centos 7 Sentora用户, tmp 文件夹必须在Sentora的phpMyadmin下创建,如下所示
cd /etc/sentora/panel/etc/apps/phpmyadmin/
sudo mkdir tmp
创建文件夹后,请确保您授予Apache对tmp文件夹的访问权限
chown -R apache /etc/sentora/panel/etc/apps/phpmyadmin/tmp/
答案 16 :(得分:0)
我有同样的错误信息。我在使用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
在纳米编辑器中,键入:
<?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权限。
希望对您有帮助!
答案 17 :(得分:0)
对于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';
干杯:)
答案 18 :(得分:0)
如果文件夹已经存在,例如从以前的安装:
chmod -R 777 PATH_TO_FOLDER
因此子目录的权限也会被修改(递归)。
答案 19 :(得分:-2)
对我来说,在/opt/lampp/
中发现了phpmyadmin目录
/opt/lampp/phpmyadmin/
内打开终端root
命令为终端授予sudo su
特权。mkdir -p /tmp/
)中,按Enter键chmod 777 /tmp
phpmyadmin
目录中有一个文件config.inc.php
。使用同一终端打开它。$cfg['TempDir'] = /tmp;
并保存。