Acessa o arquivo fora do documento raiz

2

Estou tentando escrever em um arquivo que está fora da raiz do documento, que é /var/www/html . O arquivo que eu quero acessar é /home/user/files/folder1/info.txt , mas meu arquivo PHP não pode abri-lo (ele até diz que não existe, eu verifiquei com file_exists ). Eu tentei chown a pasta /home/user/files recursivamente ( chown -R apache /home/user/files ) e também definir as permissões para 777 no arquivo info.txt, mas nada parece funcionar.

Estou no CentOS e no Apache2.

    
por Ivan 10.07.2011 / 21:22

3 respostas

2

Na página httpd_selinux(8) man:

   SELinux policy for httpd can be setup to not allowed  to  access  users
   home  directories.   If you want to allow access to users home directo-
   ries you need to set the httpd_enable_homedirs boolean and  change  the
   context of the files that you want people to access off the home dir.

   setsebool -P httpd_enable_homedirs 1
   chcon -R -t httpd_sys_content_t ~user/public_html
    
por 10.07.2011 / 22:11
0

Embora eu não esteja familiarizado com o selinux, o outro pôster pode estar no caminho certo, mas isso também pode ajudar:

  • Crie um link simbólico do arquivo para o diretório /var/www/html/
  • Verifique se a opção FollowSymLinks está ativada - você pode fazer isso no principal httpd.conf ou em .htaccess in /var/www/html com esta linha: Options FollowSymLinks
por 10.07.2011 / 22:22
0

Este é um tiro no escuro, mas o seu php pode ter sido endurecido dentro do arquivo php.ini . Procure no seu arquivo php.ini por algo como open_basedir = /path/to/web/root .

open_basedir limita todas as operações de arquivo PHP ao diretório listado e abaixo.

    
por 10.07.2011 / 23:48