【WordPress を更新】FTP の認証情報を求められる原因と対処法

Blog-Thumbnail_WordPress-01

はじめに

今回の記事は、WordPress を新しいバージョンにアップデートする際、またはプラグインやテーマをアップデート/インストールしようとした際に、以下のような画面が表示された人向けに解決策を解説します。

WordPress を更新「要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。」
WordPress を更新「要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。」

メッセージとしては以下のような記載があります。

要求されたアクションを実行するには、WordPress が Web サーバーにアクセスする必要があります。 次に進むには FTP の認証情報を入力してください。 認証情報が思い出せない場合は、ホスティング担当者に問い合わせてください。

WordPress を更新

このような画面が表示された方向けに、なぜこのような画面が表示がされるのか、その原因と対策について解説します。

そもそも FTP って何

FTP とは、 File Transfer Protocol です。
その名の通り、ファイルを転送するための標準的なネットワークプロトコルの一つです。

WordPress が FTP 情報を求める場合、要はサーバーにログインしてファイルを直接管理するための認証情報を必要としているという事です。
通常、以下の情報を入力する必要があります。

  • ホスト名: ウェブサーバーのアドレス
  • FTP ユーザー名: FTP アクセスのためのユーザー名
  • FTP パスワード: FTP アクセスのためのパスワード
  • 接続形式: 通常は FTP または FTPS(セキュア FTP)

FTP の使用は、特に共有ホスティング環境など、サーバーの設定が制限されている状況でよく見られます。

アップデート時に FTP 認証情報を求められる原因

なぜアップデート時に FTP 認証情報を求める画面が表示されるのでしょうか。
可能性は色々あるかと思いますが、FTP 利用に心当たりがない場合は、一般的に「アップデートしようとしたけど無理だったから FTP 認証情報教えて」と WordPress が言っている状態です。

WordPress のファイルシステム権限

サーバー上で WordPress がファイルやディレクトリに対して行う操作は、基本的には Web サーバーのプロセスが行います。
このプロセスは特定のユーザー (apache や nginx) として実行され、このユーザーの権限でファイルシステムにアクセスします。

サーバー上のファイルやディレクトリは「誰が」「何をしていいか」の権限が設定されています。
具体的には、「所有者、グループ、その他のユーザー」に対して「読み取り、書き込み、実行」の権限が設定されます。
この権限範囲を超えた要求がされた場合に、` permission denied ` みたいなエラーが発生するわけです。

そして、通常サーバーではセキュリティの観点から Web サーバープロセスの権限を最小限に抑えます。
特に、書き込み権限は厳格に管理されます。
WordPress がアップデートを行う際に必要な書き込み権限が足りない場合は、代替手段として FTP 認証情報を求めることになります。
その結果、前述のような FTP 認証情報を求める画面が表示されるわけです。

「じゃあどうすれば良いのか」の解決策については次の章で解説します。

アップデート時に FTP 認証情報を求められた際の対処法一覧

WordPress のアップデートにおいて FTP 認証情報を求められる問題に対して、いくつかの解決策があります。
ここでは、それぞれの解決策の概要とその利点とリスク確認しましょう。
続いて、一般的な対処法「パーミッションの変更」について手順を解説します。

対処法の選択肢

  1. パーミッションの変更:
    • WordPress ディレクトリのパーミッションを適切なものに変更
  2. FTP/SFTPの利用:
    • FTP または SFTP を使用してサーバー上の WordPress ファイルを管理
  3. SSH を使った直接更新:
    • SSH 経由でサーバーに接続してコマンドで WordPress を直接更新

各対処法の利点とリスク

  1. パーミッションの変更:
    • 利点: 直接的で迅速に適用可能
    • リスク: 不適切な権限設定がセキュリティの弱点につながる可能性あり
  2. FTP/SFTPの利用:
    • 利点: セキュリティを維持しつつファイル管理を行えること
    • リスク: 非暗号化のFTPは情報漏洩の可能性あり
  3. SSH を使った直接更新:
    • 利点: 高度な制御とセキュリティ
    • リスク: 多少の技術スキルが必要

