

現在、macでphpのフレームワークslimを使って、  
ビルトインウェブサーバーであるサイトの開発を試みています。

macのブラウザからは、そのサイトにアクセスできるのですが、  
iPhoneからはできません。  
２週間前は同じ手法でできていたのですが、  
二週間いじらなかったら、こうなってました。

# macでサーバー起動

php -S 0.0.0.0:8080

# ifconfigでmacのIPアドレスを確認

192.168.11.3

# macのブラウザでhttp://127.0.0.1:8080にアクセス

普通にサイトが見れる

# 同じネットワークにつながってるiPhoneで192.168.11.3:8080にアクセス

「ページを開けません。Safariはサーバーに接続できませんでした」と表示されます。  
そして、サーバーを起動してるターミナルに↓のエラーが出ます。  
[Sat Jun 6 21:15:11 2015] 192.168.11.1:3424 Invalid request (Unexpected EOF)

ちなみに、同じネットワークの別PCから同じURLにアクセスしても、  
やはりアクセスできず、↑と同じエラーが出ます。

iPhoneとPCが同じネットワークにつながっていることは確認済みです。

以前は、  
そもそもこの方法を知らずに、  
外部からアクセスする方法を調べてアクセスできていたのに、  
二週間位ぶりに同じ方法をやったらアクセスできませんでした。

他に何か設定がおかしかったり、原因のあたりがつくところがあれば教えて下さい。


CC BY-SA 3.0
2015-06-06T12:28:22.210
11045
2015-08-06T01:01:42.753
9593
question
php slim
phpのビルトインウェブサーバーに外部からアクセスが出来ません


ターミナルに「Invalid request (Unexpected EOF)」と出るということは、ビルトインサーバへのアクセスは来ているような気がします。

問題を切り分ける為に、まずは slim
と関係の無いディレクトリを作成し、echoだけするindex.phpを置いてみて試してみてはいかがでしょうか？echoが表示されるようなら、問題は slim
側の設定や実装にあるかもしれません。

index.php

[code]

    <?php    
    echo "Hello, World";
    
[/code]


CC BY-SA 3.0
2015-06-06T14:01:33.507
11048
2015-06-06T14:07:21.767
2015-06-06T14:07:21.767
9529
9529
11045
answer


Apache や nginx ではいかがでしょうか？

ほかにトンネルサービスの ngrok を使った方法があります。私の環境では動作を確認できました。ngrok を使ったやり方は次のようになります。

最初にコマンドツールの ngrok をインストールしてコマンドラインから実行できるようにします。

次に ngrok のアカウントを作成します。Github や Google アカウントによる Oauth 認証が利用できます。

今度は ngrok のダッシュボードのページ (dashboard)
で表示される認証トークンを引数にして次のコマンドを実行します。コピペできるようにコードが表示されています。

[code]

    ./ngrok authtoken 認証トークン
    
[/code]

最後に http サブコマンドを実行してサーバーを公開します。引数にはポート番号を指定します。

[code]

    ./ngrok http 8080
    
[/code]

「Forwarding」の右側にアクセスできる URL が示されるので、ブラウザーでその URL にアクセスしてページが表示されることを確認します。


CC BY-SA 3.0
2015-08-06T01:01:42.753
13088
2015-08-06T01:01:42.753
568
11045
answer