Não é possível fazer upload do arquivo .sql

1

Ambiente:

  • Ubuntu 14.04 (máquina de desenvolvimento local em execução no VirtualBox)
  • Apache / 2.4.7 (Ubuntu)
  • phpMyAdmin 4.0.10deb1

Estou recebendo o erro abaixo. Eu tenho lido o manual e pesquisando posts, mas nenhuma das sugestões está ajudando. Eu sou muito novo no Linux e Apache, então eu poderia não estar entendendo nada.

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

O erro está chegando no phpMyAdmin. Eu tentei fazer upload através da linha de comando e ele apenas trava até que eu pare.

Eu fiz as seguintes alterações em /etc/php5/apache2/php.ini

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

E tentei

  1. DocumentRoot alterado em /etc/apache2/sites-available/000-default.conf
  2. tentei configurar o php.ini - upload_tmp_dir
  3. tentou adicionar a pasta em que o arquivo .sql está no apache.conf php_admin_value open_basedir - isso apenas alterou a mensagem de erro.

Uma coisa que fiz há muito tempo foi que o apache fosse executado na minha conta de usuário. Eu estou querendo saber se isso não é o problema.

    
por klequis 30.06.2014 / 04:50

2 respostas

2

Veja o primeiro link em @Litizia comentário acima para o post que me ajudou a resolver o problema.

Alterações específicas no /etc/phpmyadmin/apache.conf que resolveram o problema para mim são:

under <IfModule mod_php.c>

Primeiro:

  

alterar em php_value include_path .    para:
php_value include_path .:/usr/share/php:/usr/share/pear

Segundo:

  

Alterar
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/
para:
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/

    
por klequis 02.07.2014 / 20:48
0

Seguindo a sugestão neste link , recebemos a resposta.

Vamos ver algumas explicações.

De acordo com a documentação do php open_basedir :

  

Quando um script tenta acessar o sistema de arquivos, por exemplo, usando   include, ou fopen (), a localização do arquivo é verificada. Quando o   arquivo está fora da árvore de diretórios especificada, o PHP se recusará a   acessá-lo.

Para permitir que seu script acesse / tmp e outro caminho que você precisa, modifique seu /etc/phpmyadmin/apache.conf e adicione:

  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/ 

Sempre de acordo com a documentação do php include_path :

  

Especifica uma lista de diretórios onde o require, include, fopen (),   As funções file (), readfile () e file_get_contents () procuram por arquivos.   O formato é como a variável de ambiente PATH do sistema: uma lista de   diretórios separados por dois pontos no Unix ou ponto-e-vírgula no Windows.

Usando o arquivo de configuração do apache é possível definir a variável usando a diretiva php_value :

    php_value name value 

No seu caso, adicione:

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

No final, reinicie seu apache.

    
por Lety 02.07.2014 / 21:23