May 15, 2023

UBUNTU20.04 LTS 에 APACHE웹서버 설치

UBUNTU20.04 LTS 에 APACHE웹서버  설치

테스트 서버 구축을 위한 것이기 때문에 기본 레포지토리에 있는것을 이용하여 설치한다.

1. 아파치 서버 설치

설치전

init.d 에 있는 daemon들의 목록을 확인해본다.

root@k5w1hcd-155105:/etc/init.d# ll
total 140
drwxr-xr-x  2 root root 4096 Dec 31 06:27 ./
drwxr-xr-x 92 root root 4096 Dec 31 06:34 ../
-rwxr-xr-x  1 root root 3740 Apr  1  2020 apparmor*
-rwxr-xr-x  1 root root 2964 Dec  7  2019 apport*
-rwxr-xr-x  1 root root 1071 Jul 24  2018 atd*
-rwxr-xr-x  1 root root 1232 Mar 27  2020 console-setup.sh*
-rwxr-xr-x  1 root root 3059 Feb 11  2020 cron*
-rwxr-xr-x  1 root root  937 Feb  4  2020 cryptdisks*
-rwxr-xr-x  1 root root  896 Feb  4  2020 cryptdisks-early*
-rwxr-xr-x  1 root root 3152 Sep 30  2019 dbus*
-rwxr-xr-x  1 root root  985 Apr 15  2020 grub-common*
-rwxr-xr-x  1 root root 3809 Jul 29  2019 hwclock.sh*
-rwxr-xr-x  1 root root 2638 Dec 14  2019 irqbalance*
-rwxr-xr-x  1 root root 1503 Apr  2  2019 iscsid*
-rwxr-xr-x  1 root root 1479 Nov 27  2019 keyboard-setup.sh*
-rwxr-xr-x  1 root root 2044 Feb 19  2020 kmod*
-rwxr-xr-x  1 root root  695 Jan 28  2020 lvm2*
-rwxr-xr-x  1 root root  586 Jan 28  2020 lvm2-lvmpolld*
-rwxr-xr-x  1 root root 2827 Jan 10  2020 multipath-tools*
-rwxr-xr-x  1 root root 1364 Sep 14  2019 netfilter-persistent*
-rwxr-xr-x  1 root root 2503 Apr  2  2019 open-iscsi*
-rwxr-xr-x  1 root root 1846 Mar 10  2020 open-vm-tools*
-rwxr-xr-x  1 root root 1366 Mar 23  2020 plymouth*
-rwxr-xr-x  1 root root  752 Mar 23  2020 plymouth-log*
-rwxr-xr-x  1 root root  924 Feb 14  2020 procps*
-rwxr-xr-x  1 root root 4417 Oct 15  2019 rsync*
-rwxr-xr-x  1 root root 2864 Mar  7  2019 rsyslog*
-rwxr-xr-x  1 root root 1222 Apr  3  2017 screen-cleanup*
-rwxr-xr-x  1 root root 3939 Feb 26  2020 ssh*
-rwxr-xr-x  1 root root 6872 Apr 22  2020 udev*
-rwxr-xr-x  1 root root 2083 Jan 22  2020 ufw*
-rwxr-xr-x  1 root root 1391 Apr 14  2020 unattended-upgrades*
-rwxr-xr-x  1 root root 1306 Apr  3  2020 uuidd*
root@k5w1hcd-155105:/etc/init.d#

systemctl status 명령으로 현재 동작여부도 확인해본다.

