apacheのテストページを表示できないときに試したこと

apache
この記事は約7分で読めます。

この間からVPSを借りて色々やっているのですが、いざWEBサービスを起動させてみてもうまく開けなかったんですね。

そもそもapacheのテストページは開けるのか?と思って色々試行錯誤した結果を残しておきます。

apacheのテストページが開けない!という人はぜひ参考にしてみてください。

DjangoでWEBアプリを公開したかった

VPSを借りて何をやりたかったかというと、最近練習がてら開発していたDjangoを使ったWEBサービスをデプロイしたかったんですよ。

とりあえずDjangoアプリを公開するようのサーバイメージで、テストページの表示まではうまく行ったんですが、Djangoの追加モジュールを入れようとしてもpipがうまく使えない。(python2系が入っていて3系が動いていない?)

んで、Djangoアプリ公開用のサーバでなくて、ただのCentOSサーバに位置から環境構築したらどうかな、と試してみたわけです。

いざ公開!……ところがアクセスできず

なんとかpython3系をインストールして、apacheを入れてdjangoを入れて、動かしてみたんですがアクセスできませんでした。

サーバーエラーすら帰ってきません。タイムアウトエラーになってしまいます。

今までテストサーバで試したときは、少なくとも503エラーなど、サーバーのエラーが帰ってきたので、接続できないのは何か他の問題が起きているはずです。

apacheでデプロイしたWEBアプリにアクセスできなくて試したこと

apacheでデプロイ(ちなみにこのデプロイっていうのは公開って意味だそうです)したWEBアプリは非常に簡単なテスト用のものだったので、うまく動いていないってことは考えられません。他の設定周りが怪しいのでそちらから攻めていきました。

そもそもテストページが開けない

さて冒頭から怪しいのですが、apacheのテストページすら開けませんでした。

以下のコマンドでapacheの状態を表示してみましたが、ちゃんとアクティブになっています。

これはネットワークの設定周りが怪しそうですね。

# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-08-12 23:13:00 JST; 26min ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 4117 (httpd)
   Status: "Total requests: 30; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─4117 /usr/sbin/httpd -DFOREGROUND
           ├─4118 /usr/sbin/httpd -DFOREGROUND
           ├─4119 /usr/sbin/httpd -DFOREGROUND
           ├─4120 /usr/sbin/httpd -DFOREGROUND
           ├─4121 /usr/sbin/httpd -DFOREGROUND
           ├─4197 /usr/sbin/httpd -DFOREGROUND
           ├─4198 /usr/sbin/httpd -DFOREGROUND
           ├─4199 /usr/sbin/httpd -DFOREGROUND
           ├─4200 /usr/sbin/httpd -DFOREGROUND
           ├─4201 /usr/sbin/httpd -DFOREGROUND
           └─4202 /usr/sbin/httpd -DFOREGROUND

Aug 12 23:13:00 163-44-175-158 systemd[1]: Starting The Apache HTTP Server...
Aug 12 23:13:00 163-44-175-158 httpd[4117]: AH00558: httpd: Could not reliably determine the server's fully qual...ssage
Aug 12 23:13:00 163-44-175-158 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

ssh経由で使ったcurlコマンドでhtmlは取得できる

ほぼほぼネットワークのせいで確定ですが、念の為apacheがちゃんと動いているか、curlコマンドで確認してみましょう。

#curl localhost

apache自体が正常に動いている場合、このコマンドを打つとapacheのテストページのhtmlがコンソールにブワーッと出てくるはずです。

firewalld(=iptables)を無効にしてみる

さて、この時点でネットワークの設定が犯人ということがほぼ確定しました。

最後にダメ押しで、firewalldを無効にしてアクセスを試してみましょう。

ちなみにこのfirewalld、CentOS6のころはiptablesって名前だったみたいですね。僕はCentOS7から使い始めたので(正確には6も触ってたが、そこまで深くない)あまり違和感はありませんでしたが。

#systemctl stop firewalld

この状態でアクセスをすると……

開けました!apacheのテストページです。やっぱりネットワークの設定がうまく行ってなかったようですね。

firewalldの設定変更

最後にこちらのQiitaの記事を参考にfirewalldの設定を変更し、80番(http)と443番(https)のポートを開けました。

試していませんが、firewalldを停止したままだとうまく設定できないみたいなので、firewalldを起動してから行いましょう。(どっちみち後で確認のために起動しなきゃいけないですし)

#systemctl start firewalld
#firewall-cmd --permanent --zone=public --add-service=http 
#firewall-cmd --permanent --zone=public --add-service=https
#firewall-cmd --reload

最後にfirewalldの起動状態を確認してから、再度アクセスを試みます。

# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-08-12 23:17:52 JST; 38s ago
     Docs: man:firewalld(1)
 Main PID: 4210 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─4210 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Aug 12 23:17:52 163-44-175-158 systemd[1]: Starting firewalld - dynamic firewall daemon...
Aug 12 23:17:52 163-44-175-158 systemd[1]: Started firewalld - dynamic firewall daemon.

アクセスすると……

apacheのテストページ

いいですね!問題なく開けました!

おわりに:テストページすら開けないときは、firewalldの設定を見直してみよう!

以上、apacheのテストページすら開けなかったときに試したことです。

問題を少しずつ切り分けし、どこが悪くて現象が発生しているのかしらべていくことで、早期の解決になりました。

apacheのテストページすら開けなくて困っていた人は参考にしてみてください。

コメント

タイトルとURLをコピーしました