質問: phpで外部サイトのテンプレートファイルをアップデートする方法ってありますか? 同じ仕様の複数のサーバに設置したページを、ホストとするサイトのファイルと全く同じものに同期(アップデート)できないかという疑問です。 セキュリティーとかもあるでしょうけど、どうするのが一番良いでしょうか。 普通にメールとかで通知したりして、ZIPファイルとかでDL配布して、各サイトの管理者が任意でフォームからファイルをアップロードさせて全部書き換えさせるか、 ホストサイトから、PHPでパスワード付きでアクセスさせて、パイプ処理でホスト側の任意で、全サイトを一括アップデートできたほうが便利なのか。(出来るならこっちが優位なんですが。) どんな感じでしょうか。
回答: > phpで外部サイトのテンプレートファイルをアップデートする方法 それって、「サーバ内データを外部から書き換える」と同義ですよね? 単純にやろうとすると、外部からサーバに侵入されるのを許すって事になりますから悪手かなと思います。 sshを起動するかエミュレートして転送するってのは可能でしょうが。 __今時 FTPは無いなと... 各サイトにアップデート用のスクリプトを仕込む事が出来るなら、オリジナルサイトからそのスクリプトに向けて JSON等でデータを送る(POSTが良いと思う)事で、必要な処理をさせる事は可能でしょう。 __GitHubの webhook辺りを参照ください 差分を送ってそれを適用する様にすれば、ソースを丸ごとよりもデータも処理も軽いでしょうね。 APIkeyの様なものを一緒に送り、ハッシュ値を合わせて送って検証すれば、それなりのセキュリティも保てるでしょう。 __アクセス元のIPアドレスも良いチェック材料だと 方向を逆にする事も可能です。 cronやメール着信からのキックや、特定URLへのアクセスで、オリジナルサイトからデータを取得するとか。 こちらも、ノイズ対策に APIkeyとかトークン的なものがあった方が良いと思います。 やりたい事に必要なデータを授受出来ればOK(=100点)なのだから、リアルタイムの全自動を求めなければ大方の事は出来るでしょ? __パーミッション絡みで、PHPから直接は出来ないとか