2026年5月20日

2026年5月20日

WordPressプラグインのインストールが失敗する場合の解決方法

はじめに

「インストールに失敗しました」「ファイルの展開に失敗しました」などのエラーでプラグインがインストールできない場合、PHP設定、ファイルパーミッション、サーバーの接続設定が原因である場合がほとんどです。

症状・原因

よくあるエラーと原因:

  • The uploaded file exceeds the upload_max_filesize directive → PHPのアップロード上限
  • Could not create directory./wp-content/plugins/ への書き込み権限なし
  • Installation failed: Download failed. → WordPress.orgへの外部接続がブロックされている
  • Unpacking the package… で止まる → /tmp の容量不足

解決手順

ステップ1:WP-CLIでインストールする(最も確実)

# WordPress.orgから直接インストール
wp plugin install contact-form-7 --activate

# サーバーがWordPress.orgに接続できない場合 — ローカルでダウンロードしてアップロード
wp plugin install /tmp/contact-form-7.zip --activate

ステップ2:PHP設定を変更してアップロードサイズを増やす

; php.ini または .htaccess で設定
upload_max_filesize = 64M
post_max_size       = 64M
max_execution_time  = 300
memory_limit        = 256M
# .htaccess でも設定可能
php_value upload_max_filesize 64M
php_value post_max_size       64M
php_value max_execution_time  300
// wp-config.php
@ini_set('upload_max_filesize', '64M');
@ini_set('post_max_size',       '64M');

ステップ3:FS_METHODを設定してFTP認証をスキップする

// wp-config.php
define('FS_METHOD', 'direct'); // 直接書き込み(パーミッションが正しい場合)

// FTP経由でインストール
define('FS_METHOD', 'ftpext');
define('FTP_HOST', 'localhost');
define('FTP_USER', 'ftp_username');
define('FTP_PASS', 'ftp_password');
define('FTP_BASE', '/home/username/public_html/');

ステップ4:パーミッションを修正する

# /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/
chmod 755 /home/username/public_html/wp-content/plugins/

ステップ5:FTPで手動インストールする

# ローカルでzipを展開してFTPでアップロード
unzip contact-form-7.zip -d /tmp/plugins/
# FTPクライアントで /wp-content/plugins/ にアップロード
# 管理画面でプラグインを有効化

注意事項

  • レンタルサーバーでは php.ini の直接編集ができない場合があります。.htaccesswp-config.php@ini_set() を使う代替方法を試してください
  • FS_METHOD = 'direct' を設定するには、Webサーバーがファイルを所有している必要があります
  • /tmp ディレクトリが容量不足の場合、サーバー管理者に連絡してください

まとめ

プラグインインストール失敗は wp plugin install コマンドで回避できる場合が多いです。管理画面経由での失敗は upload_max_filesize の拡大と define('FS_METHOD', 'direct') の設定で解決できます。

お気軽にご相談ください

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