web-dev-qa-db-ja.com

管理インターフェイスを介してWordpressを3.2にアップグレードする際の権限の問題

10.04サーバーを使用しています。管理インターフェイスからWordpressをアップグレードしようとしています。 vsftpdサーバーを実行していますが、ローカル接続を受け入れています。 FTP資格情報については、次のものを提供しました。

  • ホスト名:127.0.0.1:21
  • ユーザー名とパスワード:指定されたユーザーは、/ var/wwwディレクトリー構造への書き込みアクセス権を持っています。
  • 安全ではないプレーンole FTPを使用します。

アップグレードを送信すると、しばらくしてから(1〜2分)次のメッセージが返されます。

Downloading update from http://wordpress.org/wordpress-3.2.Zip…

Unpacking the update…

Could not create directory.: /var/www/wordpress/wp-content/upgrade/wordpress-3.tmp

Installation Failed

これは権限の問題だと思っていますが、私はそれを理解することができませんでした。ディレクトリchmod 777を設定しても機能しません。何か案は?ありがとう!

編集:ftp 127.0.0.1でテストすると、次の結果が得られます。

$ ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.2.2)
Name (127.0.0.1:wpuser): 
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> mkdir /var/www/wordpress/wp-content/upgrade/test/
550 Permission denied.

おそらくvsftpdの設定に問題があるのでしょうか? vsftpd.confファイルは次のとおりです。

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

パート2の編集:

十分な評判がないため、まだ回答を提出できません。これは私がそれを修正した方法です:

それが最善の解決策ではないかもしれないが、私は最終的に問題を修正しました。 FTPサービスは外部のインターネットからアクセスできないことに注意してください。

したがって、WordpressはFTPを使用して、アップグレードに必要なディレクトリとファイルを作成しようとします。プラグインやテーマをアップロードするときにもこれを行います。 FTP経由でディレクトリを作成することもできなかったため、vsftpd構成で次のことを試すことにしました。

anon_upload_enable=YES
anon_mkdir_write_enable=YES

サーバーを再起動し、すべてが機能しました。さて、これは何らかのセキュリティ問題であると想定していますが、anonアカウントは無効になっています(anonymous_enable = NO)。

また、余談として、ディレクトリのアクセス許可に関する他の両方の提案への応答として、ここでサーバー上でアクセス許可を試しました。

  • すべてのwordpressディレクトリ775
  • すべてのwordpressファイル664
  • 所有者:私のユーザー、グループ:ユーザー
  • ユーザーグループに追加されたwww-dataユーザー(テストだけで、明らかに動作しませんでした)

ですから、私は思考 www-dataが必要なディレクトリへの書き込みアクセス権を持っていましたが、それでも動作しませんでした。それが私がFTPサーバーの問題を調査し始めた理由です。

これに関するコメントを歓迎します。

3
Magicked
chown -R ftpuser.ftpuser /var/www/yourwebsite/wp-content/upgrade/

chmod 755 /var/www/yourwebsite/wp-content/upgrade/
2
raswan

このドキュメントは、アクセス許可がどのように適用されるべきかを理解するのに役立ちますWordpressが手間をかけずに機能するためのファイル/フォルダ。

私の個人的な経験では、WordPressフォルダーに755のアクセス許可を与えるとうまくいきますが、特定のフォルダーにはWordPressが何を言っていても、いくつかのプラグインやアップデート( WPコア)は、これらのフォルダーに777権限が含まれていない場合は機能しません。

この回答の冒頭で言及したドキュメントから引用:

  1. すべてのファイルは、httpdプロセスに使用されるユーザーアカウントではなく、実際のユーザーアカウントによって所有される必要があります。
  2. Webサーバープロセスのアクセス許可チェックに特定のグループ要件がない限り、グループの所有権は無関係です。これは通常そうではありません。
  3. すべてのディレクトリは755または750である必要があります。
  4. すべてのファイルは644または640である必要があります。例外:サーバー上の他のユーザーが読み取れないように、wp-config.phpは600である必要があります。
  5. ディレクトリをアップロードする場合でも、777を指定しないでください。 phpプロセスはファイルの所有者として実行されているため、所有者のアクセス許可を取得し、755ディレクトリにも書き込むことができます。

この回答: ファイルのアクセス権を扱うための一般的な規則 は、Ubuntuベースのシステムのアクセス権をよりよく理解するのに役立ちます。タスクを実行するためにFTPクライアントを介してアクセスする必要はありませんが、ターミナルを使用して、ローカルサーバーである場合はどれにアクセスする必要があります。

これについてさらに情報が必要な場合は、コメントをお寄せください。私のWPブログには http://geppettvs.x10.mx/blog でアクセスできます。これまで、リモートサーバーとローカルサーバーで何度もこの問題に直面していました。

私の答えの用語集:

  1. ローカルサーバーは、OSと直接やり取りするためにキーボードまたはマウスで接続できるコンピューターと見なされる必要があります。
  2. リモートサーバーは物理的に目の前にないコンピューターであり、コンピューターの操作のためにキーボードやマウスを接続することはできませんOS。

使用可能なディスク容量を確認しましたか?いくつかのプラグインを更新しようとしたとき、それが私の問題でした。クォータを増やし、問題は修正されました。

0
Christopher

ディレクトリの所有者とグループを変更してみましたか。通常、/var/wwwには、所有者およびグループとしてwww-dataが必要です。 /var/www/wordpress...の所有者とグループを、使用しているftpユーザーに変更します。コマンドは次のようになります。

chown -R www-data:www-data /var/www/wordpress

また、代わりにIPアドレスを使用してみてください127.0.0.1

0
user3215