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