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(/.*)?"
.
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?
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(/.*)?"
.
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.
Tags permissions php rhel apache-httpd