カテゴリ | |
---|---|
サマリ | サイトをNATを使って公開する場合は? |
バージョン | 1.3.2 |
投稿者 | hir |
状態 | 完了 |
投稿日 | 2002-11-22 (FRI) 19:02:41 |
PukiWiki のサイトを NAT を使ってインターネットに公開したいと考えています。
その場合、ローカルアドレスとグローバルアドレスの両方を使ってアクセスすることになるのですけど、WikiName からのリンクがWebサーバーでホストネームとして設定してあるほうの URL に勝手に切り替わってしまうため、両方ともからアクセスするということができません。
init.php の21行目を
$script = 'http://'.getenv('SERVER_NAME').(getenv('SERVER_PORT')==80?'': (':'.getenv('SERVER_PORT'))).getenv('SCRIPT_NAME');
から
$script = getenv('SCRIPT_NAME');
というふうに直せば対処できるのですけど、何かまずいことはありませんよね?
ローカルネットワークのほうのhostsファイルとかでグローバルアドレスでもアクセスできるようにするって手もあります。Windowsでもhostsファイル使えますし。
うちは内部用(ローカルネットワーク)のDNS鯖立てちゃってます。
やっぱり名前解決の仕組みから構築しなおさなければいけないんでしょうかね?。いっそWebサーバーをNATルーターの外に追い出すか...?
ちなみに、上記のプログラム変更ではページの更新に問題が出てしまいました。
hirさんの対処法で十分だと思います。まずいことは、起こったらまた対処するということで。 :)
って書いてから気づいたけど、更新で問題出ちゃったんですね。更新できないのはかなりの問題だなぁ。いっそ$scriptをURLで書かないというのもアリだったかな?。 http://SERVER_NAME/ にあたる部分はカットでつかっちゃう。気持ち悪いかもしれないけど、確か動いたような。
サーバサイドで稼動している場合は、fopen なら localhost 扱いしますが、この場合は、単に、ディレクトリとして扱うので、/var/www/... などを付けないと、書かれているように更新で失敗すると思います。(httpとしての絶対指定ではなく、fsとしての絶対指定になってしまいます。) でも、fsockopen の場合は、頭が切れると加工のしようもなく駄目でしょう。ですので、技術的には、その程度だと思います。