CentOS7 - Apacheでポートを解放してるのにブラウザからアクセスできない
時系列になってるので先に解決策を書く
下記のコマンドをセットで実行したら治った。無事、アパッチにブラウザからアクセスできた。CentOS7では従来までのCentOS6のときのiptableではポートは開かず、firewallコマンドを実行しないとポートが開かない。調べてみたらiptableは起動すらしてなかった
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
参考
Firewall-cmdというファイアウォールが自動的に有効になっている場合があり、見落としがちです。
ポート80 (http) と 443 (https)を開けるには、下記のようにします。
/
/
/
/
wgetしたら接続を拒否される
wget http://160.16.120.119/
--2017-01-18 10:35:01-- http://160.16.120.119/
160.16.120.119:80 に接続しています... 失敗しました: 接続を拒否されました.
Apacheの実行ユーザー周りを当たってみる
wget http://160.16.120.119/
--2017-01-18 10:35:01-- http://160.16.120.119/
160.16.120.119:80 に接続しています... 失敗しました: 接続を拒否されました.
やること
・httpdの設定に入る
・httpd.confを書き換える /etc/httpd/conf
ssh_config実行ユーザー周りの状況
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache
apacheの実行ユーザーを作ってみる
# groupadd httpd
# useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
# groupadd httpd
# useradd -g httpd -d /var/empty/httpd -s /sbin/nologin httpd
・-g
オプションはyーざーの所属するイニシャライズグループを指定する
・-d
はユーザーのログインディレクトリを指定する
・-s
はユーザーのログインシェルを指定する
自作した実行ユーザーにapacheの実行ユーザーを変更した
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User httpd
Group httpd
実行ユーザーがhttpdか確認してみる
[root@tk2-236-27615 conf]#ps auxw | grep httpd
root 1421 0.0 0.1 112664 980 pts/0 R+ 11:13 0:00 grep --color=auto httpd
ちょっとgrepコマンドがよくわからなかったので調べてた
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User httpd
Group httpd
[root@tk2-236-27615 conf]#ps auxw | grep httpd
root 1421 0.0 0.1 112664 980 pts/0 R+ 11:13 0:00 grep --color=auto httpd
ちょっとgrepコマンドがよくわからなかったので調べてた
grepコマンドはファイルや標準入力から正規表現でマッチする行を探し出すコマンド。正規表現でマッチする行を探し出すコマンド。
grepコマンドの使用例
grep -Gi -e httpd httpd.conf
大小関係なくhttpd.confからhttpdという文字を抽出する
[root@tk2-236-27615 conf]# grep -Gi -e httpd httpd.conf
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# same ServerRoot for multiple httpd daemons, you will need to change at
ServerRoot "/etc/httpd"
# Statically compiled modules (those listed by `httpd -l') do not need
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
# User/Group: The name (or #number) of the user/group to run httpd as.
# running httpd, as with most system services.
User httpd
Group httpd
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# Load config files in the "/etc/httpd/conf.d" directory, if any.```
色々いじってたらバグってしまった
apacheを一度再起動できない
/etc/rc.d/init.d/httpd restart
だめ
別のコマンドで試すけどダメ
[root@tk2-236-27615 conf]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
停止すらできない
[root@tk2-236-27615 ~]# service httpd stop
Redirecting to /bin/systemctl stop httpd.service
httpd.conf.orgをhttpd.confにmv
して時を巻き戻す
/etc/rc.d/init.d/httpd restart
だめ
[root@tk2-236-27615 conf]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
[root@tk2-236-27615 ~]# service httpd stop
Redirecting to /bin/systemctl stop httpd.service
mv
して時を巻き戻す
mv httpd.conf httpd.conf.bu
mv conf.org httpd.conf
とりあえず動くようになったけど、原因を解明したい
原因を解明する
diff
で差分とか見てservice httpd configtest
とかで不具合が起こってる場所を探して治す
[root@tk2-236-27615 conf]# service httpd configtest
httpd: Syntax error on line 99 of /etc/httpd/conf/httpd.conf: /etc/httpd/conf/httpd.conf:99: <Directory> was not closed.
なんとなくもう一度wgetする
diff
で差分とか見てservice httpd configtest
とかで不具合が起こってる場所を探して治す[root@tk2-236-27615 conf]# service httpd configtest
httpd: Syntax error on line 99 of /etc/httpd/conf/httpd.conf: /etc/httpd/conf/httpd.conf:99: <Directory> was not closed.
なぜか拒否はされなくなってる(なぞ)
wget 160.16.120.119
--2017-01-18 14:41:42-- http://160.16.120.119/
160.16.120.119:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 135 [text/html]
`index.html' に保存中
100%[======================================>] 135 --.-K/s 時間 0s
2017-01-18 14:41:42 (31.7 MB/s) - `index.html' へ保存完了 [135/135]
最終手段、手助けを借りる
アクセスが拒否されてるということはポートが開いてないことが原因だ
でも、前にもポートを開く作業はしてる。でも、ポートが開かない
よく調べてみると、CentOS7では従来までのCentOS6のときのiptableではポートは開かず
調べてみたらiptableは起動すらしてなかった
解決策
下記のコマンドをセットで実行したら治った
無事、アパッチにブラウザからアクセスできた
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
参考
引用
Firewall-cmdというファイアウォールが自動的に有効になっている場合があり、見落としがちです。
ポート80 (http) と 443 (https)を開けるには、下記のようにします。
Firewall-cmdというファイアウォールが自動的に有効になっている場合があり、見落としがちです。
ポート80 (http) と 443 (https)を開けるには、下記のようにします。
Author And Source
この問題について(CentOS7 - Apacheでポートを解放してるのにブラウザからアクセスできない), 我々は、より多くの情報をここで見つけました https://qiita.com/rh_/items/ef545be0dbd3641fa63f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .