
phpで別のドメイン下のファイルをrequireしようとしていますがうまくいきません。
サーバーの環境は【Windows Server 2008 + IIS6.0 + php5.2】で、
php.iniのallow_url_includeはonに設定済みです。
ファイルA http://xxx.com/aaa.php
<html>
<head>
</head>
<body>
<?php
require_once("http://localhost/test.inc");
echo $remember;
?>
</body>
</html>
ファイルB http://yyy.com/bbb.php
<?php
$remember=5577;
?>
仮にファイルAに「require_once("http://yyy.com/bbb.php");」と書いて実行すると、空白のページが出力され、ページのソースは
<html>
<head>
</head>
<body>
となっていました。
phpコードを実行するところで処理が中断されたようです。
空白ページのタイトルは「500-内部サーバーエラー」です。
同じサーバーの違うドメインで試しても、物理的に別のサーバーで試しても結果は同じでした。
ネットで調べた限りでは結構みんなすんなりとできたみたいなので、なおさら不思議で仕方がないです。
何が考えられるか、教えていただければと思います。
No.3ベストアンサー
- 回答日時:
ANo.1でも書かれていますが、リモートファイルのincludeは、相手先のwebサーバが返す内容をincludeします。
つまりbbb.phpは<?php
print '<?php' . PHP_EOL;
print '$remember=5577;' . PHP_EOL;
print '?>' . PHP_EOL;
?>
と書いておかなければ、質問者さんが期待されている動作にはなりません。同一サーバ内でもファイル名をhttpから記述すれば同じことです(localhostの80番ポートへアクセスするというだけです)。
相手先サーバがファイル内容をそのまま返す拡張子(.txtなど)にするという方法もありますが、いずれにしても生のphpソースを外部公開するに等しいので、あまりお勧め出来る手法ではありません。キチンと(bbb.php側で)アクセス元のIPアドレスなどを制限してください。
(蛇足)
なお同一サーバに対してのリモートアクセスは無駄なトラフィックになるので避けるべきです。サーバパスで記述すれば済むことですので。
No.2
- 回答日時:
とりあえず、該当のサーバーは物理的に近付ける場所にありますか?
それなら確認が楽なんですけど。
サーバ上で、ブラウザを立ち上げて呼び出したいPHPファイル(http://yyy.com/bbb.php)にアクセスするとどうなりますか?
サーバ上のブラウザから正しく呼び出せたとして、サーバ上のPHPエンジンが外部にアクセスできないようにファイアウォールでブロックしている可能性は?
まずはその辺りから調べる必要がありますかね。
No.1
- 回答日時:
その
http://yyy.com/bbb.php をブラウザで表示すると、何も表示されませんよね?そのyyy.com がPHPを実行可能な場合、拡張子が php ですから、画面には何も出ないのではないかと思います。
で、その結果をファイルAでは require 仕様としていますから、対象が何も無いので 500 エラーとなっているのではないでしょうか?
あまりそのような、管理が面倒な手段はとったことがないのですが、 拡張子が .inc ならできるのかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルコマンドでphpを実行した...
-
他サーバーにあるファイルに書...
-
ハッスルサーバーで「Warning: ...
-
file_exists('http://192.168.0...
-
JavaScriptとphpのちがいはなん...
-
さくらレンタルサーバーでPHPが...
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
phpのextension_dirを複数指定...
-
PHP PDOライブラリが読み込まれ...
-
phpでメール送信できません 原...
-
header(Location:~)で$_SESS...
-
<A href ~ と一緒に値を渡すには
-
さくらインターネットでメール...
-
【PHP】tmp_nameの命名規約につ...
-
php4とphp5での数値の取り扱い...
-
テレメールとは?
-
PHPでメールを受信するには?
-
データ送信をボタンを押さずに...
-
PEAR(Image_QRCode)のエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
【file_exists】ファイルが存在...
-
さくらレンタルサーバーでPHPが...
-
URLが.PHPってどういう...
-
.phpファイルが、表示されない
-
PHPの戻り値をWINDOWSバッチフ...
-
apache+phpにおいてリクエスト...
-
PHPを使ってのサーバ上ファイル...
-
Fatal error
-
php ホームページ初心者 入力確...
-
サーバ無しでphpを動作させる
-
PHPファイルの中身が見られるこ...
-
phpMyAdmin-5.0.4-all-language...
-
Apacheで、アクセスさせたくな...
-
他サーバーにあるファイルに書...
-
PHP内 メールアドレス 暗号化...
-
ハッスルサーバーで「Warning: ...
-
【EC-CUBE】商品CSVのダウンロ...
-
XAMPPのPHPファイルがNotFound。
-
コマンドプロンプト エラー
おすすめ情報