오늘 내 블로그에 웹페이지에 사진을 올렸는데, "업로드한 파일을 /home/wwwroot/wp-content/uploads/2013/으로 이동할 수 없습니다."라는 결과가 나왔습니다. 권한 문제라서 파일을 수정했더니 작동이 되었는데, 권한을 777로 변경했는데 여전히 글을 쓸 수 없고 사진도 업로드할 수 없습니다.
간단히 말해서, 내 웹 사이트의 루트 디렉터리 폴더에 대한 권한을 확인했는데 www, www가 표시되었고 ps aux|grep nginx를 사용하여 nginx 서브루틴을 none으로 실행한 ps aux|grep php-fpm에서도 none이 표시되었음을 알 수 있었습니다. 동시에 내 웹사이트에 있는 다른 파일과 폴더의 권한이 루트, 루트라는 것을 발견했습니다. 이는 지난번에 루트로 직접 복사했기 때문일 수 있으므로 루트의 파일을 none으로 수정할 수 없습니다.
방법은 다음과 같습니다.
1단계:
먼저 nginx 및 php-fpm 하위 프로그램의 실행 ID를 www로 변경하고 사용자 그룹 그룹을 www로 변경합니다.
nginx.conf 파일을 수정하고nonobody 사용자를 www www;
로 변경합니다.
실행 명령:
service nginx restart //重启nginx
php-fpm.conf 수정 및 교체
user = nobody group = nobody
다음으로 변경됨:
user = www group =www
실행 명령: service php-fpm reload //php-fpm 다시 시작
2단계:
모든 폴더와 파일을 www, www로 변경
#chown -R www:www /wwwroot
이미지를 다시 업로드하면 업로드가 성공했고 문제가 해결되었다는 메시지가 표시됩니다.
인터넷에는 사진 이름을 영어로 바꾸거나 폴더를 777로 바꾸는 등의 다른 방법도 있습니다. 실제로 권한이 777인데도 업로드가 안되는 경우가 많습니다. 파일 소유자가 문제인지 생각해 볼 수 있습니다.