先日、WordPressのバージョン更新をしようと思ったのですが、エラーになっちゃいました。その時のエラー内容がこれです。
「いくつかのファイルをコピーできないため、最新版のインストールができません。これはたいていの場合、ファイルのパーミッションが適切でないことが原因です。」
この問題を解決できましたので、この記事ではWordPressの更新やプラグインの更新ができない時の解決方法を簡潔にご紹介します。絶対解決できると思うので、ぜひ見てって下さい!
また、WordPress6.0で投稿画面が真っ白になったというトラブルを抱えている方は、下記の記事を参考にするのがおすすめです。
ファイルの所有者とファイルのパーミッションを変更すればたいていは解決する
この問題は、たいていWordPressのファイルの所有者とパーミッションが原因です。なので、「/var/html/wordpress」にあるファイルの所有者とパーミッションを変更することで、解決することができます。具体的な設定方法を説明していきますね。
ファイルの所有者の変更
下記のようにコマンドでファイルの所有者をapacheに変更します。
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を打ち込みます。
そうすると、3種類のうち1つの結果が返ってきます。
- Enforcing SELINUXは有効で、アクセス制限も有効な状態
- Permissive SELINUXは有効ですが、アクセス制限は行うことはなく警告のみ
- Disable SELINUXは無効
もし、getenforceと打ち込んでEnforcingと返ってきた人は、SELINUXがWordPressのファイル更新を邪魔している可能性があるので、SELINUXを無効化する必要があります。もし、Enforcingと結果が返ってきた人は、下記の方法でSELINUXを無効化します。
一時的に止めるだけならsetenforce 0
一時的に止めるだけでいいなら、コマンドラインでsetenforce 0と打ち込みます。
setenforce 0と打ち込むことで、SELINUXの状態がPermissiveの状態になります。つまり、SELINUXがアクセス制限をしなくなるので、WordPressの更新やプラグインの更新ができるようになります。
SELINUXが原因の場合、これでWordPressの更新やプラグインの更新ができるようになりますが、あくまでも一時的です。例えば、サーバーを再起動すると元のEnforcingの状態に戻ってしまうので、WordPressの更新やプラグインの更新が必要な時は、再度setenforce 0 と設定し直す必要があります。
SELINUXを永遠に無効化する方法
サーバーの再起動のたびに、いちいちSELINUXの設定するのめんどいわバーカという人は、SELINUXを永遠に無効化することをおすすめします!
設定は簡単です。まずはselinuxディレクトリに移動し、configファイルで設定を変更します。
$ vi config
そうすると、コマンドラインは下記のようになるかと思います。
# 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の更新ができなくなったので、、、。でも今は無事に更新ができ、ブンブン動いています。
今回、この記事をご覧になった方の中には、フリーランスエンジニアの転身を検討されている方も多いのではないでしょうか?フリーランスは定期的にお仕事を獲得する必要がありますが、それをクリアすれば、企業に属さなくても生計を成り立たせることができます。そして、現在はココナラエージェントなど案件を紹介してくれるところがあるため、フリーランスでも安定させることは難しくありません。興味がある方は、ぜひ下記のリンクから登録をしてみてはいかがでしょうか
?