원글주소
마리아sql 대신에 mysql을 설치해줬음
What is 웹서버?
웹 브라우저 ( Explorer, Chrome )와 같은 클라이언트로부터의 http 요청을 받아들여서 html 문서와 같은
웹페이지를 브라우저에 출력해주는 서비스 프로그램을 말합니다.
따라서 하드웨어적인 부분과 소프트웨어적인 부분을 결합하여 정확히 표현하자면 웹서버는 위와 같은 기능을
할 수 있는 하나의 서버 시스템이라고 표현할 수 있겠습니다.
본론으로 들어가서 구축을 진행해 봅시다.
Centos 7 웹서버 구축
1. 시스템 환경 확인.
* cat /etc/redhat-release ( centos 버전 확인 )
* cat /proc/version ( 커널 버전 / gcc 확인 )
저는 위와 같은 환경에서 웹서버 구축을 진행하겠습니다.
필수 항목은 아니니 그냥 확인하는 정도로 진행하시면 됩니다.
OS : CentOS Linux release 7.6.1810 (Core)
KERNEL : Linux version 3.10.0-957.el7.x86_64 (gcc version 4.8.5 20150623 (Red Hat 4.8.536) (GCC)
2. 의존성 패키지 확인.
웹서버를 구축하기 위해선 다음과 같이 APM ( Apache / PHP / Maria DB ) 패키지가 필요합니다.
따라서 패키지가 설치되기 위해서 필수적으로 필요한 의존성 라이브러리 설치 여부를 확인합니다.
* rpm -qa libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel
무엇인가 많이 빠진 것 같죠?
설치를 진행해 보겠습니다.
3. 의존성 패키지 설치.
설치를 진행할 때 소스 RPM 패키지를 사이트에서 수동으로 받아서 업로드 후 설치하셔도 무방하지만
의존성 문제가 발생합니다. 그래서 우리는 의존성 문제를 단방에 해결해 주는 YUM을 이용해서 설치를
진행하겠습니다.
YUM 이란 ( Yellowdog Updater Modified )의 약자로써 인터넷을 통해서 필요한 의존성 파일들을 자동
으로 검색해서 설치해줍니다. 따라서 외부와의 통신은 필수적으로 필요합니다.
* yum install libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel
관련된 항목을 모두 install / update 합니다.
y를 눌러서 설치를 진행합니다.
설치가 완료되면 다시 한번 설치 여부를 확인해 줍니다.
잘 설치가 되었습니다.
4. APM 설치 ( Apache / PHP / Marid DB )
설치 순서는 Apache --> Maria DB ---> PHP 순서로 설치를 합니다. ( 순서 주의 )
* yum install httpd ( Apache 설치 )
* yum install mariadb mariadb-server ( Maria DB 설치 )
* yum install php php-mysql php-mbstring php-pdo php-gd ( PHP 설치 )
* rpm -qa httpd mariadb php ( APM 설치 확인 )
Apache 설치
Maria DB 설치
저는 이미 설치가 되어있네요.
php 설치.
APM 설치 확인.
5. APM 서비스 실행
* systemctl start httpd ( Apache 서비스 실행 )
* systemctl enable httpd.service ( Apache 부팅 시 자동 실행 )
* systemctl status httpd ( Apache 서비스 상태 확인 )
* ps -ef | grep httpd ( Apache 프로세스 확인 )
* systemctl start mariadb ( Maria db 서비스 실행 )
* systemctl enable mariadb.service ( Maria db 부팅 시 자동 실행 )
* systemctl status mariadb ( Maria db 서비스 상태 확인 )
* ps -ef | grep mariadb ( Maria db 프로세스 확인 )
Apache 서비스 시작 / 재부팅 후 등록 / 서비스 상태 확인 / 프로세스 상태 확인
서비스 상태에서 active ( running ) 상태이면 정상적으로 동작하고 있는 상태입니다.
Maria db 서비스 시작 / 재부팅 후 등록 / 서비스 상태 확인 / 프로세스 상태 확인
active ( running ) 상태로 잘 동작하고 있습니다.
6. 방화벽, iptables 오픈 / selinux 해제
웹은 기본적으로 80번 포트를 사용합니다. Centos 7 이상부터는 firewalld와 iptables 가 동작하기 때문에
방화벽과 iptables에 양방향 80번 포트를 오픈해 줍시다.
그리고 보안 모듈 강화 selinux 부분을 해제합니다.
* firewall-cmd --zone=public --add-port=80/tcp --permanent ( 80번 포트 추가 )
* firewall-cmd --permanent --zone=public --add-port=80/tcp ( 위와 동일 )
* firewall-cmd --reload ( 리로드 )
* iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT ( 80번 포트 추가 )
* iptables -vnL ( iptable 확인 )
*/etc/sysconfig/selinux ( selinux 수정 )
enforcing --> disabled
방화벽 / iptables 80번 포트를 오픈합니다.
iptables에 추가된 80번 포트를 확인합니다.
vi /etc/sysconfig/selinux 편집기로 수정합니다.
enforcing --> disabled 변경
7. httpd 설정 파일 수정.
Apache 설정 파일 기본 경로는 vi /etc/httpd/conf/httpd.conf입니다.
/#ServerName으로 이 항목을 검색한 후에 주석을 해제하고 해당하는 웹서버의 IP를 넣어줍니다.
쉽게 말해서 웹서버의 역할을 할 서버의 IP를 넣어주시는 거라고 생각하시면 됩니다.
8. php 테스트 파일 작성.
http 호출을 받아 html 문서로 브라우저에 출력해줄 테스트 파일을 만드는 과정입니다.
html 업로드 기본 디렉터리는 /var/www/html입니다.
* echo "지금은 웹서버 테스트 중입니다" > /var/www/html/webtest.php
(webtest.php 파일에 "지금은 웹서버 테스트 중입니다"라는 내용을 작성)
* systemctl restart httpd ( Apache 재시작 )
해당 경로에 webtest.php 파일이 생성되었습니다.
해당 경로는 Apache의 기본 업로드 경로이기 때문에 변경된 사항이 있으면 반드시 재시작을 해줍시다.
9. 웹서버 접속
해당 웹서버에 접속해서 테스트를 진행합니다.
* http://192.168.159.128/webtest.php
[웹 서버 IP] [작성한 파일]
설정한 php 파일 내용이 출력이 되면 정상적으로 동작하는 것입니다.
실제 개발을 하는 환경이라면 DB 와의 연동 등 Maria db 설정이 좀 더 필요하지만 이번 포스팅에선 웹서버가 어떻게
동작을 하는지 기본 원리만 파악해 두시면 될 것 같습니다.
오늘 포스팅은 여기서 마치고 다음 시간에 좀 더 디테일하게 다뤄보겠습니다.
'얕고넓은지식 > linux' 카테고리의 다른 글
그누보드 관리자 비밀번호 변경하는법 (0) | 2021.03.23 |
---|---|
AMINA+1.8.2+-+G5.3.1.6+-+YC5.3.1.6 (0) | 2021.03.23 |
Centos7 phpmyadmin 사용자 추가하려는데 오류가?! centos7 phpmyadmin Your privilege table structure seems... (0) | 2021.03.23 |
phpmyadmin #1862 MySQL 서버에 로그인할 수 없습니다 (0) | 2021.03.23 |
Centos 7 Testing 123.. 계속되면.... (2) | 2021.03.23 |
centos 7 ssh 설치중 이런 오류가 뜬다면? Job for ssh.service failed because the control process exited with error code. See "systemctl status ssh.service" and "journalctl -xe" for details. (0) | 2021.03.23 |
Apache(CentOS) 명령어 (0) | 2021.03.22 |
CentOS 7 PHP 7.3 설치 방법 (0) | 2021.03.22 |
CentOS 7.x MySQL 5.7 설치 & Error: Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda) (0) | 2021.03.22 |
centos7 mysql 비밀번호 초기화 (0) | 2021.03.22 |