web-dev-qa-db-ja.com

サイトファイルに対するアクセス許可が777のFTPを使用してローカルホストでワンクリック更新が失敗するのはなぜですか?

Admin CP内でメディアのアップロード/削除、プラグインの追加/削除、およびテーマファイルの編集を正常に行うことができます。 admin CPでできないことは、WordPress 3.7.1から3.8への通常のワンクリックアップデートです。アイデア?

アップデートを実行しようとするとエラーメッセージが表示されます。

https://wordpress.org/wordpress-3.8-new-bundled.Zip からアップデートをダウンロードしています_…

アップデートを解凍中…

一部のファイルをコピーできなくなるため、更新プログラムをインストールできません。これは通常、矛盾したファイル許可が原因です。:wp-admin/includes/update-core.php

インストールに失敗しました

テストの目的で、私は777のパーミッションとuser:groupの所有権を持つ親からのすべてのディレクトリとファイルを私のWebサーバーユーザーwww-dataに設定しています。

-rwxrwxrwx 1 www-data www-data every-freakin-file.php

grep www-data /etc/groupの出力は私のvsftpdユーザーと私のメインログインを示しています。

www-data:x:33:ftps、ライアン

サイトファイルは、/ var/wwwの外部にあるサイト対応のユーザーディレクトリにあります。これは、ports.confファイルが次のように設定されているLAMPプライベートローカルホストにインストールされます。

NameVirtualHost *:80聴く127.0.0.1:80

#NameVirtualHost *:443をここに追加した場合、変更も必要になります。
#/ etc/Apache2/sites-available/default-ssl内のVirtualHostステートメント
#〜
#仮想ホスト名付きSSLのサーバー名表示は、現在のところありません
#Windows XP上のMSIEでサポートされています。
聞く443


聞く443

最後の考え:www-dataグループに追加しなければならない他のユーザーはいますか?すべてのファイルおよびディレクトリに777のアクセス許可を持つことは、更新が失敗した理由としてアクセス許可を除外しますか?

私は "vsftp"設定ファイルに関する選択された答えを持つ1つの解決されたスレッドを見ます、しかしそれは役に立つには曖昧過ぎます。私の/etc/vsftpd.conf設定は、私がワンクリックでアップデートしようとした時を除いて、うまく機能しています。
WPアップグレードで、権限が777であってもディレクトリを作成できません

更新: 私のphpinfo.phpはApache_RUN_USERを示し、Apache_RUN_GROUPはwww-dataです。私は、このuser:groupが読み取り/書き込み/実行権限を持つすべてのファイルを所有していることを確認しました。

2
iyrin

この問題は解決されました。許可の問題は、更新中にファイルがWordPressサイトにアップロードされる方法に関係しています。 suPHPソリューションはこの時点で私の好みです。なぜならそれはより簡単でファイルに対するパーミッションが少なくて済むからです。あなたがそうしたくないならばあなたはあなたのFTPユーザーがWordPressでうまく遊べるように気をつけなければならないでしょう。

suPHPソリューション
この質問を投稿してから、WebサーバーをFTPユーザーではなくローカルユーザーとして実行できるようにするsuPHPに移行しました。 suPHPが設定されたら(参照: ubuntuにApacheでsuphpをインストールする )wp-configで WordPressアップグレード定数 を無効にしたので、FTPは使用されなくなりました。

更新ファイルは、FTPユーザーが属するグループではなくローカルユーザーによって処理されるため、ワンクリックでの更新が機能します。これは、グループ書き込みアクセスが不要になったため、644のファイル許可と755のディレクトリ許可が機能するはずであることを意味します。

2
iyrin

エラー:

一部のファイルをコピーできなくなるため、更新プログラムをインストールできません。これは通常、矛盾するファイル許可が原因です。

溶液:

  1. SELinuxをチェックし、無効になっていることを確認し、そうでない場合は無効にしてください。 PuTTY、#sestatusでは、出力を無効にする必要があります。無効になっていない場合は、次の場所で編集します。/etc/selinux/config

  2. /var/www/htmlを777に変更します。PuTTYの場合:# chmod -R 777 /var/www/html

その他の注意事項

  1. WebサーバーがSELinuxを有効にしていない場合、ほとんどの場合、エラーは解決されます。

  2. このエラーは、ファイルまたはフォルダの所有権、またはグループの所有権とは関係ありません。あなたはrootまたはあなたが以前に作成した他のユーザ名でWordPressダッシュボードを通してftp sererにアクセスすることができます。

  3. 私はこの問題を解決するために3日間を費やしましたが、Googleからの提案はありませんでした。幸いなことに、私は2つのウェブサイトを運営しており、1つはSELinuxが無効で、ワンクリックアップデートの問題はありません。 。

0
pagetrans

私はOSX上でApacheを実行していますが、これにより修正されました。

Sudo chown -R _www:_www mywebfolder
Sudo chmod -R 775 mywebfolder
0
Justin