ちなみに、SSH を使った直接更新については、以下の記事で解説していますので、よろしければご参照ください。

https://blog.kuds.win/wordpress/wordpress-update-no-ftp/
WordPressを最新版に手動でバージョンアップする手順

今回の記事では、一般的な対処方法とされる「パーミッションの変更」について解説します。
以降の章で具体的な手順を確認しましょう。

一般的な対処法「パーミッションの変更」の手順詳細

以下の手順では、Apache が Web サーバーとして使用されている場合のパーミッション変更方法を示します。
Nginx や他のサーバーを使用する場合は、適宜ユーザー名を変更してください。

※ OS: Amazon Linux 2

事前準備

バックアップ取得

例のごとく、作業前にはバックアップの取得をお勧めします。

サーバーに SSH で接続

まずは、以下のようなコマンドで対象の Web サーバに接続しましょう。

$ ssh -i <your-ssh-key> <your-ssh-user>@<your-server-ip>

実行中のユーザーとグループの確認

次に、Web サーバーが稼働しているユーザーとグループを確認しましょう。

$ ps aux | grep apache
apache   12833  0.0  0.0 253740   468 ?        S     2023   0:00 /usr/sbin/httpd -DFOREGROUND
...

上記の例では、 apache ユーザが実行しています。

WordPress がインストールされているディレクトリの権限確認

続いて、/var/www とそのサブディレクトリのパーミッションを確認しましょう。

$ ls -la /var/www
total 4
drwxrwsr-x  4 root root   33 Oct 26 20:09 .
drwxr-xr-x 20 root   root    280 Jul  6 01:32 ..
drwxrwsr-x  5 root root 4096 Jan  2 05:28 html
...

上記の例では、ユーザ・グループが root になっています。

パーミッションの変更

いよいよ、パーミッションを実際に変更していきましょう。

所有権の変更

まず、/var/www とそのサブディレクトリの所有権を apache ユーザーとグループに設定します。

$ sudo chown -R apache /var/www
$ sudo chgrp -R apache /var/www

ディレクトリのパーミッション設定

次に、/var/www とそのサブディレクトリに 2775 のパーミッションを設定します。
これによって、所有者とグループのユーザーがディレクトリに対して読み書き実行の権限を持ち、将来のサブディレクトリもこのグループ ID を継承します。

$ sudo chmod 2775 /var/www
$ find /var/www -type d -exec sudo chmod 2775 {} \;

ファイルのパーミッション設定

続いて、/var/www とそのサブディレクトリ内のファイルに 0644 のパーミッションを設定します。
これによって、所有者はファイルを読み書きでき、グループメンバーと他のユーザーはファイルを読むことのみできます。

$ find /var/www -type f -exec sudo chmod 0644 {} \;

Apache サーバーの再起動

変更を有効にするために Apache サーバーを再起動します。

$ sudo systemctl restart httpd

以上で、パーミッションの変更が完了です。

これで、FTP 認証情報なしで WordPress のアップデートやプラグインのインストールが可能になります。
WordPress 管理画面から「バージョン xxx に更新」をクリックすることでアップデート可能かご確認ください。

WordPress の新しいバージョンがあります。
WordPress の新しいバージョンがあります。

さいごに

この記事では、WordPress アップデート時やプラグインインストール時に FTP 認証情報が求められる原因と、その時の対策について解説しました。

ちなみに、今回解説した「パーミッション変更」の手順については AWS 公式ドキュメントにも案内があります。
詳細が気になる方はこちらもご参照ください。

Amazon Elastic Compute Cloud

また、WordPress のファイル権限変更については、WordPress Developer Resources にも記載があります。

Changing File Permissions – Advanced Administration Handbook | Developer.WordPress.org
On computer file systems, different files and directories have permissions that specify who and what can read, write, mo...

777 権限についての危険性の記述もあるので、気になる方はご一読ください。

以上です。

コメント