/ var / www 및 wordpress에 대한 올바른 권한


41

LAMP 서버를 설정했으며 네트워크를 통해 (IP 주소를 통해) 웹 브라우저에서 그리고 dyndns를 사용하여 외부에서 SSH를 통해 "작동"페이지에 액세스 할 수 있습니다.

/ var / www / wordpress1 / var / www / wordpress2 등의 하위 디렉토리에있는 일부 Wordpress 프로젝트가 있습니다. WP를 설정하기 위해 브라우저에서이 하위 디렉토리에 액세스 할 수 없습니다. 브라우저의 컨텐츠. 브라우저에 403 Forbidden 오류가 발생합니다.

이것이 권한 문제라고 가정합니다. 다음에 대한 권한에 대한 적절한 설정을 알려주십시오.

  1. 개발자와 저에게 읽기 / 쓰기를 허용하십시오.
  2. WP 설정 및 작업 수행
  3. 방문자가 웹을 통해 사이트에 액세스 할 수 있도록합니다.

또한 하위 폴더가 실제로 다른 내부 hdd의 폴더에 대한 simlinks라고 언급해야합니다.

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

다음은 사용 결과입니다 chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

여전히 브라우저를 통해 액세스 할 수 없습니다.


명령의 출력을 게시하십시오 ls -la /var/www.
SirCharlo

귀하의 질문에 해당 정보를 입력하십시오!
Jorge Castro

좋아, 코드를 게시하는 방법을 기억하는 데
잠시 시간이 걸렸다

좋아요, 시도해보세요chown -R www-data:www-data /var/www
SirCharlo

2
귀하의 문제는 지금 귀하가 링크를 사용하고 있다고 생각합니다. Apache는 링크를 따르지 않습니다. 당신이 할 일은 해당 파일을 / var / www로 옮기고 vitrualhosts를 사용하도록 아파치를 구성하는 것입니다. Apache (루트 디렉토리)를 올바르게 구성 하려면 help.ubuntu.com/10.04/serverguide/httpd.html 대체 항목을 참조하십시오 /hdd/web/wordpress. 링크를 사용하도록 아파치를 구성 할 수 있지만 권장하지는 않습니다. 또한 help.ubuntu.com/community/WordPress를
Panther

답변:


81

먼저, 사용자 이름이 www-data그룹에 포함되어 있는지 확인해야합니다 . 그렇지 않은 경우 사용자 이름을 www-data그룹으로 추가 할 수 있습니다

sudo adduser $USER www-data

그런 다음 / var / www의 소유권을 사용자 이름으로 변경해야합니다

sudo chown $USER:www-data -R /var/www

다음 단계, 일반적인 방법으로 , 보안상의 이유로 권한을 777로 변경하지 말고 권한을 755 (rwxr-xr-x)로 변경해야합니다.

sudo chmod u=rwX,g=srX,o=rX -R /var/www

워드 프레스 또는 라 라벨 또는 다른 프레임 워크에 대한 특정 권한 과 관련 하여 문서를 각각 읽을 수 있습니다.

그것이 도움이되기를 바랍니다 ...


1
나를 위해 작동하지 않았다, 나는 사용에 추가sudo chown www-data:www-data -R mywordpressdirectory/
루이

소유권을 변경 한 후에도 권한을 변경해야합니다. 755로 권한을 변경하셨습니까?
변신

1
그는 함께했다 chmod. 그는 www.data에서 새 파일을 소유하기 위해 스티키 비트로 755로 권한을 변경하고 있습니다.
Zachary Dahan

내가 찾을 수있는 가장 좋은 설명은 짧고 달콤합니다. 감사.
Banago

1
따라서 WordPress에 쓰기 권한이 없으므로 관리자 패널에서 플러그인 / 테마 등을 설치 / 제거 할 수 없습니다.
Igor Skoldin

3

분명히 이것은 Ubuntu 서버 안내서에서 권장되는 방법입니다.

11 장. 웹 서버.

1.4. 쓰기 권한 공유

