WordPressで作成されるファイルの所有者はどこで決まる?
概要
WordPressの管理画面から画像をアップロードした際、作成されたファイルの所有者がapache:apacheになっていました。これはどの設定で決まっているのでしょうか?気になったので検証してみました。
先に結論
WordPressが作成するファイルの所有者・グループはPHP-FPMのwww.confで指定されたuserとgroupによって決まります
検証環境
- AlmaLinux9
- LAMP環境
- PHP-FPM
- WordPress
- コンテンツ領域:
apache:apache/ パーミッション:755
やったこと
1.初期状態で確認
初期状態で/etc/php-fpm.d/www.confのuserとgroupはどちらもapacheになっていました。
[root@test ~]# cat /etc/php-fpm.d/www.conf
---
user = apache
group = apache
---
この状態でWordPress管理画面のメディア追加から画像をアップロードすると/wp-content/uploads/配下にapache:apacheのファイル作成されました
[root@test ~]# ll /var/www/html/wordpress/wp-content/uploads/2025/10/test1.png
-rw-r--r--. 1 apache apache 253724 Oct 12 07:16 /var/www/html/wordpress/wp-content/uploads/2025/10/test1.png
[root@test ~]#
2.PHP-FPM の実行ユーザーを変更してみる
次に、独自ユーザーを作成し、PHP-FPMの実行ユーザーを変更してみます。
[root@test ~]# useradd -r -s /sbin/nologin mukakin
[root@test ~]#
www.confでuser/groupをmukakinに指定し、php-fpmを再起動します。
[root@test ~]# vi /etc/php-fpm.d/www.conf
[root@test ~]# grep mukakin /etc/php-fpm.d/www.conf
user = mukakin
group = mukakin
[root@test ~]# systemctl restart php-fpm
[root@test ~]#
この状態でWordPress管理画面から画像をアップロードしようとしても
/wp-content/uploads/の権限がapache:apacheのままなので、アップロードに失敗しました。
3.アップロードディレクトリの所有者とグループを変更する
/wp-content/uploads/以下を一度削除し、mukakinユーザーでを再作成します。
[root@test ~]# rm -rf /var/www/html/wordpress/wp-content/uploads
[root@test ~]# mkdir /var/www/html/wordpress/wp-content/uploads
[root@test ~]# chown mukakin:mukakin /var/www/html/wordpress/wp-content/uploads
[root@test ~]# ll -d /var/www/html/wordpress/wp-content/uploads
drwxr-xr-x. 2 mukakin mukakin 6 Oct 12 07:42 /var/www/html/wordpress/wp-content/uploads
[root@test ~]#
再度WordPress管理画面から画像をアップロードすると、今度は成功しました。
/wp-content/uploads/の下にmukakin:mukakinのファイルが作成されていました。
[root@test ~]# ll /var/www/html/wordpress/wp-content/uploads/2025/10/test2.png
-rw-r--r--. 1 mukakin mukakin 15852 Oct 12 07:46 /var/www/html/wordpress/wp-content/uploads/2025/10/test2.png
[root@test ~]#
まとめ
今回の検証で、次のことが分かりました。
- WordPressが作成するファイルの所有者・グループはPHP-FPMのwww.confに記載されたuser/groupで指定される
- ディレクトリの所有者とPHP-FPMのユーザーが一致していないと、ファイル作成に失敗する
補足:WordPressとPHP-FPMの関係
WordPressはPHPで動くアプリケーションのため、PHP-FPMがWordPressのスクリプトを実行します。
このため、WordPressが管理画面からファイルを作成する場合、実際にファイルを作成しているのはPHP-FPMの実行ユーザーとなります。
その結果、ファイルの所有者・グループはwww.confで指定したuser/groupになるようです。
参考
Discussion