ローカルネットワーク上に2つのサーバーがあります.1つはWebフロントエンドで、もう1つはMySQLバックエンドです。私はこのようなPHPスクリプトを持っています:ページをリモートで表示するとPHP MySQLが失敗する
<?php
error_reporting(-1);
echo "Connecting...\n";
$link = mysql_connect("192.168.1.15", "-----", "-----") or die(mysql_error());
echo "Communicating with the server...";
mysql_query("INSERT INTO .....
//More code down here...
?>
このスクリプトはバックエンドサーバーに接続するために私のWebフロントエンドで呼び出されます。このスクリプトは、ローカルネットワークからアクセスされたとき(私はhttp://192.168.1.14に行くことによって、ページを開いたとき、すなわち)は、スクリプトは
Connecting...
Communicating with the server...
を出力し、それが必要として行が、データベースに追加されます。しかし、私はリモートで(つまりはhttp://myDomainName.com/mysql_insert_script.phpに行く)、ローカルネットワーク上の接続ではないから、接続したときに、私が見るすべては次のとおりです。
Connecting...
エラーメッセージが続かない、スクリプトは単に遮断し、何のデータがに追加されていませんデータベース。上記のスクリプトを単に必要とするサーバーに2番目の 'proxy'スクリプトを置き、リモートからプロキシにアクセスすると、すべて正常に動作します。あなたがいない何を働き、何の良いアイデアを得ることができるので、以下では、プロキシスクリプトです:
<?php
//this script makes it appear that the mysql_script is being viewed from the local network
//I exist on the web frontend at 192.168.1.14
require("http://192.168.1.15/mysql_insert_script.php");
?>
私は任意のより多くの情報を提供することができない場合は申し訳ありませんが、私は困惑しています。どんな助けもありがとう。
クリス
P.S. - 私はmysqlサーバがローカルネットワーク上の外部ホストからアクセス可能であることを確認しましたが、ネットワーク外からの接続を防ぐファイアウォールがあります。しかし、MySQLサーバーとそれに接続しているPHPスクリプトはどちらもローカルネット上で実行されるため、これは問題にはならないと思います。
必要がなくても実行すると、error_logに何か追加されますか? –
あなたのプロキシで 'require(" http://myDomainName.com/mysql_insert_script.php ");を試しましたか? –
php.iniでdisplay_errorsまたはerror_log/log_errorsが有効になっていることを確認し、MySQL接続エラーが記録されるようにします。 – leepowers