サーバー設定手順 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/httpdにapacheへ読み書き実行の権限を与えて良いかはちょっと考え所ではある)
httpdの基本的な設定はこれで終わり。