root@k5w1hcd-155105:/etc/init.d# systemctl status
● k5w1hcd-155105
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Wed 2021-12-29 23:31:28 KST; 2 weeks 0 days ago
   CGroup: /
           ├─user.slice
           │ └─user-0.slice
           │   ├─session-408.scope
           │   │ ├─286317 sshd: root@notty
           │   │ └─286511 /usr/lib/openssh/sftp-server
           │   ├─session-406.scope
           │   │ ├─286315 sshd: root@pts/0
           │   │ ├─286516 -bash
           │   │ ├─286519 bash -c while [ -d /proc/$PPID ]; do sleep 1;head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file->
           │   │ ├─290640 sleep 1
           │   │ ├─290641 systemctl status
           │   │ └─290642 pager
           │   └─user@0.service …
           │     └─init.scope
           │       ├─286334 /lib/systemd/systemd --user
           │       └─286335 (sd-pam)
           ├─init.scope
           │ ├─  1 /lib/systemd/systemd --system --deserialize 32
           │ └─543 bpfilter_umh
           └─system.slice
             ├─irqbalance.service
             │ └─705 /usr/sbin/irqbalance --foreground
             ├─packagekit.service
             │ └─288728 /usr/lib/packagekit/packagekitd
             ├─systemd-networkd.service
             │ └─120896 /lib/systemd/systemd-networkd
             ├─systemd-udevd.service
             │ └─114375 /lib/systemd/systemd-udevd
             ├─cron.service
             │ └─693 /usr/sbin/cron -f
             ├─system-serial\x2dgetty.slice
             │ └─serial-getty@ttyS0.service
             │   └─775 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220
             ├─polkit.service
             │ └─155881 /usr/lib/policykit-1/polkitd --no-debug
             ├─networkd-dispatcher.service
             │ └─706 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers
             ├─multipathd.service
             │ └─501 /sbin/multipathd -d -s
             ├─accounts-daemon.service
             │ └─129171 /usr/lib/accountsservice/accounts-daemon
             ├─systemd-journald.service
             │ └─120922 /lib/systemd/systemd-journald
             ├─atd.service
             │ └─732 /usr/sbin/atd -f
             ├─unattended-upgrades.service
             │ └─839 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal
             ├─ssh.service
             │ └─130082 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
             ├─fwupd.service
             │ └─287035 /usr/libexec/fwupd/fwupd
             ├─snapd.service
             │ └─112215 /usr/lib/snapd/snapd
             ├─rsyslog.service
             │ └─709 /usr/sbin/rsyslogd -n -iNONE
             ├─systemd-resolved.service
             │ └─120916 /lib/systemd/systemd-resolved
             ├─dbus.service
             │ └─695 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
             ├─systemd-timesyncd.service
             │ └─121015 /lib/systemd/systemd-timesyncd
             ├─system-getty.slice
             │ └─getty@tty1.service
             │   └─783 /sbin/agetty -o -p -- \u --noclear tty1 linux
             └─systemd-logind.service
               └─727 /lib/systemd/systemd-logind

root@k5w1hcd-155105:/etc/init.d#

apt-get 을 이용하여 설치한다.

$ sudo apt-get update
$ sudo apt-get install apache2

설치후 확인을 해보면 apache2 가 있는 것을 확인할 수 있다.

root@k5w1hcd-155105:/etc/init.d# ll /etc/init.d/
total 152
drwxr-xr-x  2 root root 4096 Jan 13 13:40 ./
drwxr-xr-x 93 root root 4096 Jan 13 13:40 ../
-rwxr-xr-x  1 root root 2489 Oct  1  2020 apache-htcacheclean*
-rwxr-xr-x  1 root root 8181 Oct  1  2020 apache2*
-rwxr-xr-x  1 root root 3740 Apr  1  2020 apparmor*
-rwxr-xr-x  1 root root 2964 Dec  7  2019 apport*
-rwxr-xr-x  1 root root 1071 Jul 24  2018 atd*
-rwxr-xr-x  1 root root 1232 Mar 27  2020 console-setup.sh*
-rwxr-xr-x  1 root root 3059 Feb 11  2020 cron*
-rwxr-xr-x  1 root root  937 Feb  4  2020 cryptdisks*
-rwxr-xr-x  1 root root  896 Feb  4  2020 cryptdisks-early*
-rwxr-xr-x  1 root root 3152 Sep 30  2019 dbus*
-rwxr-xr-x  1 root root  985 Apr 15  2020 grub-common*
-rwxr-xr-x  1 root root 3809 Jul 29  2019 hwclock.sh*
-rwxr-xr-x  1 root root 2638 Dec 14  2019 irqbalance*
-rwxr-xr-x  1 root root 1503 Apr  2  2019 iscsid*
-rwxr-xr-x  1 root root 1479 Nov 27  2019 keyboard-setup.sh*
-rwxr-xr-x  1 root root 2044 Feb 19  2020 kmod*
-rwxr-xr-x  1 root root  695 Jan 28  2020 lvm2*
-rwxr-xr-x  1 root root  586 Jan 28  2020 lvm2-lvmpolld*
-rwxr-xr-x  1 root root 2827 Jan 10  2020 multipath-tools*
-rwxr-xr-x  1 root root 1364 Sep 14  2019 netfilter-persistent*
-rwxr-xr-x  1 root root 2503 Apr  2  2019 open-iscsi*
-rwxr-xr-x  1 root root 1846 Mar 10  2020 open-vm-tools*
-rwxr-xr-x  1 root root 1366 Mar 23  2020 plymouth*
-rwxr-xr-x  1 root root  752 Mar 23  2020 plymouth-log*
-rwxr-xr-x  1 root root  924 Feb 14  2020 procps*
-rwxr-xr-x  1 root root 4417 Oct 15  2019 rsync*
-rwxr-xr-x  1 root root 2864 Mar  7  2019 rsyslog*
-rwxr-xr-x  1 root root 1222 Apr  3  2017 screen-cleanup*
-rwxr-xr-x  1 root root 3939 Feb 26  2020 ssh*
-rwxr-xr-x  1 root root 6872 Apr 22  2020 udev*
-rwxr-xr-x  1 root root 2083 Jan 22  2020 ufw*
-rwxr-xr-x  1 root root 1391 Apr 14  2020 unattended-upgrades*
-rwxr-xr-x  1 root root 1306 Apr  3  2020 uuidd*
root@k5w1hcd-155105:/etc/init.d#

