【事象】
AWSのEC2のAmazonLinuxでインスタンスを作成した。
その後、Apacheインストール・起動とFirewallを起動し
PHPファイルを実行しようとした。
(PHPインストール・PHPファイルは配置済み・PHP実行の設定済み)
PHPファイルの中でecho
していたため、ブラウザ(Chrome)で表示させようとした。
しかし、ブラウザで以下のエラーが表示された。
ERR_CONNECTION_REFUSED
【改善策】
①. sshでAmazonLinuxに入り、以下を実行する。
$ sudo firewall-cmd --add-service=http --permanent
$ sudo firewall-cmd --reload
・参考:https://repost.aws/ja/knowledge-center/ec2-instance-hosting-unresponsive-website
・引用:
ファイアウォールが実行中の場合は、ポート 80 とポート 443 で接続が許可されるように次のコマンドを実行してファイアウォールを設定します。
sshでの作業はここまでで終了。
②. AWSにログインする。
③. ネットワーク & セキュリティ
のセキュリティグループ
をクリックする。
④. セキュリティグループ名
にdefault
の他にもう一つあるので、そのチェックボックスにチェックする。
下にインバウンドのルールを編集
というボタンが出てくるのでクリックする。
⑤. タイプ
のHTTP
を以下のように変更し、ルールを保存
をクリックする
・プロトコル:TCP
・ポート範囲:80
・ソース:0.0.0.0/0
【結果】
もう一度ブラウザでPHPファイルのURLを確認したところ、表示に成功した。
【原因】
・httpを有効にしていなかった。
・⑤のソースが0.0.0.0/0になっていなかったことにより、アクセスが許可(公開)されていなかった。