OS/Linux - Ubuntu

[Linux - 리눅스 / Ubuntu - 우분투] 아파치 설치 및 활성화 - 웹서버 접속 및 웹페이지, 일반 사용자 계정에 웹 설정

주누다 2015. 5. 8. 10:42
반응형

웹서버 설치와 사용

- 리눅스 시스템에서 많이 사용되고 있는 분야가 웹 서비스

- 웹 서비스를 제공하기 우해서는 리눅스에 웹 서버가 설치되어 있어야함

- 전 세계적으로 널리 사용되는 웹 서버인 아파치(Apache)는 리눅스에서 무료로 사용 가능



아파치 설치

- 아파치 웹 서버는 apt-get 명령으로 간단하게 설치 가능

- 패키지의 이름은 'apache2'

===========================================================================

sjw@sjw-HP-Mini-110-3500:~$ sudo apt-get install apahce2
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
E: apahce2 패키지를 찾을 수 없습니다
sjw@sjw-HP-Mini-110-3500:~$
sjw@sjw-HP-Mini-110-3500:~$
sjw@sjw-HP-Mini-110-3500:~$ sudo apt-get install apache2
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다      
상태 정보를 읽는 중입니다... 완료
다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다:
  linux-headers-3.13.0-32 linux-headers-3.13.0-32-generic
  linux-image-3.13.0-32-generic linux-image-extra-3.13.0-32-generic
Use 'apt-get autoremove' to remove them.
다음 패키지를 더 설치할 것입니다:
  apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap
제안하는 패키지:
  apache2-doc apache2-suexec-pristine apache2-suexec-custom apache2-utils
다음 새 패키지를 설치할 것입니다:
  apache2 apache2-bin apache2-data libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap
0개 업그레이드, 7개 새로 설치, 0개 제거 및 3개 업그레이드 안 함.
1,271 k바이트 아카이브를 받아야 합니다.
이 작업 후 5,238 k바이트의 디스크 공간을 더 사용하게 됩니다.
계속 하시겠습니까? [Y/n] y
받기:1 http://kr.archive.ubuntu.com/ubuntu/ trusty/main libapr1 amd64 1.5.0-1 [85.1 kB]
받기:2 http://kr.archive.ubuntu.com/ubuntu/ trusty/main libaprutil1 amd64 1.5.3-1 [76.4 kB]
받기:3 http://kr.archive.ubuntu.com/ubuntu/ trusty/main libaprutil1-dbd-sqlite3 amd64 1.5.3-1 [10.5 kB]
받기:4 http://kr.archive.ubuntu.com/ubuntu/ trusty/main libaprutil1-ldap amd64 1.5.3-1 [8,634 B]
받기:5 http://kr.archive.ubuntu.com/ubuntu/ trusty-updates/main apache2-bin amd64 2.4.7-1ubuntu4.4 [843 kB]
받기:6 http://kr.archive.ubuntu.com/ubuntu/ trusty-updates/main apache2-data all 2.4.7-1ubuntu4.4 [160 kB]
받기:7 http://kr.archive.ubuntu.com/ubuntu/ trusty-updates/main apache2 amd64 2.4.7-1ubuntu4.4 [87.4 kB]
내려받기 1,271 k바이트, 소요시간 1초 (850 k바이트/초)
Selecting previously unselected package libapr1:amd64.
(데이터베이스 읽는중 ...현재 261118개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../libapr1_1.5.0-1_amd64.deb ...
Unpacking libapr1:amd64 (1.5.0-1) ...
Selecting previously unselected package libaprutil1:amd64.
Preparing to unpack .../libaprutil1_1.5.3-1_amd64.deb ...
Unpacking libaprutil1:amd64 (1.5.3-1) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.
Preparing to unpack .../libaprutil1-dbd-sqlite3_1.5.3-1_amd64.deb ...
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.5.3-1) ...
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack .../libaprutil1-ldap_1.5.3-1_amd64.deb ...
Unpacking libaprutil1-ldap:amd64 (1.5.3-1) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../apache2-bin_2.4.7-1ubuntu4.4_amd64.deb ...
Unpacking apache2-bin (2.4.7-1ubuntu4.4) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../apache2-data_2.4.7-1ubuntu4.4_all.deb ...
Unpacking apache2-data (2.4.7-1ubuntu4.4) ...
Selecting previously unselected package apache2.
Preparing to unpack .../apache2_2.4.7-1ubuntu4.4_amd64.deb ...
Unpacking apache2 (2.4.7-1ubuntu4.4) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for ufw (0.34~rc-0ubuntu2) ...
libapr1:amd64 (1.5.0-1) 설정하는 중입니다 ...
libaprutil1:amd64 (1.5.3-1) 설정하는 중입니다 ...
libaprutil1-dbd-sqlite3:amd64 (1.5.3-1) 설정하는 중입니다 ...
libaprutil1-ldap:amd64 (1.5.3-1) 설정하는 중입니다 ...
apache2-bin (2.4.7-1ubuntu4.4) 설정하는 중입니다 ...
apache2-data (2.4.7-1ubuntu4.4) 설정하는 중입니다 ...
apache2 (2.4.7-1ubuntu4.4) 설정하는 중입니다 ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
 * Starting web server apache2                                                  AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
 *
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for ufw (0.34~rc-0ubuntu2) ...
sjw@sjw-HP-Mini-110-3500:~$ 

===========================================================================




아파치 활성화 

- 서비스의 이름은 'apache2'

- service 명령으로 실행하면 됨

- apache2 는 독자형으로 동작하는 데몬

- ps 명령으로 확인시 apache2 데몬이 여러개 동작하는 것을 확인

===========================================================================

sjw@sjw-HP-Mini-110-3500:~$ sudo service apache2 start
 * Starting web server apache2                                                   *
sjw@sjw-HP-Mini-110-3500:~$ ps -ef | grep apache2
root      7977  2306  0 11:02 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  7980  7977  0 11:02 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  7981  7977  0 11:02 ?        00:00:00 /usr/sbin/apache2 -k start
sjw       8249  3300  0 11:05 pts/2    00:00:00 grep --color=auto apache2
sjw@sjw-HP-Mini-110-3500:~$ 

===========================================================================




웹 서버 접속 및 웹 페이지 띄우기

- 현재 웹 서버의  기본 디렉터리는 '/var/www'

- '/var/www' 디렉터리 안에 'index.html' 파일이 있음

===========================================================================

sjw@sjw-HP-Mini-110-3500:~$ cd /var/www
sjw@sjw-HP-Mini-110-3500:/var/www$ ls
html
sjw@sjw-HP-Mini-110-3500:/var/www$ cd html
sjw@sjw-HP-Mini-110-3500:/var/www/html$ ls
index.html  index_old.html
sjw@sjw-HP-Mini-110-3500:/var/www/html$ sudo gedit index.html

(gedit:9237): IBUS-WARNING **: The owner of /home/sjw/.config/ibus/bus is not root!

(gedit:9237): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files

(gedit:9237): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files
sjw@sjw-HP-Mini-110-3500:/var/www/html$ sudo vi index.html
sjw@sjw-HP-Mini-110-3500:/var/www/html$ 

===========================================================================




일반 사용자 계정에 웹 설정하기

- '/var/www' 디렉터리는 웹 서버의 기본 디렉터리

- 리눅스를 사용하는 여러 사용자가 공용으로 사용할 수 있는 디렉터리가 아님

- 일반 사용자 계정에서 웹 페이지를 작성하고 서비스

일반 사용자 계정을 위한 웹 설정하기

- 일반 사용자 계정에서 웹 서비스를 제공하려면 아파치 설정 파일을 수정해야함

- 아파치 웹 서버의 설정 파일은 '/etc/apache2' 디렉터리에 있음

- 사용자 계정의 웹 설정과 관련된 파일은 '/etc/apache2/mods-available/userdir.conf'

 

1)

- '/etc/apache2/mods-available' 디렉터리로 이동

======================================================================

sjw@sjw-HP-Mini-110-3500:~$ cd /etc/apache2
sjw@sjw-HP-Mini-110-3500:/etc/apache2$ ls
apache2.conf    conf-enabled  magic           mods-enabled  sites-available
conf-available  envvars       mods-available  ports.conf    sites-enabled
sjw@sjw-HP-Mini-110-3500:/etc/apache2$ cd mods-available/
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-available$

======================================================================



2)

- '/etc/apache2/mods-available/userdir.conf' 파일 수정

- 'UserDir disabled' 는 사용자 디렉터리에서 웹 페이지 구축을 허용하는지를 확인하는 부분

- 'UserDir disabled' 를 주석처리하면 허용한다는 의미

- 'UserDir public_html' 은 사용자 디렉터리에서 'public_html' 을 웹 페이지의 기본 디렉터리로 사용한다는 의미

======================================================================

sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-available$ sudo vi userdir.conf


<IfModule mod_userdir.c>
        UserDir public_html
#       UserDir disabled root

        <Directory /home/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
"userdir.conf" 17 lines, 424 characters

======================================================================



3)

- mods-available 디렉터리의 'userdir.conf' 파일과 'userdir.load' 파일을 

  'mods-enabled' 디렉터리에서 심벌릭 링크로 연결함

======================================================================

sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-available$ cd ../mods-enabled/
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/userdir.conf
[sudo] password for sjw:
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ ls
access_compat.load  authz_host.load  dir.load        negotiation.conf
alias.conf          authz_user.load  env.load        negotiation.load
alias.load          autoindex.conf   filter.load     setenvif.conf
auth_basic.load     autoindex.load   mime.conf       setenvif.load
authn_core.load     deflate.conf     mime.load       status.conf
authn_file.load     deflate.load     mpm_event.conf  status.load
authz_core.load     dir.conf         mpm_event.load  userdir.conf
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ sudo ln -s ../mods-available/userdir.load
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ ls
access_compat.load  authz_user.load  filter.load       setenvif.load
alias.conf          autoindex.conf   mime.conf         status.conf
alias.load          autoindex.load   mime.load         status.load
auth_basic.load     deflate.conf     mpm_event.conf    userdir.conf
authn_core.load     deflate.load     mpm_event.load    userdir.load
authn_file.load     dir.conf         negotiation.conf
authz_core.load     dir.load         negotiation.load
authz_host.load     env.load         setenvif.conf
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ 

======================================================================



4)

- 설정 파일이 변경되었으므로 apache2 서비스를 다시 동작

======================================================================

sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ sudo service apache2 restart * Restarting web server apache2                                                AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
                                                                         [ OK ]
sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$

======================================================================



5) 사용자 홈 디렉터리의 'public_html' 디렉터리를 만듬

======================================================================

sjw@sjw-HP-Mini-110-3500:/etc/apache2/mods-enabled$ cd
sjw@sjw-HP-Mini-110-3500:~$ mkdir public_html
sjw@sjw-HP-Mini-110-3500:~$
======================================================================





일반 사용자 계정에서 웹 페이지 자성하기

 

1) 'public_html' 디렉터리 아래에 'index.html' 파일을 생성

======================================================================

sjw@sjw-HP-Mini-110-3500:~/public_html$ vi index.html


<html>
<head>
<title>html test public</title>
</head>
<body>
User1 Web Page!!!
</body>
</html>
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
~                                                                              
"index.html" 8 lines, 95 characters

======================================================================



2)

- 웹 브라우저에서 확인

- IP 주소는 자기 리눅스 시스템의 IP 주소를 입력

- 사용자 계정 앞에 ~ 를 넣는 것을 잊으면 안 됨

======================================================================

http://192.168.0.12/~sjw

http://localhost/~sjw

======================================================================





반응형