Linux/실습 기록

[컴퓨터시스템관리] 2021.05.25 13주차 실습일지 - Web Server

daeunnniii 2021. 5. 25. 20:31
728x90
반응형

실습과제 결과

▶ Server(b) 에 웹 서버 구축한 뒤, 웹 페이지 만들기

 

▶ 실습 결과 : Client(또는 Host computer) 에서 해당 웹 페이지에 접속한 화면 캡처 또는 영상

- Server-b IP주소: 192.168.91.128

- Wordpress를 활용하였고, 추가적으로 테마를 적용해보았다.

 

새로 배운 내용

1. LAMP

- Linux (OS)
- Apache HTTP Server (Web): HTTP 웹 서버
- MySQL (DB): 관계형 데이터베이스 관리 시스템
- PHP (Script): 동적 웹 페이지를 만들기 위해 설계된 PL

 

*웹 애플리케이션 구조

출처: https://velog.io/@ikswary/%EC%9B%B9%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%A1%B0

2. Web server

1) Web server

- 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램. 대표적으로 Nginx, Apache가 있다.

 

2) 아파치 Apache

- 오픈소스 HTTP Server
- MPM(Multi Processing Module) 아키텍쳐 기반
- 클라이언트의 요청을 스레드 형태의 서버 프로세스로 생성하여 처리

3) 웹서버 설정 파일의 구조

/etc/apache2/          # 웹 서버를 시작할 때 필요한 모든 설정 파일
|-- apache2.conf
| `-- ports.conf          # http 80포트, https 443 포트 등 아파치 서버의 서비스 포트 설정
|-- mods-enabled      # 사용 가능한 아파치 모듈중 사용할 모듈을 심볼릭 링크로 추가하여 실제 동작 수행
| |-- *.load
| `-- *.conf
|-- conf-enabled        # 사용 가능한 구성 파일 중 사용되는 구성 파일
| `-- *.conf
`-- sites-enabled        # 서버에서 운영할 사이트의 설정 파일
`-- *.conf

 

4) 실습

- APM 설치

apt install lamp-server^ 를 입력하면 웹 서버에 필요한 패키지들을 한번에 다운받을 수 있다.

방화벽에서 외부 접속을 허용한 후 웹 브라우저에서 Server의 IP주소로 접속하여 아파치 웹서버가 정상적으로 돌아가는 것을 확인

/var/www/html 경로로 이동하여 간단한 php 코드 작성. phpinfo()는 현재 서버에 설치된 php에 대한 정보를 알려준다.

다시 웹페이지에서 IP주소/phpinfo.php로 접속하면 위에서 작성한 코드에 대한 결과를 확인할 수 있다. 

 

- Wordpress 설치

먼저 wp_db 데이터베이스를 생성하고 아래와 같이 DB 설정을 진행한다.

wget https://wordpress.org/latest.tar.gz 으로 워드프레스 설치 후 압축 해제 및 접근 권한, 소유자 설정

wp-config-sample.php가 워드프레스 설정 샘플 파일이다. 이 파일을 복사해서 우리가 사용할 용도에 맞게 설정하면 된다. 아래는 설정 파일을 복사하여 해당 DB 이름과 username, password를 입력해주었다.

* 여기서 추가적으로 해야할 작업은, wordpress를 사용하기 위해서는 웹브라우저에서 IP주소/wordpress를 입해야하므로 번거롭다. 따라서 바로 워드프레스로 연결될 수 있도록 설정해줄 것이다.

/etc/apache2/sites-enabled/000-default.conf에서 DocumentRoot를 변경해준 뒤,

/etc/apache2/apache2.conf에서도 아래와 같이 코드를 추가해준다.

이제 systemctl restart apache2로 아파치를 재실행한다.

 

-웹브라우저에서 Wordpress 설치

이제 웹페이지에서 IP주소를 입력하면 워드프레스 설치 화면이 뜨고, 몇가지 정보를 입력하면 설치가 완료된다.

기본 화면은 다음과 같다. 왼쪽 메뉴바에서 사이트를 관리하고, 수정할 수 있다.

 

문제가 발생하거나 고민한 내용 & 해결 과정

▶ 문제 발생

이전에는 SSH 접속이 잘 되었는데, 이번 주차에 Ubuntu를 초기화하고 다시 Windows Terminal에서 SSH 접속을 시도하였지만, 오류가 났다. 

 

▶ 해결 방안

에러 문구를 잘 읽어보니 키 문제로 접속이 되지 않은 것 같았다. 12주차 강의자료를 통해 키 문제로 접속이 되지 않는 경우 .ssh 디렉터리의 하위 파일을 삭제한 후 재연결을 하면 해결할 수 있다는 것을 알게 되었다. 따라서 사용자 경로에 .ssh 폴더를 찾을 수 있었고, 하위 파일 삭제 후 다시 SSH를 연결하였더니 정상 접속 되었다.

 

참고할 만한 자료

https://velog.io/@ikswary/%EC%9B%B9%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%A1%B0

 

웹서버 구조

클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는 서버클라이언트에서 전송된 HTTP 메시지를 핸들한다동적 컨텐츠 제공이 필요한 경우 HTTP Request를

velog.io

https://wpbox.kr/wordpress-manual/

 

회고 (+, -, !)

+: Linux 운영체제를 활용하여 Apache 웹서버를 작동시키고, MySQL로 DB 생성 및 설정하고, PHP 언어를 활용하여 동적 웹 페이지를 만드는 LAMP 서버를 구축해보았던 의미있는 수업이었다. 웹 페이지를 개발할 때 서버 구축을 위해 필수적으로 알아야 할 개념들을 알게 되어 좋았다.

-: 오늘 실습을 할 때 SSH에 오류가 났는데, 가상머신을 초기화한 뒤에 SSH로 다시 접속하면 key error가 발생할 수 있다는 것을 알게 되었다.

!: 그리고 Wordpress라는 것을 처음 써보았는데 프로그래밍을 굳이 하지 않아도 누구나 쉽게 웹페이지를 개발하고, 편집 및 관리할 수 있어 직접 사이트를 운영하고자 하는 사람들에게 매우 유용할 것 같다는 생각이 들었다. 나중에 기회가 된다면 워드프레스를 활용하여 블로그를 운영해보고싶다.

 

 

 

 

 

 

728x90
반응형