LinuxMint의 WordPress: 디렉터리를 만들거나 파일을 쓸 수 없습니다.

LinuxMint의 WordPress: 디렉터리를 만들거나 파일을 쓸 수 없습니다.

저는 Apache2, PHP, MySQL과 함께 Linux Mint를 실행합니다. public_html사용자 모듈을 사용하고 그 모듈에서 PHP 스크립트를 실행할 수 있도록 Apache 모듈을 활성화했습니다 . 내 (예:) public_html에 WordPress를 설치했지만 ~/public_html/wordpress완전히 실행되지 않습니다.

배경 이미지나 헤더 이미지를 변경하려고 하면 업로드된 콘텐츠가 저장될 디렉터리(연/월 또는 월/년)를 생성할 수 없다는 오류 메시지가 나타납니다.

public_html분명히 내 웹서버에는 디렉터리 나 그 하위 디렉터리(아래 디렉터리 중 일부 ) 를 생성할 수 있는 권한이 없으며 ~/public_html/wordpress아마도 파일도 생성하지 않을 것입니다.

그래서 내 선택이 무엇인지 궁금합니다. 웹 서버가 쓸 수 있도록 추가해야 하는 모듈이나 수정해야 하는 구성 파일이 있습니까? 아니면 - 및 해당 하위 디렉터리의 소유자 및/또는 그룹을 변경해야 합니까 public_html(하위 디렉터리가 동일한 소유자/그룹에 속하도록 하는 방법이 있습니까)? ...내 페이지를 변경하는 것을 막지는 못할 것 같습니다. 제안, 제안 및 모범 사례를 환영합니다.

WordPress를 루트로 설치하면 문제가 덜할 수 있다는 것을 알고 있지만 /var/www이 솔루션을 사용하지 않는 것이 좋습니다.

답변1

분명히 내 웹 서버에는 public_html 또는 그 하위 디렉터리(~/public_html/wordpress 아래의 일부 디렉터리와 같은)에 디렉터리를 생성할 수 있는 권한이 없으며 아마도 파일을 생성할 수 있는 권한도 없을 것입니다.

실제로 이것이 문제일 가능성이 높습니다. 그러나 이 디렉터리에서 자신을 잠글 필요는 없습니다. 이 디렉터리에 파일을 보관하고 웹 서버가 여기에 쓸 수 있도록 허용하는 옵션이 많이 있습니다.

  1. www-data그룹 에 자신을 넣은 sudo gpasswd -a $(whoami) www-data다음 public_html 디렉토리의 그룹을 다음으로 변경하십시오 sudo chown -R $(whoami):www-data ~/public_html. 이 디렉토리는 귀하와 웹 서버 간에 공유됩니다.

  2. 고정 비트 사용: 웹 서버가 해당 디렉토리에 파일을 쓰는 동시에 폴더 그룹을 운반할 수 있으므로 사용자는 업로드 디렉토리에 계속 액세스할 수 있습니다: chmod g+rws,o+rwx ~/public_html/wordpress/wp-content.

  3. ACL을 사용하여 서버가 디렉토리에 쓸 수 있도록 높은 수준의 권한을 지정합니다 setfacl -m u:www-data:rwx ~/public_html/wordpress/wp-content. 그 길로 가신다면 꼭 읽어보시길 권합니다수동ACL의 경우 매우 강력하고 많은 작업을 수행할 수 있기 때문입니다.

경고하다

그러나 위의 솔루션 중 어느 것도 프로덕션 환경에 적합하지 않습니다. PHP 코드를 실행할 수 있는 서버의 모든 사용자에게 웹 서버 권한도 부여하여 잠재적으로 악성 파일을 업로드 디렉터리에 배치할 수 있기 때문입니다. 확실하게 하다오직업로드 디렉토리를 쓰기 가능하게 만들고 업로드 디렉토리에서 코드 실행을 비활성화하는 .htaccess를 배치하십시오. 프로덕션 서버의 경우 suexec, php-fpm 또는 웹 서버 외부에서 PHP 코드를 실행하는 다른 방법을 사용하고 PHP를 사용자의 시스템 사용자로 실행하는 것이 좋습니다.

관련 정보