2026年9月10日

2026年9月10日

WordPressの「WordPress データベースエラー: Can’t create/write to file」

はじめに

この記事では、WordPressのデータベース操作中に発生しがちな「Can't create/write to file」エラーメッセージについて詳しく説明します。この問題はMySQLやMariaDBを使用しているサーバーで一般的であり、ファイルパーミッション設定が間違っている場合に起こります。

症状・背景

このテーマが必要になる主な場面:

  • ダッシュボードからプラグインをインストールしようとしたとき
  • テーマのアップデートや新規インストール時に発生した場合
  • バックアップ作成中にエラーが表示された場合
  • MySQL/MariaDBデータベース操作中にエラーメッセージが表示された場合

手順・設定方法

ステップ1: ファイルパーミッションを確認する

# WordPressディレクトリ内のファイルやフォルダの権限を確認します
ls -la /var/www/html/wordpress/

# wp-content/uploadsディレクトリの所有者とグループを変更します
chown -R www-data:www-data /var/www/html/wordpress/wp-content/uploads

# ファイルパーミッションを755に設定します
find /var/www/html/wordpress -type d -exec chmod 755 {} \;

# ファイルパーミッションを644に設定します
find /var/www/html/wordpress -type f -exec chmod 644 {} \;

ステップ2: MySQL/MariaDBのデータベース設定

# MySQLコマンドプロンプトを開きます
mysql -u root -p

# データベース名を指定して接続します
use your_database_name;

# データベースユーザーの権限を確認します
show grants for 'your_user'@'localhost';

# 必要であれば、データベースユーザーに書き込み権限を付与します
grant all privileges on your_database_name.* to 'your_user'@'localhost' identified by 'your_password';
flush privileges;

ステップ3: PHP設定の確認と調整

# php.iniファイルを開きます
vi /etc/php/7.4/fpm/php.ini

# upload_max_filesize, post_max_size, memory_limitを必要に応じて調整します
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M

# ファイルの保存場所ディレクトリを確認し、適切なパーミッション設定を確認します
file_uploads = On
save_path = /var/www/html/wordpress/tmp

ステップ4: ログファイルを確認してトラブルシューティング

# Apacheのエラーログを確認します
tail -f /var/log/apache2/error.log

# PHPのエラーログを確認します
cat /var/log/php7.4-fpm.log

注意事項

  • ファイルパーミッションを変更する前に、バックアップを取りましょう。
  • MySQL/MariaDBの設定ファイル(my.cnf)はシステムやクラスタ構成により異なる場合があります。正しい設定ファイルを開くことを確認してください。
  • PHP設定の変更後には、サーバーを再起動またはPHPファストCGIプロセスをリスタートする必要があります。

まとめ

1. ファイルパーミッション: WordPressディレクトリ内の全てのファイルやフォルダは適切な権限を持っていることを確認します。

2. MySQL/MariaDB設定: データベースユーザーがデータベースに対して必要な全権限を持っているかをチェックし、必要なら付与します。

3. PHP設定の調整: PHP.iniファイルでアップロードサイズやメモリ使用量等の制限を確認し、適切に設定します。

4. ログファイルの監視: エラーメッセージから原因を特定するためにApacheやPHPのエラーログを定期的にチェックしましょう。

5. バックアップとテスト: ファイルパーミッションや設定変更を行った後は、サイトが正常に動作するか確認し、必要ならシステム全体のバックアップを取ります。

関連記事:

お気軽にご相談ください

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