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_filesizeとpost_max_sizeが小さすぎると大きなプラグインのアップロードに失敗します
まとめ
プラグイン更新失敗の原因は主にパーミッション問題、ディスク容量不足、タイムアウトです。WP-CLIによる wp plugin update --all が最も確実な方法で、パーミッション問題には define('FS_METHOD', 'direct') の設定が有効です。