ホーム
システム開発事務所マッドスキッパー
〒980-0014 宮城県仙台市青葉区本町1-14-5キャッスル仙台601
TEL:022-355-5241 FAX:050-3156-0476
  • トップ
  • WEBシステム開発
  • WEB制作
  • RSS活用
  • SEO対策
  • 各種サポート業務
  • 料金表
  • 事業者概要
  • 業務実績
  • お問合せ
  • スタッフブログ

MAGIC HAND

RSSフィード取得表示・史上最強のSEOツール

仙台・宮城でVBでのシステム開発なら、INFINIX(インフィニクス)

仙台のレンタルサーバーALIS SERVER

仙台宮城ディスティネーションキャンペーン

ホーム » ブログ » mudskipper's blog

別サーバーに設置したPHPスクリプトを実行する方法

Submitted by mudskipper on 2009, May 17 - 23:13

PHPには、便利な関数が数えられないほどあります。

include()なんかは使い捲くり状態になりやすいのですが、実はこれで結構ハマってしまう場合があります。

例えば、別のサーバーに設置してあるPHPスクリプトを読み込んで、実行しようという事も可能なのですが、PHP5からはallow_url_includeが基本的にオフになっていて、実行する事はできません。
ini_set()関数でこれを回避する事は可能ではありますが、それもサーバーの仕様でこの関数そのものが殺されている場合もあります。

特に、include()で呼び出されたファイルは、その呼び出された先をカレントディレクトリとして動作しようとしますので、パス関係なんかはグチャグチャになってしまいますので、同一サーバーのみでしか使えないようなものでもありますがね。。

これらを上手く回避する方法としての例を一つ。

表示させるサイトとプログラムの設置サーバーが異なっている場合。

表示させるサイトをA
スクリプトを実行するサーバーをBとします。

AからBの中にある実行ファイル(B1)を呼び出し、実行結果をBの中のファイル(B2)に書き出し
その書き出された結果をAに呼び出し表示させるという手法になるのですが
BのサーバーでCronが使えれば何も悩まないのですが、CRONが使えない場合に、
どのようにしてAサーバーからの指令でBサーバーのプログラムを実行させるか。

ここでinclude()を使っては、先にも申し上げましたとおり、パスがグチャグチャになり、まともに動く事は期待できないですね。

そこで

これを解決するのが、PHPのコマンドではなく、htmlのタグで可能になります。

objectタグでB1を呼び出します。

これで、呼び出されたプログラムは単独で実行する事が可能となる為、内部パスもそのままで手を入れる必要がなくなります。

B1が動作することで作られたB2の中身をA1に読み込み表示させるという事で、Aのサイトも自動的に更新されるという事になります。

但し、B2を読み込む際には、objectタグやIFRAME。さらにはjavascriptでの呼び出しも避けましょう。
これらを使っては、表示させるページのソースが変化しません。

つまり、検索エンジンさんから「更新したね!」とは見てもらえません。

  • mudskipper's blog
  • 新しいコメントの追加
Tags:
  • システム開発

JPCERTセキュリティ情報

  • Weekly Report: Windows プログラムの DLL 読み込み処理に脆弱性
  • Weekly Report: Apple 製品に複数の脆弱性
  • Weekly Report: Adobe Shockwave Player に複数の脆弱性
  • Weekly Report: Ghostscript の TrueType bytecode interpreter に脆弱性
  • Weekly Report: Cisco Unified Communications Manager および Cisco Unified Presence に脆弱性
more

twitter

Follow mudskipper_biz on Twitter

POWERD by Drupal

Powered by Drupal, an open source content management system

Copyright (C) 2007 - 2010 システム開発事務所マッドスキッパー. All Rights Reserved.