WordPressの「ディレクトリを作成できませんでした」エラーの解決方法

intermediate📝 WordPress2026-07-01| Linuxベースのウェブサーバー (Ubuntu, Debian, CentOS), Apacheまたは Nginx, WordPress 5.x/6.x

Error Message

Installation failed: Could not create directory.
#wordpress#permissions#linux-server#plugin-error#sysadmin

問題の概要Yoast SEOのような新しいプラグインや、Avadaのような容量の大きいテーマをインストールしている際、WordPressが突然停止してしまうことがあります。成功メッセージの代わりに、Installation failed: Could not create directory. というストレスの溜まる警告が表示されます。

このエラーは、サーバーのPHPプロセスが wp-content フォルダに新しいデータを書き込む権限を持っていないことを示す赤信号です。新しいホストへの移行後、バックアップの復元後、またはサーバーのセキュリティ設定を強化した後に頻繁に発生する問題です。

発生原因- 不適切なパーミッション: フォルダの権限が厳しすぎて、サーバーが新しいファイルを追加できない状態になっています。- 所有権の不一致: ファイルの所有者が「root」や「ftpuser」になっており、ウェブサーバー(www-data)がそれらを変更しようとして拒否されています。- ディスク容量不足: ホスティングプランの容量が上限に達しています。20GBのSSDであっても、古いバックアップや巨大なログファイルですぐに一杯になることがあります。- 一時フォルダの不備: WordPressがプラグインファイルを最終的な場所に移動する前に、ファイルを展開するための安全な場所(一時フォルダ)を見つけられていません。## ステップバイステップの修正方法### 1. ディレクトリのパーミッションをリセットするWordPressには厳格なルールがあります。フォルダは 755、ファイルは 644 に設定されている必要があります。もし wp-content/plugins フォルダが 555(読み取り専用)に設定されていると、インストールは必ず失敗します。

SSHでサーバーにログインし、WordPressのルートディレクトリに移動します。次の2つのコマンドを実行して、サイト全体の権限を一括で修正します。

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

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

特定の場所だけを対象にしたい場合は、以下のコマンドを使用してください。

chmod 755 wp-content/plugins
chmod 755 wp-content/themes
chmod 755 wp-content/uploads

2. ファイルの所有権を修正するウェブサーバーがフォルダを「所有」していなければ、パーミッション設定は意味をなしません。個人アカウントを使用してFTP経由でファイルをアップロードした場合、ウェブサーバー(多くの場合 www-dataapache)は外部ユーザーとして扱われる可能性があります。

ls -la を実行して、ファイルの所有者を確認してください。フォルダの横に「root」と表示されている場合は、制御権をウェブサーバーに戻す必要があります。

# UbuntuまたはDebian用 (Nginx/Apache)
sudo chown -R www-data:www-data /var/www/html/wp-content

# CentOSまたはRHEL用
sudo chown -R apache:apache /var/www/html/wp-content

3. ディスク容量の空きを確認する「権限」エラーに見えて、実は「空き容量不足」エラーであることがあります。df コマンドを使用して、サーバーの空き容量を確認してください。

df -h

Use% 列を確認しましょう。メインパーティションが100%を示している場合は、古いエラーログやステージングサイトを削除する必要があります。また、df -i でiノード(作成可能なファイル数の上限)も確認してください。大量の小さなセッションファイルがある場合、ギガバイト単位の容量が残っていてもiノードが枯渇することがあります。

4. カスタムの一時ディレクトリを定義するサーバーのグローバルな /tmp フォルダが制限されているか満杯の場合、WordPressはファイルの「解凍」フェーズで失敗します。WordPressのインストールディレクトリ内に専用の一時フォルダを作成することで、これを回避できます。

  • wp-content 内に temp という名前の新しいフォルダを作成します。- wp-config.php ファイルを開きます。- 「That's all, stop editing!」というコメントの直前に、次の行を貼り付けます。``` define('WP_TEMP_DIR', dirname(FILE) . '/wp-content/temp/');

この新しい `temp` フォルダも、WordPressが使用できるように `755` のパーミッションが設定されていることを確認してください。
## 修正の確認解決したかどうかを確認するために、軽量なプラグインで「テスト」を行ってください。
- **プラグイン > 新規追加** に移動します。- 「Hello Dolly」を検索します(100KB未満の軽量プラグインです)。- **今すぐインストール** をクリックします。即座にインストールされれば、ボトルネックは解消されています。
## セキュリティに関するプロの助言パーミッションを `777` に設定してはいけません。エラーは解決するかもしれませんが、それは玄関のドアを全開にするようなものです。サーバー上の誰でもファイルの読み取り、書き込み、削除ができるようになってしまいます。安全のために必ず `755` を守ってください。
パーミッションの8進数計算が複雑に感じる場合は、[Unix Permissions Calculator](https://toolcraft.app/en/tools/developer/unix-permissions) を使って、所有者と一般ユーザーにどのような権限を与えているかを視覚的に確認することをお勧めします。本番サーバーに変更を適用する前のダブルチェックに最適です。
SSHアクセス権のない共有ホスティングプランを利用している場合でも、心配いりません。cPanelの「ファイルマネージャー」を使用して同じ手順を実行できます。フォルダを右クリックして「Permissionsの変更」を選択し、数値が755であることを確認してください。

Related Error Notes