Не удается загрузить файл .sql

Среда:

  • Ubuntu 14.04 (локальная машина разработчика, работающая под VirtualBox)
  • Apache / 2.4.7 (Ubuntu)
  • phpMyAdmin 4.0.10deb1

Я получаю сообщение об ошибке ниже. Я читаю руководство и ищу сообщения, но ни одно из предложений не помогает. Я довольно новичок в Linux и Apache, так что я ничего не понимаю.

Warning: Unknown: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/) in Unknown on line 0

Warning: File upload error - unable to create a temporary file in Unknown on line 0

No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16

Ошибка приходит от phpMyAdmin. Я пытался загрузить через командную строку, и он просто зависает, пока я не выйду.

Я внес следующие изменения в /etc/php5/apache2/php.ini

post_max_size = #>db size = 60M
memory_limit = #>post_max_size = 256M
upload_max_filezise = #<post_max_size 20M

и попробовал

  1. Изменен DocumentRoot в /etc/apache2/sites-available/000-default.conf
  2. попытался установить php.ini - upload_tmp_dir
  3. попытался добавить папку, в которой находится файл .sql, в apache.conf php_admin_value open_basedir - это только изменило сообщение об ошибке.

Одна вещь, которую я сделал давным-давно, состояла в том, чтобы запустить apache под моей учетной записью. Мне интересно, если это не проблема.

1
задан 2 July 2014 в 23:30

2 ответа

См. первую ссылку в комментарий @Litizia выше для сообщения, которое помогло мне решить проблему.

Определенные изменения в /etc/phpmyadmin/apache.conf, который решил проблему для меня:

under <IfModule mod_php.c>

Сначала:

изменение
php_value include_path . к:
php_value include_path .:/usr/share/php:/usr/share/pear

1118-секундный:

Изменение
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/
к:
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/:/usr/share/php:/tmp/

2
ответ дан 2 July 2014 в 23:30

После предложения в этом ссылка мы получаем ответ.

Позволяют нам видеть некоторые объяснения.

Согласно php документации open_basedir:

, Когда сценарий пытается получить доступ к файловой системе, например, использование включает, или fopen (), местоположение файла проверяется. Когда файл будет вне указанного дерева каталогов, PHP откажется получать доступ к нему.

для разрешения сценария доступу/tmp и другому пути, в котором Вы нуждаетесь, измените свой/etc/phpmyadmin/apache.conf и добавьте:

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

Всегда согласно php документации include_path:

Определяет список каталогов, где требовать, включайте, fopen (), файл (), readfile () и file_get_contents (), функции ищут файлы. Формат похож на переменную окружения PATH системы: список каталогов, разделенных с двоеточием в Unix или точкой с запятой в Windows.

Используя апачский конфигурационный файл возможно установить переменную с помощью директивы php_value :

    php_value name value 

В Вашем случае, добавьте:

   php_value include_path .:/usr/share/php:/usr/share/pear

В конце, перезапустите своего апача.

0
ответ дан 2 July 2014 в 23:30

Другие вопросы по тегам:

Похожие вопросы: