저는 CentOS 6.4를 실행 중이고 WordPress가 설치되어 있습니다. (조명과 함께)
이제 문제는 WordPress 편집기의 어떤 파일에도 쓰기 변경을 할 수 없다는 것입니다. header.php, style.css 등 Wordpress는 업데이트 버튼이 있어야 할 위치에 다음을 표시합니다. 변경 사항을 저장하기 전에 파일을 쓰기 가능하게 만들어야 합니다.
노트:
- 이제 Apache는 루트 사용자(기본값)로 실행됩니다.
위의 모든 파일이 위치한 테마 폴더에 대한 권한은 다음과 같습니다.
drwxrwxr-x. 5 루트 bluegig 4096 7월 7일 17:32 주제
drwxrwxr-x. 3 루트 아파치 4096 7월 7일 23:15 업로드됨
나는 달렸다수정 775이제 "topic" 및 "upload" 명령이 수행됩니다.chmod 777은 쓰기 권한을 제공하지만 안전하지 않다고 생각합니다. 다른/더 좋은 방법이 있습니까?
(bluegig가 내 도메인 이름인데 왜 거기 있는지는 모르겠습니다...)
어떡해:
- WordPress에서 읽고 실행할 수 있습니다.
- WordPress의 파일을 업로드 폴더에 업로드할 수 있습니다.
나는 할 수 없다:
- WordPress에서 파일을 변경합니다(편집기를 통해).
- WordPress의 파일을 수정할 수 있도록 쓰기 권한을 활성화하는 방법은 무엇입니까?
WP 내에서 ftp 계정에 로그인하지 않았습니다.
답변1
Apache 설치는 루트로 실행 중인 것처럼 보이지만 실제로는 user 로 실행 중입니다 apache
. 다음 파일을 보면 이를 확인할 수 있습니다.
$ grep "^User" /etc/httpd/conf/httpd.conf
User apache
웹 UI를 통해 WordPress를 사용하여 설치를 관리하려는 경우 전체 WordPress 디렉터리는 이 사용자가 소유해야 합니다.
저는 보통 다음과 같이 WordPress용 별도의 디렉터리를 만듭니다.
$ pwd
/var/www
$ ls -l | grep wordpress
drwxr-xr-x. 5 apache apache 4096 Apr 25 19:27 wordpress
WordPress 디렉토리의 내용은 다음과 같습니다.
-rw-r--r--. 1 apache apache 395 Jan 8 2012 index.php
-rw-r--r--. 1 apache apache 5009441 Jan 23 13:40 latest.tar.gz
-rw-r--r--. 1 apache apache 19929 May 6 2012 license.txt
-rw-r--r--. 1 apache apache 9177 Jan 25 11:25 readme.html
-rw-r--r--. 1 apache apache 4663 Nov 17 2012 wp-activate.php
drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-admin
-rw-r--r--. 1 apache apache 271 Jan 8 2012 wp-blog-header.php
-rw-r--r--. 1 apache apache 3522 Apr 10 2012 wp-comments-post.php
-rw-rw-rw-. 1 apache apache 3466 Jan 23 17:15 wp-config.php
-rw-r--r--. 1 apache apache 3177 Nov 1 2010 wp-config-sample.php
drwxr-xr-x. 7 apache apache 4096 Apr 24 20:15 wp-content
-rw-r--r--. 1 apache apache 2718 Sep 23 2012 wp-cron.php
drwxr-xr-x. 9 apache apache 4096 Dec 11 2012 wp-includes
-rw-r--r--. 1 apache apache 1997 Oct 23 2010 wp-links-opml.php
-rw-r--r--. 1 apache apache 2408 Oct 26 2012 wp-load.php
-rw-r--r--. 1 apache apache 29310 Nov 30 2012 wp-login.php
-rw-r--r--. 1 apache apache 7723 Sep 25 2012 wp-mail.php
-rw-r--r--. 1 apache apache 9899 Nov 22 2012 wp-settings.php
-rw-r--r--. 1 apache apache 18219 Sep 11 2012 wp-signup.php
-rw-r--r--. 1 apache apache 3700 Jan 8 2012 wp-trackback.php
-rw-r--r--. 1 apache apache 2719 Sep 11 2012 xmlrpc.php
wordpress.conf file under this directory,
나는 또한 일반적으로 WordPress 관련 Apache 구성을 자체 /etc/httpd/conf.d/`에서 관리합니다.
# wordpress.conf
Alias / "/var/www/wordpress/"
<Directory "/var/www/wordpress/">
Order Deny,Allow
Deny from all
#Allow from 127.0.0.1 192.168.1
Allow from all
AllowOverride all
</Directory>
#RewriteLog "/var/www/wordpress/rewrite.log"
#RewriteLogLevel 3
답변2
(bluegig가 내 도메인 이름인데 왜 거기 있는지는 모르겠습니다...)
왠지 블루기그(blugig)라는 그룹이 있는 것 같다. 다음을 통해 확인할 수 있습니다.
grep bluegig /etc/group
그룹 권한을 사용하는 것은 예를 들어 777을 사용하지 않는 한 가지 방법입니다. 서버가 실행하는 스크립트를 읽기 및 실행 가능하게 하되 쓰기는 불가능하게 하고 싶을 수도 있지만 권한이 없는 관리/개발 사용자( )에게 쓰기 액세스 권한을 부여하고 싶을 수도 있습니다 dave
. 서버는 으로 실행되므로 apache
파일이 apache가 속하지 않고 에 속한 그룹에 속하고 dave
권한이 775인 경우 다음과 같은 결과를 얻게 됩니다(apache는 읽고 실행할 수 있고 dave는 읽고 쓰기 실행을 읽을 수 있음).
/etc/group의 행에 Apache가 언급되어 있지 않으면 bluegig를 그룹으로 사용하거나 새 그룹( groupadd
)을 생성할 수 있습니다. 자신을 그룹에 참여시키세요:
usermod -a -G bluegig dave
이제 로그인 이름이 /etc/group 항목 끝에 표시되며 bluegig
bluegig 그룹과 동일한 권한을 갖게 됩니다.