📰

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になるようです。

参考

https://www.php.net/manual/ja/install.fpm.configuration.php

Discussion