둘 이상의 사용자가 동일한 디렉토리에 쓸 수 있으려면 공통된 그룹에 쓰기 권한을 부여해야합니다. 다음 예제는 "webmasters"그룹에 / var / www / html에 공유 쓰기 권한을 부여합니다.

www-data를 사용 합니다 . "웹 마스터"를 그룹으로 바꾸면됩니다. 물론 그룹에 사용자를 추가해야합니다.

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

방금 Mac 데스크탑에서 Dreamweaver로 테스트하고 파일을 추가하고 파일을 추가 한 파일 등을 교체하고 한 가지 예외를 제외하고 올바른 권한을 유지합니다. 로컬 사용자는 www-data와 함께 새 파일의 소유자가되지만 루트에서 만든 파일은 html 디렉토리는 소유권을 루트로 유지하지만 로컬 사용자가 편집 할 수 있습니다.

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

이것이 상황을 정리하고 지친 것을 돕기를 바랍니다. 내가 항상이 상황에 지친 것을 알고 있기 때문에 지금은 분명합니다.

아, 나는 ftp에 키를 사용하여 sftp를 사용하여 ftp에 액세스 할 것을 강력히 권장하며, 나를 위해 잘 작동하며 PureFTP 또는 파일을 웹 사이트에 전달하는 다른 안전하지 않은 방법이 필요하지 않습니다. Digital Ocean 사이트에는 ssh 키로 서버를 보호하는 방법에 대한 몇 가지 자습서가 있습니다.

Linux 서버에서 SSH 키 기반 인증을 구성하는 방법


1) 파일에 setgid 비트를 남겨 둡니다. 사용자가 파일을 실행 가능하게 만들고 실행할 수 있으면 이상하게 보이며 아무것도하지 않으며 보안 문제의 문을 엽니 다. 그러나 setgid on files에 만족하면 complex find을 just로 바꾸십시오 sudo chmod -R g=srwX /var/www/html.
temoto

2) find -exec chmod각 파일마다 별도의 프로그램이 생성되므로 시간이 많이 걸리고 파일이 많은 경우 시스템에 불필요한 압력을가합니다. 해결책 : sudo find /var/www/html -type f -print0 |sudo xargs -0 chmod g=rw. xargs는 가능한 한 많은 파일 경로를 단일 인스턴스에 공급하려고 시도합니다 chmod.
temoto

0

Apache에 /hdd/web/media및에 대한 실행 권한이 있는지 확인하십시오 /hdd/web/wordpress.

운영:

chmod o+x /root /root/site /root/site/about

또한 파일 시스템의 디렉토리에 액세스 할 수 있도록 Apache를 구성해야합니다. 이것은 아파치 구성 파일 (httpd.conf)에 지시문을 삽입하여 시스템 관리자가 수행해야합니다.

실제 디렉토리는 웹 루트 내에 있으므로 액세스 가능해야하지만 FollowSymLinks가 디렉토리에 대해 활성화되지 않았을 수 있습니다. 또한 지시문에 추가해야합니다.

http://httpd.apache.org/docs/2.0/mod/core.html#directory를 참조하십시오 .


모두 고맙습니다 ... 나는 가장 저항이 적은 길을 가기로 결정했습니다 ... 심볼릭 링크를 제거했습니다. 모든 것이 완벽하게 작동합니다.
dpbklyn

0

우분투 설치 설명서를 읽고 ..

chown -R www-data /usr/share/wordpress

파일 압축을 풀지 않고이 방법으로 설치하는 것이 더 쉬울 수도 있습니다. /var/www

https://help.ubuntu.com/community/WordPress ...

어쨌든 워드 프레스가 실행되는 방법은 무엇입니까? 당신이 그렇게하고 싶다면 .. @metamorph로 do를 보여주고 다음 httpd.conf과 같이 apache2에 대한 허가를 주십시오.

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

다음 default-server.conf.

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

어쩌면 https://help.ubuntu.com/community/WordPress를 단계별로 수행하는 것이 가장 좋습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.