PC環境更新:家の中でWEBサーバ | やまだの「死ぬまでにゲームをつくりたい!!」

PC環境更新:家の中でWEBサーバ

2019年にXAMPPをインストールして、

スマホからアクセスするが全然できてなかった。

今日やっとできました(TへT)

(お仕事だとバリバリWEBサービス用意して提供してるってのに。。。)

背景

サーバからデータを取得して、表示するようなゲームをそろそろ考えよう。

タブレット二つから、自分の画面だけ見えるようなもの。

まずはチャットみたいなものを作ろうかな。

そうすると、ポーリングじゃきつい、ブロッキングしてイベント駆動するようなプログラミングってどうかな。。。

 

最初は PERLの4引数 SELECTを紹介され、使い方が難しく、っていうか所望のものかどうかもわからない。

つぎには IO:Selectを紹介され、結局ブロッキングなら flock かなと。

でも、結局、更新中にロック状態を維持するのが難しい。

どう頑張ってもポーリングになりそう。

少なくともレンタルサーバに負担かけられないな。。。

 

じゃあ、サーバ立てるか。つうか、やりかけたXAMPPを何とかするか。

XAMPP

古いって言われるかもだけど、まあWindowsでApache動かそうと思ったらこれでいいかなあ。
httpd.conf で、サーバルートがわからなかったので苦戦した。
以下に設定していた。。。

DocumentRoot "D:\webSrv\htdocs"

あとは、CGIが動かなくて、PERLの設定パスを変更した。

#!/usr/local/bin/perl のままだった。2年前の俺。。。

#!D:\XAMPP\perl\bin\perl.exe にした。環境変数もいちお通した。

とりCGIが動いたことを確認。ついでにサービスに登録しておいた。

ログインせずともサービスできれば最高。

ルーターの設定・PCのIP固定化

苦戦した。苦戦したのは設定のせいじゃなかったようだが。。。
うちのルータは、IOデータ WNPR1167F / WNPR1750G / WNPR2600G系のルータ、
LAN設定から「DHCP」でIPアドレスの固定化を実施。ipconfigなどからMACアドレスさえわかれば。
詳細設定から「ポート開放」を設定した。
PCのIP固定化について、検索してIPV4のプロパティから行けた。
やれることはやったつもりだが、つながらない!!!

Windows ファイアウォール

検索すれば出てくる。
まずはファイアーウォールをOFFにとにかくしたが駄目だった。
パブリックもプライベートネットワークもとりあえずOFF
関係ないと思うけど、ファイアウォールの例外にアプリケーションを追加 しておいた。
それでもだめだ。なんでだ!?

結論

できた。よくわからないが、最初、フォルダの下がiPhoneでは見えなかった。
フォルダを指さずに先ほど動いたCGIのパスを手動で入れた。そうしたらなんと動いた。
 

なんだろう、最初にtest.htmlを用意して、そこに対するアクセスで試験していれば、
PCやサーバ設定だけに注力できた気がする。
いろんなちょっとしたことがずれて達成できなかったんだなと動いてから理解した。
やっぱり環境系は大変。というのと、丁寧に解決していけばうまくいくんだなとも。
 
これで、PCをサーバにタブレットから表示できるようになった。
これで誰かに迷惑かけることを気にせず、めっちゃポーリング実装でいい。
まあ、最終的には、C言語でWEBサーバも作れますので、
メモリ保持したりSENDタイミングずらしたりはお手の物です。