반응형

3장. 웹서버 구축 및 설정(APM)

 

학습 목표

- APM을 통해 웹서버를 구축하고 간단하게 테스트할 수 있다.

 

 

웹서버 구축 시 많이 알려진 오픈소스 기반의 Apache를 설치하고 PHP, MySQL(MariaDB)을 함께 설치하여 기본적인 동작에 대해 테스트할 예정이며 Apache는 Apache.org, PHP는 php.net, MariaDB는 mariadb.com 사이트를 통해 버전 및 다운로드가 가능합니다. 실습에서는 yum을 통해 패키지를 설치하도록 하며 이전의 DNS실습에 사용된 가상머신을 그대로 사용하도록 하며 IP주소는 172.16.1.207입니다.

 

참로로 Apache는 웹서버이며 PHP는 웹에서 동적인 콘텐츠를 생성하기 위한 스크립트 언어이며 MySQL(MariaDB)는 데이터를 저장하고 관리하기 위한 데이터베이스 관리시스템(DBMS)입니다. 보통은 APM을 연동하여 구축하고 있습니다.

 

 - APM 설치 및 서비스 시작

#yum install -y httpd php php-mysql mariadb-server : APM 설치

#systemctl start(enable, status) httpd(mariadb) : 서비스를 시작 및 부팅 시에도 시작되도록 설정하고 상태를 확인

 

 - 방화벽 설정을 통해 http(https) 접속이 부팅 후에도 가능하도록 설정하고 reload하여 적용

#firewall-cmd --permanent --add-service=http 

#firewall-cmd --permanent --add-service=https

#firewall-cmd --reload

 

이 후에 MariaDB의 관리자  비밀번호 및 부가적인 설정을 진행하기 위해 #mysql_secure_installation 명령어를 입력 후 진행합니다.

 

 

[ 그림 3-1. mysql_secure_installation ] - 후티(출처)

 

 

호스트 컴퓨터의 웹브라우저에서 웹서버 IP주소를 입력(예 : http://172.16.1.207)하여 Apache 테스트 페이지가 보이면 정상적으로 동작중이며 PHP와의 연동을 위해 간단한 php파일을 하나 생성하여 작성한 php페이지가  보이면 제대로 된 것입니다.(예 : http://172.16.1.207/phpinfo.php)

 

HTTPS의 접속을 위해서는 SSL(Secure Socket Layer) 인증 설정이 필요하므로 이 후에 실습을 진행하도록 하겠으며 방화벽 설정에 대한 내용도 이 후에 정리해서 포스팅하도록 하며 앞서 실습한 DNS서버 구축이 되어 있다면 zone파일에 A레코드를 추가해줌으로써 IP주소가 아닌 도메인으로도 접속이 가능하겠습니다.

 

#vi /var/www/html/phpinfo.php  

<?php

   phpinfo();

?>

 

또는 #echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

 

데이터베이스를 사용하기 위해 #mysql -u root -p 명령어를 입력 후 로그인한 후 데이터베이스 및 테이블을 생성하고 수정할 수 있으며 다양한 작업을 진행할 수 있는데 이러한 부분들은 데이터베이스 서버 부분에서 좀 더 자세하게 다루도록 할 예정입니다.

 

웹서버의 환경설정 파일은 /etc/httpd/conf/httpd.conf 파일로 vi 편집기를 통해 현재 내용을 확인 및 편집이 가능하며 설정 파일의 문법 검사는 #apachectl configtest를 실행하여 이상이 없을 경우에는 'Syntax OK'메시지가 보여지게 됩니다.

 

- httpd.conf 주요 내용

ServerRoot "/etc/httpd" - 아파치서버의 홈디렉토리

Listen 80 - 아파치서버의 기본 포트 넘버

Include conf.modules.d/*.conf - 아파치서버로 필요한 모듈을 로드

 : 모듈의 위치 ( /etc/httpd/conf.modules.d/ ) 로드된 모듈 확인 ( #httpd -M )

ServerAdmin root@localhost - 아파치서버의 관리자 메일 주소

ServerName www.example.com:80 - 서버 호스트 이름을 설정( 도메인 주소 또는 IP주소 )

<Directory> ~ </Directory> - 지정한 디렉토리 이하의 모든 파일에 대한 제어를 어떤 방식으로 할 것인가에 대한 결정

DocumentRoot "/var/www/html" - 아파치서버의 웹문서가 있는 기본 경로

ErrorLog "logs/error_log" - 아파치서버의 에러로그파일의 경로

LogLevel warn - 로그레벨 

 

 

[ 그림 3-2. httpd.conf 파일 내용 ] - 후티(출처)

 

 

이 외 다양한 설정 파일에 대한 내용은 생략하도록 하겠으며 아파치의 웹 로그파일이 저장되는 디렉토리는 /var/log/httpd로 방문기록을 저장하고 있는 access_log와 에러발생 시에 기록되는 error_log 파일이 있으며 기본홈페이지 문서가 저장되어 있는 디렉토리는 /var/www/html이 되며 이 디렉토리에 여러 웹페이지들을 저장할 수 있습니다.

또한 아파치의 주 설정 파일은 /etc/httpd/conf디렉토리에 httpd.conf로 저장되어 있어 이 파일의 설정을 변경하면 아파치의 설정 또한 바뀌게 됩니다.

 

참고

- CGI 파일 디렉토리 : /var/www/cgi-bin

- 오류 페이지가 저장된 디렉토리 : /usr/share/httpd/error

- 아이콘 파일이 저장된 디렉토리 : /usr/share/httpd/icons

- 모듈 파일이 저장된 디렉토리 : /usr/lib64/httpd/modules

 

 

지금까지 yum을 통한 APM설치와 간단한 웹서버 테스트 실습을 진행했으며 관련 내용은 유튜브 채널 "youtube.com/에듀쉐어'를 통해 확인이 가능하며 구독 및 좋아요는 콘텐츠 제작에 큰 힘이 됩니다.

감사합니다.^^

 

 

[ centos7 apm yum설치를 통한 웹서버 구축 ] - 에듀쉐어

 

반응형

+ Recent posts