2026年5月20日

2026年5月20日

WordPressプラグインの更新が失敗する場合の解決方法

はじめに

「更新に失敗しました」「ダウンロードに失敗しました」などのエラーでプラグインが更新できない場合、ファイルパーミッション、ディスク容量不足、タイムアウトなどが原因として考えられます。

症状・原因

よく見られるエラーメッセージ:

  • Could not create directory.(書き込み権限なし)
  • Download failed.(接続タイムアウト、WordPress.orgへの通信エラー)
  • The package could not be installed.(展開エラー)
  • Destination folder already exists.(中途半端に残ったフォルダ)

解決手順

ステップ1:WP-CLIで更新する(最も確実)

# 単一プラグインを更新
wp plugin update contact-form-7

# 全プラグインを一括更新
wp plugin update --all

# 更新可能なプラグイン一覧を確認
wp plugin list --update=available --fields=name,version,update_version

ステップ2:ファイルパーミッションを修正する

# /wp-content/plugins/ の所有者とパーミッションを確認
ls -la /home/username/public_html/wp-content/

# 所有者をWebサーバーのユーザーに変更
chown -R www-data:www-data /home/username/public_html/wp-content/plugins/

# パーミッションを正しく設定
find /home/username/public_html/wp-content/plugins/ -type d -exec chmod 755 {} \;
find /home/username/public_html/wp-content/plugins/ -type f -exec chmod 644 {} \;
// wp-config.php — FTP経由の更新を強制する(パーミッション問題の回避策)
define('FS_METHOD', 'direct');   // 直接書き込みを試みる
// または
define('FS_METHOD', 'ftpext');   // FTP経由で更新
define('FTP_HOST', 'localhost');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');

ステップ3:中途半端に残ったフォルダを削除する

# 更新が途中で失敗すると不完全なフォルダが残る場合がある
ls /home/username/public_html/wp-content/plugins/ | grep -E "^plugin-name"

# 問題のフォルダを削除してから再度更新
rm -rf /home/username/public_html/wp-content/plugins/contact-form-7
wp plugin update contact-form-7

ステップ4:手動でプラグインを更新する

# WordPress.org からzipを直接ダウンロードして更新
wp plugin install https://downloads.wordpress.org/plugin/contact-form-7.latest-stable.zip --force

# ローカルのzipファイルから更新
wp plugin install /path/to/plugin.zip --force

ステップ5:タイムアウトとディスク容量を確認する

// wp-config.php — タイムアウトを延長
define('FS_CONNECT_TIMEOUT', 120);  // 接続タイムアウト(秒)

// functions.php — HTTP リクエストのタイムアウトを延長
add_filter('http_request_timeout', fn() => 120);
# ディスク容量を確認
df -h /home/username/public_html/

# /tmp の容量を確認(展開に使われる)
df -h /tmp

注意事項

  • define('FS_METHOD', 'direct') を設定すると更新確認画面が表示されなくなります。セキュリティ上の理由で使いたくない場合はFTPの認証情報を入力する方式を使ってください
  • 更新前には必ずデータベースのバックアップを取得してください
  • PHP の upload_max_filesizepost_max_size が小さすぎると大きなプラグインのアップロードに失敗します

まとめ

プラグイン更新失敗の原因は主にパーミッション問題、ディスク容量不足、タイムアウトです。WP-CLIによる wp plugin update --all が最も確実な方法で、パーミッション問題には define('FS_METHOD', 'direct') の設定が有効です。

お気軽にご相談ください

お見積りへ お問い合わせへ