WordPressでプラグインをインストールしようとすると「インストールに失敗しました: ディレクトリを作成できませんでした。」というエラーが表示される場合、ほとんどはPHPの実行ユーザーに wp-content/plugins への書き込み権限がないことが原因です。まずは plugins ディレクトリの有無・パーミッション・オーナー、そしてディスク容量の順に確認すれば、多くのケースで解決できます。以下で手順を追って解説します。
原因
主に以下の原因が考えられます。
wp-content/pluginsディレクトリが存在しない- ディレクトリの書き込み権限がない
- FTPアップロード時のオーナーとPHP実行ユーザーが異なる
- ディスク容量が不足している
このエラーは、WordPressがプラグイン用のフォルダを新規作成しようとして失敗したときに出ます。つまり「ファイルを置く場所を作れない」状態なので、権限まわりを疑うのが近道です。
対処法
1. pluginsディレクトリが存在するか確認
FTPやSSHで wp-content ディレクトリを確認してください。plugins フォルダがない場合は作成します。
cd wp-content mkdir plugins chmod 755 plugins
何らかの理由で plugins フォルダが丸ごと消えている場合、既存プラグインも読み込めなくなります。フォルダを作り直せばインストールは通るようになります。
2. パーミッションを確認
plugins ディレクトリが存在する場合は、書き込み権限を確認してください。
chmod 755 wp-content/plugins
レンタルサーバーによっては 775 が必要な場合もあります。それでも解決しない場合は、親ディレクトリの wp-content 側の権限も合わせて確認してください。wp-content が書き込み不可だと、その配下に新しいフォルダを作れません。
3. オーナー(所有者)を確認
パーミッションが正しいのにエラーが出る場合は、ファイルの所有者がPHPの実行ユーザーと一致していない可能性が高いです。SSHが使える環境なら、次のコマンドで所有者を確認できます。
ls -l wp-content
FTPでアップロードしたファイルはFTPユーザーの所有になり、PHP実行ユーザーと異なると書き込みが拒否されることがあります。この場合は後述のレンタルサーバー向けの対応が有効です。
4. ディスク容量を確認
サーバーの管理画面でディスク使用量を確認してください。容量が不足している場合は、不要なファイルを削除するか、プランのアップグレードを検討してください。バックアップファイルやメディアのゴミが溜まっていることも多いので、あわせて棚卸ししておくとよいでしょう。
hetemlなどのレンタルサーバーの場合
hetemlなどのレンタルサーバーでは、PHPがCGIモードで動作しているため、FTPでアップロードしたファイルのオーナーとPHP実行ユーザーが異なる場合があります。この不一致が「ディレクトリを作成できませんでした」の典型的な原因です。
その場合は、サーバーの管理画面からファイルマネージャーを使ってディレクトリを作成するか、SSHで作成してください。ファイルマネージャー経由で作成したフォルダはPHP実行ユーザーの所有になるため、権限の問題を回避できます。
また、管理画面から直接プラグインをインストールできない場合は、公式サイトからプラグインのZIPをダウンロードし、解凍したフォルダをFTPで wp-content/plugins に手動アップロードする方法もあります。アップロード後、WordPress管理画面の「プラグイン」一覧に表示されれば有効化できます。
EC-CUBEゴールドパートナー