WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

ドメインキングでファイルの所有権を変更するのはちょっと大変

公開日:2017(平成29)年7月6日/最終更新日:

Knowledge Base パソコン



今まではネットオウルの無料WordPressツールを使っていたため、私はレンタルサーバーでのWordPressは初心者で、何もかもが新鮮というか??だらけ。

今回ハマったのはファイルやフォルダの所有者とグループの問題です。

自分でFTPを使ってアップロードしたファイルやフォルダの所有権は自分のものになっているのでパーミッションの変更はFTPソフトでもドメインキングのファイルマネージャーでも簡単にできます。

ただし、プラグインなどPHPプログラムでサーバー内にファイルやフォルダを作成した場合にはセキュリティ?の関係で所有者が「apache」となってしまうようです(グループも別物になります)。

そして初期に設定されるパーミッションは基本的には実行できても書き込みできない(所有者のみ可)なので、プラグインがキャッシュなどを書き込むことができずエラーが出たりします。

何とか所有者やグループを変えられないか?といろいろググってはみたものの、所有者問題はドメインキングに限らず他のサーバーでも同じようになっているようで、他のサーバーではファイルマネージャー上で設定変更ができる(おそらくサーバーのコントロールパネルに入れることでセキュリティはOKとしている?)のでコマンドやサーバーのメニューで所有者やグループの設定は変更できるようになっているようです。

が、ドメインキングはそんなメニューがない!!困った・・・ひどい場合になるとプラグインの更新ができなかったりすることもあるようです。

今回不具合が出たのが「W3 Total Cache」と「autoptimize」というプラグインの導入。知ってる方が多いと思いますが、サイトの表示速度を改善しよう!!という目的のプラグインです。情報をキャッシュ(一時保存)することでアクセスがあったときの処理を速くしようというもの。このキャッシュフォルダに書き込めないというエラーが出て先に進めなくなりました。

そこでドメインキングに絞ってググったら似たことがあった方のページが出てきました

ドメインキングに移動してミスったこと

上の記事はドメインキング側のサポートにメールを出して変更してもらうというもの、下の記事はPHPファイルを作成して実行するというものです。

下の記事の方法で変更を試みましたが、何も変化なし(多分失敗している)ので、上の方法に従ってサポートへ依頼中です。

一応今後の対処方法を教授願いたい旨も書いておいたので、経過や結論が出たらまた追記します。

私の場合は何でもググって調べてしまう派なのでいろいろヒントを得られるかもしれませんが、知らない人だったらこのサーバーだめだ!!みたいになってしまいそうですよね?ドメインキングのヘルプにも何も書かれていなかったのでこういうことこそヘルプ情報にすべきでは??なんて勝手に思ってしまいました。

追記 ドメインキングさんの対応

ドメインキング側のサポートにメールを出して変更してもらうという方法を行ったところ、1日で回答と対処がありました。私の送信した内容含めて掲載しておきます。

問い合わせメールの全文

お世話になっております。

公開フォルダ内の「wp-content」内にある

-cache内にあるすべてのファイルとフォルダ

-uploads内にあるすべてのファイルとフォルダ

のユーザーとグループが共に「apache」となっておりパーミッションの変更ができない状態になっています。

ついては他のフォルダやファイルと同様にユーザーとグループを〇〇へ変更いただきたいと思います。

パーミッション変更できないことで不具合が起こっていますので対応よろしくお願いします。

恐らくプラグインの設定等でファイルやフォルダが作成されたりするとユーザーとグループが自動で「apache」となってしまうようですが、対応策はありますか?

以上、よろしくお願いします

回答メールの全文

上記の件でございますが、対象ディレクトリは、「/httpdocs/wp-content」配下のディレクトリでお間違いございませんでしょうか。

「/httpdocs/wp-content/cache」、「/httpdocs/wp-content/uploads」につきましては、ご依頼いただきました権限をお客様権限へ変更させていただきました。

お手数ではございますが、ご確認いただければと存じます。

なお、「apache」にて作成されますのは、お客様のご認識のとおり、ご利用されているプログラムが、apacheにてファイル・フォルダ作成を実施していることが原因かと存じます。

つきましては、弊社ではプログラムの詳細が分かりかねますので、大変恐れ入りますが、お客様にて、ご利用プログラムの提供元やプログラムに関する参考サイトなどで、apacheで実施しない方法がないかご確認いただきますようお願い申し上げます。

また、ご不明点がございましたら、お気軽にお問合せ下さい。


この対応によってそれぞれのフォルダの所有者は変更されたものの肝心の中のファイルやフォルダまで回帰されておらず完全解決には至りませんでした。

ただやはりPHPによって作成されたファイルやフォルダの所有者はやはり「apache」で作成されることが原因のようです。

この所有者問題でエラーが出た場合は都度変更してもらうしかないようですね(ファイル名まで細かくお願いしないと今回のようにフォルダのみ対応される可能性があります)。

私が行った荒療治

今回不具合というか不都合があったのは「W3 Total Cache」と「autoptimize」というプラグインの導入。「cache」フォルダ内に書き込みができない(権限がない)からエラーとなってしまうというものなのでどうしようもないなぁとあきらめかけましたが、1つアイディアというか荒業を思いつきました。それは・・・「cache」フォルダを別名にした上でもう一つ「cache」をFTPで作ればいいんじゃないの?ということ。かなりの荒業ですね。

元の「cache」フォルダは所有者が私になっていますから、そのフォルダそのものはリネームもパーミッション変更も可能・・・というところから来たアイディアです。中にはいろいろなファイルがありそうですがまあ不具合出たら対処でいいか!とやってみました。

元の「cache」フォルダの名前を「cachexx」にした上で新しく「cache」という名前のフォルダを作成。所有者はきちんと私になりました。

その上で「autoptimize」プラグインを有効化・・・さてどうなるか??

結果は・・・きちんとインストールできました。しかも「cache」フォルダの中のファイルやフォルダ類もすべて所有者は私。元々あった別のファイル類がどうかというのは置いといて、「autoptimize」プラグインに関しては完全解決です。

ここから考えられるのは、プラグインのPHPプログラムで最初に「〇〇」というフォルダがなかったら作りなさいという命令で作成されるフォルダの所有者が「apache」になり、その配下にあるファイルやフォルダも「apache」になるのではないかということ。

テスト結果からあながち間違いではないと思います。この勢いで「W3 Total Cache」も・・・と言いたいところですがひとまず様子見します。

ドメインキングサーバーでファイルやフォルダの所有者が「apache」になってしまったことでエラーが発生するという方、その他のサーバーでも同様の事象が出た方の参考になれば幸いです。