簡體   English   中英

phpMyadmin無法導入文件,錯誤:open_basedir>已啟用,而無法訪問/ tmp目錄

[英]phpMyadmin can’t import file with error: open_basedir > enabled without access to the /tmp directory

在Debian上安裝apache-mysql-php之后。 我無法通過phpMyAdmin將.sql文件導入MySQL。 錯誤提示:

無法移動上載的文件,因為服務器已啟用open_basedir,而無法訪問/ tmp目錄(用於臨時文件)。

/etc/php5/apache2/php.ini/etc/php5/cli/php.ini中都注釋了open_basedir ,並且safe_mode為OFF。

我將777權限設置為/var/tmp仍然收到錯誤。

當您說open_basedir被注釋掉時, phpinfo()的輸出是什么? 那里應該有一個open_basedir設置。 也許有一個.htaccess文件(或另一個php.ini配置)在某個地方設置了open_basedir 就是說,根據官方的phpMyAdmin文檔

從版本2.2.4開始,phpMyAdmin支持具有open_basedir限制的服務器。 但是,您需要創建臨時目錄並將其配置為$ cfg ['TempDir']。 上載的文件將移動到該位置,並且在執行SQL命令后將其刪除。

因此,盡管您說open_basedir被注釋掉了-暗示它沒有被使用-也許您應該打開phpMyAdmin配置並設置cfg_TempDir指向/var/tmp config.php文件位於Ubuntu 12.04中:

/usr/share/phpmyadmin/config.inc.php

請注意,錯誤消息指向/tmp/但是您指向的是/var/tmp/

此外,社區Wiki參考中似乎涵蓋了PHP相關錯誤的問題:

解決方法通常是更改PHP配置,相關設置稱為open_basedir。

有時使用了錯誤的文件或目錄名稱,然后使用正確的名稱進行修復。

因此,您可以調整php.ini使其具有以下設置:

open_basedir "/var/tmp/:/tmp/:/"

並注意,在類似Web的問題中唯一重要的php.ini/etc/php5/apache2/php.ini /etc/php5/cli/php.ini所在的CLI php.ini嚴格供CLI使用,與Apache PHP模塊無關。

我有同樣的問題,並解決如下:
我打開文件/etc/phpmyadmin/apache.conf並找到一個帶有參數的標簽。 最后一個是open_basedir

php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/

我只是在/ tmp /前面加了一個,就解決了我的問題

php_admin_value open_basedir /tmp/:/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/

當然,那之后我不得不重新啟動apache,但是僅此而已。

這是php.ini文件的問題。 問題是未設置open_basedir 您必須在php.ini設置,並將upload_tmp_dir設置在open_basedir

Windows中存在相同的問題。 可以通過設置open_basedir = C:\\Apache24\\htdocs (使用htdocs文件夾路徑)和upload_tmp_dir = C:\\Apache24\\htdocs\\tmp

上述Viter Rod答案的附錄是,您還必須授予對tmp文件夾的完全訪問權限。 因此運行:

須藤chmod 777 tmp /

在那之后它應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM