> ## Content Index
> Fetch the complete content index at: https://suitmyself.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# UBUNTU20.04 LTS 에 APACHE웹서버  설치
- URL: https://suitmyself.com/ubuntu/
- Published: 2023-05-15T13:35:43.000Z
- Updated: 2026-09-16T03:18:30.000Z
- Author: Benjamin Kim
- Tags: Server, ubuntu, apache, #Import 2026-09-15 05:58

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

## 1\. 아파치 서버 설치

설치전

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

```bash
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 명령으로 현재 동작여부도 확인해본다.

```bash
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 을 이용하여 설치한다.

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

```

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

```bash
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\. 아파치 서버 실행

```bash
$ sudo service apache2 start

```

또는

```bash
sudo systemctl start apache2

```

실행 여부를 확인해보면

```bash
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:~# 

```

또는

```bash
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에서 설정한 파일을 심볼릭 링크로 추가하여 실제 운영에 사용할 설정파일들이다.