質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1024閲覧

サーバーは起動するがブラウザに接続できない。

hmom

総合スコア3

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/04/13 04:55

前提・実現したいこと

環境
OS:CentOS-7.3

phpでアプリを作成しています。
これまでブラウザに接続できていたのですが、先日ターミナルでいつものように「$ php -S 192.168.33.13:8000」でサーバーを起動しようとしたところ、「Failed to listen on 192.168.33.14:8000 (reason: Address already in use)」 というエラーが出てしまいました。
再起動で解決するという記事を見かけたため、再起動しました。
すると、サーバーは起動できるようになったのですが、ブラウザで「192.168.33.14:8000/開きたいファイル名.php」を打ち込んでも「このサイトにアクセスできません 192.168.33.14 で接続が拒否されました。」と表示され、ブラウザでファイルが見れなくなってしまいました。
ブラウザに接続できていない原因を探して試しましたが、いずれも解決に至らなかったため、こちらで方法を教えて頂ければと思います。

初学者なので質問、説明等で的を得ていない部分があるかもしれませんが、ご回答いただけると嬉しいです。

試したこと

pingが通るか調べる
→ 通った
$ ping 192.168.33.14
PING 192.168.33.14 (192.168.33.14) 56(84) bytes of data.
64 bytes from 192.168.33.14: icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from 192.168.33.14: icmp_seq=2 ttl=64 time=0.053 ms
64 bytes from 192.168.33.14: icmp_seq=3 ttl=64 time=0.061 ms
64 bytes from 192.168.33.14: icmp_seq=4 ttl=64 time=0.086 ms
^C
--- 192.168.33.14 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.041/0.060/0.086/0.017 ms

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ポートスキャンして開いているポート番号を確認
$ nmap localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2021-04-06 07:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00066s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3306/tcp open mysql

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ファイアーウォールの確認
→ INPUT ACCEPTで問題なさそう

$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
INPUT_direct all -- anywhere anywhere
INPUT_ZONES_SOURCE all -- anywhere anywhere
INPUT_ZONES all -- anywhere anywhere
DROP all -- anywhere anywhere ctstate INVALID
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ポート番号で実行中のコマンドを調べた
$ lsof -i:8000
→ 表示されなかったので競合していなさそう

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
接続待ちをしているポートを確認(ltunp4)
→ 22 LISTEN で問題なさそう

$ netstat -ltunp4
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 127.0.0.1:323 0.0.0.0:* -
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
接続待ちをしているポートを確認(ltunp6)
→80 LISTEN で問題なさそう 

$ sudo netstat -ltunp6
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::33060 :::* LISTEN 1333/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1333/mysqld
tcp6 0 0 :::80 :::* LISTEN 1076/httpd
tcp6 0 0 :::22 :::* LISTEN 1078/sshd
udp6 0 0 ::1:323 :::* 647/chronyd

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

各コマンドで実行している結果はビルトインWebサーバを起動前に実行/確認したものでしょうか?
そうでなければおかしい結果です。

ポートスキャンして開いているポート番号を確認

8000/tcpがリスニング状態でないとおかしい

ファイアーウォールの確認

使用しているミドルはiptablesですか?7系ではfirewalldがデフォルトですが・・・

ポート番号で実行中のコマンドを調べた

ビルトインWebサーバを起動後の状態であれば使用されていなければおかしい

接続待ちをしているポートを確認(ltunp4)

22/tcpはデフォルトではsshのポートのため、本件とは関係ない確認事項かと

接続待ちをしているポートを確認(ltunp6)

80/tcpもphpが提供しているWebサーバのポートではないため、本件とは関係ない確認事項かと
また、22/tcpはIPv4、80/tcpはIPv6での確認としており、あまり意味をなさない確認事項に思えます。

こちら開発環境での事象ですか?
firewalldのサービスが停止状態、自動起動となっており、再起動をトリガにfirewalldが起動、パケットが阻害されていると想像しています。

投稿2021/04/13 05:17

over

総合スコア4315

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hmom

2021/04/14 04:37 編集

回答ありがとうございます! ビルドインサーバーを「$ php -S 192.168.33.13:8000」で起動後に色々調べたと思うのですが、ごちゃごちゃいじっていたので、一度止めてしまい、その状態で調べたりしてたのかもしれません。 ご推察の通り、firewalldを停止することで、ブラウザに接続することができました。 数日間分からずに途方にくれていたので、本当に助かりました。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問