web-dev-qa-db-ja.com

CentOS-書き込み権限の問題

CentOS 6.4を実行していて、Wordpressをインストールしました。(LAMPと一緒に)

問題は、wordpressエディター:header.php、style.cssなどのファイルに書き込みを変更できないことです。Wordpress 「更新」ボタンがあると思われる場所で、次のように述べています。変更を保存する前に、このファイルを書き込み可能にする必要があります。

ノート:

  • これで、Apacheがrootユーザーとして実行されます(デフォルト)
  • 上記のすべてのファイルが存在するthemesフォルダーのアクセス許可は次のとおりです。

    drwxrwxr-x。 5 root bluegig 4096 Jul 7 17:32テーマ

    drwxrwxr-x。 3ルートApache 4096 7月7日23:15アップロード

chmod 775コマンドを 'themes'と 'uploads'の両方で実行したところ、chmod 777を実行すると書き込み権限が取得されましたが、それは信じられません非常に安全です...他の/より良い方法はありますか?

(bluegigは私のドメインの名前です。なぜそこにあるのかわかりません...)

私は何ができますか:

  • Wordpressで読んで実行できます
  • WordPress内からアップロードフォルダにファイルをアップロードできます

私はできない:

  • wordpress(エディター経由)内のファイルに変更を加える
  • WordPressでファイルを変更できるように、書き込み権限を有効にするにはどうすればよいですか?

WP内からftpアカウントにログインしなかったことに注意してください。

4
DextrousDave

Apacheのインストールはrootとして実行されているように見えるかもしれませんが、実際にはユーザーApacheとして実行されています。このファイルを見ると、これを確認できます。

$ grep "^User" /etc/httpd/conf/httpd.conf
User Apache

Web 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に関連するすべてのApache構成も管理しますwordpress.conf file under this directory,/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
slm

(bluegigは私のドメインの名前です、なぜそこにあるのかわかりません...)

どういうわけか、blugigという名前のグループもあるようです。あなたはこれを確認することができます:

grep bluegig /etc/group

グループ権限を使用することは、たとえば777の使用を回避する1つの方法です。サーバーによって実行されるスクリプトを、サーバーが読み取りおよび実行できるようにしたいが、書き込みはできないようにしたい場合があります。ただし、権限のない一部の管理者/開発者ユーザー(dave)には、それらに対する書き込み権限が必要です。サーバーはApacheとして実行されるため、ファイルがグループによって所有されている場合、Apacheはその一部ではなく、daveが含まれ、アクセス許可は775である場合、それが取得されます(Apacheは読み取ることができます)実行すると、daveは読み取りと書き込みを実行できます)。

/ etc/groupの行にApacheが記載されていない場合は、グループとしてbluegigを使用するか、新しいグループ(groupadd)を作成できます。自分をグループに入れるには:

usermod -a -G bluegig dave

ログイン名は/ etc/groupのbluegigエントリの最後に表示され、bluegigグループと同じ権限が与えられます。

0
goldilocks