A permissão para o PHP move_uploaded_file foi negada apenas no RHEL

0

meu script PHP está sendo usado para registrar um novo usuário com sua foto.

No Debian, estava tudo bem, mas quando eu instalei no meu servidor RHEL, os problemas começaram.

Diretório / tmp / rights são 777 e "upload /" tem 777 com apache chown: apache.

abaixo é o fragmento do error_log do httpd:

[Wed Jun 07 15:25:29.363766 2017] [:error] [pid 22867] [client 10.31.242.73:49624] PHP Warning: move_uploaded_file(upload/1268_org.jpg): failed to open stream: Permission denied in /var/www/html/inc/classes/user.inc.php on line 76, referer: http://10.31.242.72/index2.php?mnu=10041

[Wed Jun 07 15:25:29.363808 2017] [:error] [pid 22867] [client 10.31.242.73:49624] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpmY6k8j' to 'upload/1268_org.jpg' in /var/www/html/inc/classes/user.inc.php on line 76, referer: http://10.31.242.72/index2.php?mnu=10041

Eu não tenho ideia, o que há de errado nisso. Talvez eu tenha pulado alguma coisa?

    
por Pretenderus 07.06.2017 / 16:43

2 respostas

0

Encontrei a solução em este site Foi culpa de SELinux . Acabei de adicionar httpd_sys_rw_content_t ao diretório de upload digitando: semanage fcontext -a httpd_sys_rw_content_t "/var/www/html/upload(/.*)?" .

    
por 13.06.2017 / 14:06
0

Você chdir() antes de mover o arquivo? Se você não fez isso, o arquivo foi movido para 'upload / 1268_org.jpg', mas em relação a / var / www / html / inc / classes, o que resulta na mudança para /var/www/html/inc/classes/upload/1268_org.jpg , e definitivamente não é seu local pretendido.

Solução: chdir antes de se mover ou usar o caminho absoluto.

    
por 07.06.2017 / 18:01