2. 아파치 서버 실행

$ sudo service apache2 start

또는

sudo systemctl start apache2

실행 여부를 확인해보면

root@k5w1hcd-155105:~# ps aux | grep apache2
root      292093  0.0  0.2   6672  4780 ?        Ss   13:40   0:00 /usr/sbin/apache2 -k start
www-data  292096  0.0  0.2 1211560 4452 ?        Sl   13:40   0:00 /usr/sbin/apache2 -k start
www-data  292097  0.0  0.2 1211560 4452 ?        Sl   13:40   0:00 /usr/sbin/apache2 -k start
root      294053  0.0  0.0   8160   736 pts/0    S+   13:44   0:00 grep --color=auto apache2
root@k5w1hcd-155105:~# 

또는

root@k5w1hcd-155105:~# systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-01-13 13:40:36 KST; 6min ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 292093 (apache2)
      Tasks: 55 (limit: 2344)
     Memory: 5.8M
     CGroup: /system.slice/apache2.service
             ├─292093 /usr/sbin/apache2 -k start
             ├─292096 /usr/sbin/apache2 -k start
             └─292097 /usr/sbin/apache2 -k start

Jan 13 13:40:36 k5w1hcd-155105 systemd[1]: Starting The Apache HTTP Server...
Jan 13 13:40:36 k5w1hcd-155105 apachectl[292086]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 10.6.2.160. Set the 'ServerName' dire>
Jan 13 13:40:36 k5w1hcd-155105 systemd[1]: Started The Apache HTTP Server.

root@k5w1hcd-155105:~#

3. 아파치 설정

3-1. 설정 디렉토리 및 파일

/etc/apache2
config 파일 위치로, config 파일들이 이 디렉토리 밑에 위치하고 있다.

/etc/apache2/apache2.conf
기본 config 파일로, 다른 리눅스 배포판에서는 httpd.conf를 config 파일로 사용하고 있지만 우분투에서는 apache2.conf를 사용한다.

/etc/apache2/conf.d
고급 config 파일로, 다른 리눅스 배포판에서 httpd.conf 파일 하나에 설정되어 있던 문자셋과 에러메시지, 보안과 관련된 설정을 따로 따로 분리하여 conf.d 디렉토리밑에서 설정하고 있다. 또한 사용자가 설치하게 되는 Apache와 관련된 애플리케이션들의 설정파일들도 위치하게 된다.

/etc/apache2/envvars
apache2ctl 환경설정 파일이다.

/etc/apache2/httpd.conf
사용자의 특정 설정 파일로, 역사적으로 httpd.conf 가 config 파일이였는데 지금은 빈파일이다. 사용자가 특정 설정을 부여해서 사용할 수 잇다.

/etc/apache2/magic
파일의 시작값(magic number) 데이터베이스. 이 값에 기반해 전송하는 파일의 MIME Type을 결정한다. 가급적 수정하지 말 것.

/etc/apache2/mods-available
사용가능한 Apache 모듈을 불러오는 곳이다.

/etc/apache2/mods-enabled
위의 /etc/apache2/mods-available 의 모듈중에 사용할 모듈을 심볼릭 링크로 추가하여 실제 동작하게 만든다.

/etc/apache2/ports.conf
Apache 서버의 서비스 포트 설정으로 http의 기본값 80 과 https의 기본값 443, 가상호스트의 포트들을 설정할 수 있다.

/etc/apache2/sites-available
서버에서 운영할 사이트의 설정파일이다.

/etc/apache2/sites-enabled
위의 /etc/apache2/sites-available에서 설정한 파일을 심볼릭 링크로 추가하여 실제 운영에 사용할 설정파일들이다.