解決済み:WordPressのプラグインインストール時にFTP情報の入力を求められる問題

intermediate📝 WordPress2026-03-29| Linux (Ubuntu/Debian/CentOS), Nginx/Apache, PHP-FPM, WordPress 5.0+

Error Message

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed.
#wordpress#ftp#linuxサーバー#ファイルパーミッション#wp-config

想定されるシナリオ

クライアントのサイトを新しいDigitalOceanのDropletに移行した後、すべてが順調に見えました。しかし、プラグインを更新しようとした瞬間、問題が発生しました。通常のプログレスバーの代わりに、グレーのポップアップが表示されFTP情報の入力を求められたのです。

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed.

現代のクラウドホスティングでは従来のFTPが使われることは稀であるため、これは非常に厄介な問題です。現在はSSH/SFTPや直接的なファイル管理が主流です。このプロンプトが表示されたからといって、サーバーが故障しているわけではありません。単に、WordPressがディスクに直接ファイルを書き込むための「鍵」を持っていないことを認識しただけです。

原因

WordPressは更新の前に、バックグラウンドで簡単なチェックを行います。wp-contentディレクトリ内に小さな一時ファイルを作成しようとします。その新しいファイルの所有者がディレクトリの所有者と一致しない場合、WordPressは不審に思い、直接の書き込み権限がないと判断して、安全策としてレガシーなFTP方式にフォールバックします。

この不一致は、通常以下の3つの特定の問題から発生します:

  • ユーザーの不一致: ウェブサーバー(www-dataなど)がWordPressファイルの所有者になっていない。
  • Rootでのアップロード: rootユーザーを使用してSSH経由でサイトファイルをアップロードした。
  • 制限されたパーミッション: フォルダのパーミッションが、標準の755ではなく555のように厳しすぎる設定になっている。

手っ取り早い解決策:FS_METHODの強制

公開作業の途中で、30秒以内に解決したい場合は、所有権のチェックを完全にバイパスできます。これにより、WordPressは確認をスキップしてファイルを書き込むようになります。これはユーザーの90%にとって一般的な応急処置です。

  • SFTPまたはホスティングのファイルマネージャーからサーバーにアクセスします。
  • サイトのルートフォルダにあるwp-config.phpを開きます。
  • 「編集が必要なのはここまでです(That's all, stop editing)」というメッセージの直前に、以下の行を貼り付けます:
define('FS_METHOD', 'direct');

警告: 基盤となるパーミッションが依然として「読み取り専用」に設定されている場合、FTPプロンプトの代わりに「ディレクトリを作成できませんでした」というエラーが表示されるだけです。その場合は、以下の恒久的な修正を行う必要があります。

恒久的な解決策:所有権の修正

最もクリーンな解決方法は、ウェブサーバーが実際にファイルの所有者であることを確認することです。UbuntuやDebianでは、ユーザーはほぼ常にwww-dataです。CentOSやRHELでは、apacheまたはnginxである可能性が高いです。

ステップ1:ウェブサーバーのユーザーを特定する

どのユーザーがPHPを実行しているか分からない場合は、次のコマンドを実行して確認してください:

ps aux | grep php

一番左の列を確認します。www-datahttpdと表示されていれば、それが次のステップで使用するユーザーです。

ステップ2:所有権の再設定

ウェブのルート(通常は/var/www/html)へ移動します。次のコマンドを実行して、所有権をウェブサーバーに戻します:

# /var/www/html を実際のパスに置き換えてください
sudo chown -R www-data:www-data /var/www/html

ステップ3:標準的なパーミッションへのリセット

セキュリティはバランスが重要です。ディレクトリには755、ファイルには644を設定するのが一般的です。これらの数字がよく分からない場合は、Unixパーミッション計算機を使用して、何を変更しようとしているのかを視覚的に確認してください。これにより、機密ファイルへの書き込み権限を誤って一般公開してしまうのを防ぐことができます。

WordPressのルートディレクトリから、以下の標準的なパーミッションを適用します:

# すべてのディレクトリを755に修正
find . -type d -exec chmod 755 {} \;

# すべてのファイルを644に修正
find . -type f -exec chmod 644 {} \;

動作確認

WordPressのダッシュボードに戻り、再度アップデートを試みてください。FTPプロンプトは即座に消えるはずです。以前にFS_METHODの行を追加した場合は、ここで安全に削除できます。サーバーが正しく構成されたため、WordPressはもはや「direct」のヒントを必要としなくなりました。

セキュリティに関する補足

chown -R www-dataはプライベートなVPS設定では完璧に動作しますが、複数のユーザーがアクセスできる共有サーバーでは注意が必要です。wp-config.phpを整理するついでに、セキュリティキーを更新するのも良い機会です。安全なパスワード生成器を使用して、データベースやソルト用にユニークな文字列を作成しましょう。これにより、アクセス制限の問題を解決した後もサイトの安全性が保たれます。

プロンプトが消えない場合は、サーバーがmod_ruid2を使用しているか確認してください。このApacheモジュールはユーザーの処理方法を変更するため、所有権をウェブサーバーユーザーではなく、特定のFTPユーザー名に合わせる必要がある場合があります。

Related Error Notes