サーバー設定手順 2. httpd(Apache)のインストール

httpdがインストールされていないかどうか確認

$ httpd
-bash: httpd: command not found
$ yum list installed | grep httpd
(何も表示されない)

インストール

$ su -
# yum install -y httpd

起動前の確認

httpdの起動状態

# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:httpd(8)
           man:apachectl(8)

ポートのLISTEN状態(80番がLISTENしていないことを確認する)

# ss -nat
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port
LISTEN      0      128            *:22                         *:*
LISTEN      0      100    127.0.0.1:25                         *:*
ESTAB       0      0      192.168.1.100:22                 192.168.11.111:63318
LISTEN      0      128           :::22                        :::*
LISTEN      0      100          ::1:25                        :::*

Address:Portの部分に:80のものがないので大丈夫

起動

# systemctl start httpd.service

起動後に、「起動前の確認」のコマンド二つを再度行って、変更されているか確認する。

firewalldの設定

この状態では、http://192.168.1.100 にアクセスしても ファイアーウォールでポートを開けていないので見ることができない。

firewalldの確認

  • 現在firewalldが動いているかなど
# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-08-12 00:20:49 JST; 23h ago
     Docs: man:firewalld(1)
 Main PID: 12475 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─12475 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

起動中(active)であることを確認。また、Loaded:でenabledとなっていると、自動起動が設定されている。

  • 許可されているポートの確認
# firewall-cmd --info-zone public
services: ssh dhcpv6-client

のように表示されていると思う。

  • 登録可能なサービスの確認
# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nfs3 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

見辛いが、httpとある。

firewalldにhttpのサービスの設定を登録

  • httpではどのポートを使うかの確認
# firewall-cmd --info-service http
http
  ports: 80/tcp
  protocols:
  source-ports:
  modules:
  destination:

80番ポートを利用することがわかる。

  • サービスの登録
# firewall-cmd --permanent --zone public --add-service http
  • firewalldの再起動
# firewall-cmd --reload

httpdで利用するものの色々な設定

webdevグループの作成

一般ユーザー(miy)とapacheが所属するグループを作成する。

# groupadd webdev
# usermod -aG webdev miy
# usermod -aG webdev apache

パーミッションや所有権の変更

# chown -R root:webdev /var/www/html
# chmod -R 775 /var/www/html

# chown -R root:webdev /var/www/cgi-bin
# chmod -R 775 /var/www/cgi-bin

# chown -R root:webdev /etc/httpd
# chmod -R 775 /etc/httpd

(/etc/httpdapacheへ読み書き実行の権限を与えて良いかはちょっと考え所ではある)

httpdの基本的な設定はこれで終わり。