Estou recebendo este erro em um upload de avatar no meu site. Nunca recebi isso antes e nada foi alterado recentemente para que eu comece a receber esse erro ...
Warning: is_writable() [function.is-writable]:
open_basedir restriction in effect.
File(/) is not within the allowed path(s):
php
filesystems
Webnet
fonte
fonte
Respostas:
Modifique as
open_basedir
configurações em sua configuração de PHP (consulte Configuração de tempo de execução ).A
open_basedir
configuração é usada principalmente para evitar que scripts PHP de um determinado usuário acessem arquivos na conta de outro usuário. Portanto, normalmente, quaisquer arquivos em sua própria conta devem ser lidos por seus próprios scripts.Exemplo de configurações via
.htaccess
se o PHP é executado como módulo Apache em um sistema Linux:<DirectoryMatch "/home/sites/site81/"> php_admin_value open_basedir "/home/sites/site81/:/tmp/:/" </DirectoryMatch>
fonte
/my/cutsom/dir/
. Não sei por que pensei.php_admin_value
em.htaccess
arquivos . Você não pode usar DirectoryMatch em arquivos .htaccess . (Que tipo de medida de segurança seriaopen_basedir
se pudesse apenas ser desativado?)Modifique as configurações de open_basedir em sua conta de hospedagem e defina-as como nenhuma. Encontre a configuração open_basedir fornecida na área 'Configurações do PHP' do seu Plesk / cPanel. Defina-o como 'nenhum' na lista suspensa lá. Eu os mostrei na imagem do painel Plesk.
fonte
Para resolver esse erro, você deve editar o arquivo httpd.conf. Muito antes de poder ser visto no phpinfo na diretiva da seção apache2handler Server Root. Por exemplo, no meu caso, desta forma - /etc/httpd/httpd.conf. Abra o arquivo httpd.conf, encontre a menção do parâmetro open_basedir. E defina como nenhum. ( php_admin_value open_basedir nenhum )
fonte
open_basedir
configuração no meuphp.ini
. (Arch Linux no Raspberry Pi com php 5)Se você estiver executando isso com
php file.php
. Você precisa editarphp.ini
Encontre este arquivo:E anexe o caminho do arquivo à
open_basedir
propriedade:open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/run/media/andrew/ext4/protected
fonte
Para mim, o problema era incorreto / faltavam valores de configuração para o servidor Plesk executando tudo. Acabei de seguir as instruções aqui: http://davidseah.com/blog/2007/04/separate-php-error-logs-for-multiple-domains-with-plesk/
Você pode configurar o PHP para ter um arquivo de log de erros separado para cada definição de VirtualHost. O truque é saber exatamente como configurá-lo, porque você não pode tocar na configuração diretamente sem quebrar o Plesk. Cada nome de domínio em seu (dv) tem seu próprio diretório em / var / www / vhosts. Um diretório típico tem os seguintes diretórios de nível superior:
cgi-bin/ conf/ error_docs/ httpdocs/ httpsdocs/ ...and so on
Você deseja criar um arquivo vhost.conf na pasta conf / do diretório do domínio com as seguintes linhas:
php_value error_log /path/to/error_log php_flag display_errors off php_value error_reporting 6143 php_flag log_errors on
Altere o primeiro valor para corresponder à sua instalação real (usei /tmp/phperrors.log). Depois de terminar de editar o arquivo vhost.conf, teste a configuração do console com:
apachectl configtest …or if you don’t have apachectl (as Plesk 8.6 doesn’t seem to)… /etc/init.d/httpd configtest
E, finalmente, diga ao Plesk que você fez essa alteração.
fonte
O caminho ao qual você está se referindo está incorreto e não está dentro do diretórioRoot de sua área de trabalho. Tente construir um caminho absoluto para o arquivo que você deseja acessar, onde agora você provavelmente está usando um caminho relativo ...
fonte
se você tiver este tipo de problema com ispconfig3 e obteve um erro como este
Para resolver (no meu caso), basta definir o PHP para SuPHP no painel do site do ispconfig3
Espero que ajude alguém :)
fonte
Tive este problema @ um dos meus sites wordpress após atualizar e / ou mudar :)
Verifique na tabela de banco de dados 'wp_options' o 'upload_path' e edite-o adequadamente ...
fonte
Se usado ispconfig3:
fonte
Se você estiver executando uma pilha PHP IIS e tiver este erro, geralmente é uma correção de permissão rápida.
Se você administra o servidor Windows sozinho e tem acesso, tente este PRIMEIRO:
Navegue até a pasta que está incomodando você ao escrever e clique com o botão direito nela> abrir propriedades> segurança.
Veja quais usuários têm acesso à pasta, quais possuem somente leitura e quais possuem full. Você tem um grupo que está bloqueando a gravação?
A correção será específica para a configuração do IIS. Você está usando autenticação anônima com IUSR de usuário específico ou com a identidade do pool de aplicativos?
De qualquer forma, você vai acabar adicionando uma nova permissão de gravação completa para um de IUSR, IIS_IUSRS ou sua identidade de pool de aplicativos - como eu disse, isso vai variar dependendo da sua configuração e como você deseja fazer isso, você pode ir até a toca do coelho do Google neste (uma dessas post - IIS_IUSRS e permissões IUSR no IIS8 ) Para mim, eu uso anon com minha identidade de pool de aplicativos para que eu possa sair
MACHINE_NAME\IIS_IUSRS
com leitura / gravação completa em qualquer temp ou upload pastas.Não preciso adicionar nada extra ao meu
open_basedir =
arquivo php.ini.fonte
Além da resposta de @yogihosting , se você estiver usando DirectAdmin , siga estas etapas:
admin
por padrão.Insira as configurações que deseja alterar na área de texto na parte superior da página. Você deve considerar o arquivo de configuração existente e modificar os valores com base nele. Por exemplo, se você vir que
open_basedir
está definido dentro de um<Directory>
, talvez você deva colocar sua alteração na<Directory>
tag relacionada :<Directory "/path/to/directory"> php_admin_value open_basedir none </Directory>
Após fazer as alterações necessárias, clique no botão "Salvar".
No entanto, há outra maneira de editar o arquivo de configuração:
Cuidado : tenha cuidado e siga as etapas a seguir por sua própria conta e risco, pois você pode encontrar erros ou isso pode levar ao tempo de inatividade. A forma recomendada é a anterior, pois evita que você modifique o arquivo de configuração indevidamente e mostra o erro.
/usr/local/directadmin/data/users
. Dos usuários listados, vá para um relacionado ao domínio que você deseja alterar.Aqui está um
httpd.conf
arquivo. Faça um backup dele:Agora edite o arquivo de configuração com o editor de sua escolha. Por exemplo, edite existente
open_basedir
paranone
. Não tente remover coisas, ou você pode enfrentar um tempo de inatividade. Salve o arquivo após a edição.Reinicie o servidor da web Apache usando uma das seguintes maneiras (use
sudo
se necessário):Se encontrar algum erro, substitua o arquivo de configuração principal pelo arquivo de backup e reinicie o servidor da web.
Novamente, a primeira solução é a preferida e você não deve tentar o segundo método na primeira vez. Conforme observado no aviso, a vantagem da primeira forma é que ela evita salvar seus itens mal configurados.
Espero que ajude!
fonte
Estou usando um Apache vhost -File para executar PHP com opções ini específicas do aplicativo no meu servidor windows. Portanto, eu uso a opção -d do comando php.
Estou definindo o open_basedir para cada aplicativo como uma dessas opções.
Eu precisei definir vários urls como open_basedir, incluindo um caminho UNC , e a sintaxe para este caso foi um pouco difícil de encontrar. Você deve separar os caminhos com ponto- e- vírgula e se seu primeiro caminho começar com uma letra de unidade, você pode ter que iniciar a lista com um ponto-e-vírgula também. Pelo menos é o que funciona para mim.
Exemplo:
php.exe -d open_basedir=;d:/www/applicationRoot;//internal.unc.path/ressource/
fonte
Basta pesquisar
no php.ini e desabilite-o. Essa é a solução mais simples para resolver esse problema.
Antes das mudanças
open_basedir =
Após as mudanças
;open_basedir =
Ps - Após as alterações não esqueça de reiniciar o servidor.
Aproveitar ;)
fonte