첨부파일 업로드시 보안정책상 ...
아파치+php-fpm 환경 작업하다 발생되어 xe타운 기웃거리던 중 해결했습니다.
여러 글에서 files 폴더 707 또는 777로 권한 변경해보라는 글들 참고했지만 문제가 해결되지 않았습니다.
php error_log 확인 해보니 다음과 같은 메세지 표시되어 php tmp 폴더 권한 변경해주고 해결완료했습니다.
[12-Aug-2020 23:15:47 UTC] PHP Warning: Unknown: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0
[12-Aug-2020 23:15:47 UTC] PHP Warning: Unknown: POST data can't be buffered; all data discarded in Unknown on line 0
[12-Aug-2020 23:15:50 UTC] PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0
[12-Aug-2020 23:15:47 UTC] PHP Warning: Unknown: POST data can't be buffered; all data discarded in Unknown on line 0
[12-Aug-2020 23:15:50 UTC] PHP Warning: File upload error - unable to create a temporary file in Unknown on line 0
chcon -R -h -t httpd_sys_script_rw_t /var/opt/remi/php70/tmp
chown -R apache:apache /var/opt/remi/php70/tmp
chown -R apache:apache /var/opt/remi/php70/tmp
그런 후 php-fpm 재시작.
다른분들에게도 도움되셨으면.. 하는 바램이..
댓글 4
폴더 소유권은 기본으로 apache로 되어 있을 텐데,
php-fpm에 pool을 추가하면서 다른 유저 권한으로 실행하도록 해두면 그게 또 엉키더라구요.
저는 그냥 각 유저의 홈폴더 내에 세션 저장소, 임시폴더 등을 모두 넣어버립니다. ㅎㅎ
remi 레포가 기본으로 사용하는 괴랄한 경로의 세션 저장소를 그대로 쓸 필요가 없는데다가,
selinux도 어차피 홈폴더에 읽기/쓰기 권한을 줘야 하니까요.
기진곰님 말씀처럼 apache나 각 유저의 권한을 요하는 리소스들을 따로 분리하는것도 좋은 해결책이라 생각합니다.