非公開: WordPressやプラグインの更新ができない時の絶対解決できる対処法

Uncategorized
Woman using a laptop and connecting, another student is sitting at desk in the background, hands close up

先日、WordPressのバージョン更新をしようと思ったのですが、エラーになっちゃいました。その時のエラー内容がこれです。

「いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。」

この問題を解決できましたので、この記事ではWordPressの更新やプラグインの更新ができない時の解決方法を簡潔にご紹介します。絶対解決できると思うので、ぜひ見てって下さい!

ファイルの所有者とファイルのパーミッションを変更すればたいていは解決する

 

この問題は、たいていWordPressのファイルの所有者とパーミッションが原因です。なので、「/var/html/wordpress」にあるファイルの所有者とパーミッションを変更することで、解決することができます。具体的な設定方法を説明していきますね。

ファイルの所有者の変更

下記のようにコマンドでファイルの所有者をapacheに変更します。

$ chown apache:apache -R wordpress

WEBサーバーがnginxの人は

chown nginx:nginx -R

というように、apacheの部分をnginxに変更して下さい。

ファイルのパーミッションの変更

次に、wordpressディレクトリ内にあるすべてのディレクトリのパーミッションを705に変更。

そして、wordpressディレクトリ内にあるすべてのファイルのパーミッションを604に変更します。これで、たいていの人は解決するかと思います。

$ find wordpress -type d -exec chmod 705 {} +$ find wordpress -type f -exec chmod 604 {} +

 

注意

知っていましたか?
wordpressの正しいパーミッション設定は、ディレクトリが705でファイルが604です。WordPressは外敵から狙われやすいので、最低限ディレクトリは705、ファイルは604にパーミッション設定しておきましょう。

ちなみに、ディレクトリのパーミッション777、ファイルのパーミッション666はマジで危険です!気をつけましょう。 

SELINUXを無効化する

 

私は、WordPressフォルダーの所有者とパーミッションを変更して解決することができましたが、この方法でもWordPressの更新、プラグインの更新ができない人は、SELINUXにいじめられている可能性があります(笑)

SELINUXが原因でWordPressの更新やプラグインの更新ができない人は、SELINUXを無効化させることでこの問題を解決できるでしょう。

まずはSELINUXが有効かどうか確認する

コマンドラインでgetenforceを打ち込みます。

$ getenforce

そうすると、3種類のうち1つの結果が返ってきます。

  • Enforcing SELINUXは有効で、アクセス制限も有効な状態
  • Permissive SELINUXは有効ですが、アクセス制限は行うことはなく警告のみ
  • Disable SELINUXは無効

 

もし、getenforceと打ち込んでEnforcingと返ってきた人は、SELINUXがWordPressのファイル更新を邪魔している可能性があるので、SELINUXを無効化する必要があります。もし、Enforcingと結果が返ってきた人は、下記の方法でSELINUXを無効化します。

一時的に止めるだけならsetenforce 0

一時的に止めるだけでいいなら、コマンドラインでsetenforce 0と打ち込みます。

$ setenforce 0

setenforce 0と打ち込むことで、SELINUXの状態がPermissiveの状態になります。つまり、SELINUXがアクセス制限をしなくなるので、WordPressの更新やプラグインの更新ができるようになります。

注意

SELINUXが原因の場合、これでWordPressの更新やプラグインの更新ができるようになりますが、あくまでも一時的です。例えば、サーバーを再起動すると元のEnforcingの状態に戻ってしまうので、WordPressの更新やプラグインの更新が必要な時は、再度setenforce 0 と設定し直す必要があります。

SELINUXを永遠に無効化する方法

サーバーの再起動のたびに、いちいちSELINUXの設定するのめんどいわバーカという人は、SELINUXを永遠に無効化することをおすすめします!

設定は簡単です。まずはselinuxディレクトリに移動し、configファイルで設定を変更します。

$ cd /etc/selinux/
$ vi config

そうすると、コマンドラインは下記のようになるかと思います。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing – SELinux security policy is enforced.
# permissive – SELinux prints warnings instead of enforcing.
# disabled – No SELinux policy is loaded.
SELINUX= enforcing
# SELINUXTYPE= can take one of three two values:
# targeted – Targeted processes are protected,
# minimum – Modification of targeted policy. Only selected processes are protected.
# mls – Multi Level Security protection.
SELINUXTYPE=targeted

黄色でマーカーしたSELINUX=enforcingのenforcingをdisableに変更して、保存すれば永続的にSELINUXを無効化させられます。

これで解決できましたか?

 

解決できましたか。私もまいりましたよ、WordPressの更新ができなくなったので、、、。でも今は無事に更新ができ、ブンブン動いています。

コメント

タイトルとURLをコピーしました