728x90
웹 서버의 기본 개념
HTTP 서버
- 클라이언트와 서버 간 요청/응답(request/response) 프로토콜
- 주로 HTML 문서를 주고 받는 데 쓰임
- TCP와 UDP를 사용하고 80 포트를 사용
- Ex. 클라이언트인 웹 브라우저가 HTTP를 통하여 서버에 웹페이지나 그림을 요청
- 서버는 필요한 정보를 해당 사용자에게 전달
- 클라이언트 웹 브라우저에 출력
- 서버는 필요한 정보를 해당 사용자에게 전달
웹 서버
- 웹 서버는 모두 HTTP 데몬을 가지고 있음. 이 프로그램은 HTTP요청을 기다리고 있다가 요청이 들어오면 그 것을 처리하도록 설계되어 있음
- HTTP의 입장에서 웹 브라우저는 서버의 요청을 전달하는 하나의 클라이언트
- 사용자가 URL을 입력하거나, 하이퍼 텍스트 링크를 클릭하여 파일을 요구하면, 브라우저는 HTTP 요구를 URL에 적혀 있는 IP에 전달
- 지정된 서버 상의 HTTP 데몬은 그 요구를 받아서, 필요한 작업을 처리하며 클라이언트가 요청한 파일을 보내줌
- 리눅스의 대표적인 웹 서버는 아파치
- 웹 서버는 독자적으로 실행하지 않고 데이터베이스와 PHP가 묶여서 같이 사용
웹 서버 설치와 사용
- 아파치 설치 및 접속
- CentOS 8에 아파치 웹 서버가 설치 확인
- dnf 명령으로 아파치를 설치 (패키지 이름: httpd)
$ dnf list httpd*
$ sudo dnf install httpd
아파치 활성화하기
- systemctl 명령으로 아파치를 활성화
$ systemctl status httpd
$ sudo systemctl start httpd
웹 서버 접속하기
- 방화벽에서 http 서비스를 등록
- 보안 그룹에 80 port 등록
- Windows에서 웹 브라우저를 띄우고 리눅스의 웹 서버에 접속
- /var/www/html에 기본 파일이 있어야 함.
- 기본 html 파일이 있으면 그 파일이 출력
$ cd /etc/httpd/conf $ ls $ more httpd.conf $ sudo -i # cd /var/www/html # vi index.html
- 웹 서버가 정상적으로 동작하는지 확인하기 위해 HTML로 웹 페이지 제작
# index.html
<!DOCTYPE html>
<html>
<head>
<title>HTML5 Basic</title>
</head>
<body>
<h1>Hello World..!</h1>
</body>
</html>
- 웹 서버가 정상적으로 작동
일반 사용자 계정에 웹 설정
- vi로 /etc/httpd/conf.d/userdir.conf 파일을 열어 수정
- ‘UserDir disabled’
- : 사용자 디렉터리에서 웹 페이지 구축을 허용할 것인지 확인하는 부분, #으로 주석 처리하면 허용
- ‘UserDir public_html’
- : 사용자 디렉터리에서 public_html을 웹페이지의 기본 디렉터리로 사용
# cd /etc/httpd/
# ls
conf conf.d conf.moudles.d logs modules run state
# cd conf.d
# ls
README autoindex.conf userdir.conf welcome.conf
# vi userdir.conf
- httpd의 설정 파일이 수정되었으므로 httpd.service를 다시 동작
- 사용자의 홈 디렉터리에서 다음 작업 수행
- 다른 터미널에서 ftp_user 계정으로 로그인하여 홈 디렉터리에 public_html 디렉터리 작성
- 디렉터리의 접근 권한을 조정
$ sudo systemctl restart httpd $ su ftp_user $ cd ~ $ mkdir public_html $ chmod 701 . $ chmod 701 public_html/
- 일반 사용자 계정에서 웹 페이지 작성
- public_html 디렉터리 아래에서 index.html 파일을 생성
<!DOCTYPE html> <html> <head> <title>CSS3 Basic</title> <style> h1 { color: white; background: black; } </style> </head> <body> <h1>Hello HTML5..!</h1> </body> </html>
- 웹 브라우저에서 다음과 같이 입력하여 html 문서를 확인, IP 주소는 자기 리눅스 시스템의 IP 주소를 입력
- 만약 브라우저에서 403 Forbidden 오류가 발생 시 접근 권한을 잘못 조정했거나 SELinux 보안 문제
- 권한을 다시 확인한 뒤 SELinux의 보안을 해제하고 확인
APM과 게시판 설치
APM 설치하기
- APM : 리눅스의 아파치 웹 서버와 웹 프로그래밍 언어인 PHP, 데이터베이스인 MySQL을 묶어서 부르는 말
- 여기서 APM의 M은 MySQL이 아니라 MariaDB를 의미
- dnf로 PHP를 설치하여 APM을 연동(패키지 파일: php, php-gd, php-mysqlnd)
$ sudo dnf install php php-gd php-mysqlnd
PHP의 동작 확인하기
- httpd, MariaDB를 다시 동작
- PHP의 동작을 확인하기 위해 /var/www/html에 파일 작성
# /var/www/html/phpinfo.php
<?php phpinfo(); ?>
- 아파치와 PHP가 정상적으로 연동되었을 경우 웹 브라우저에서 http://IP주소/phpinfo.php의 접속
게시판 설치하기
- 그누보드 내려받기: 리눅스에서 웹 브라우저를 실행하여 그누보드 사이트(sir.co.kr)에 접속하여 내려받음
- gnuboard-gnuboard5-v5..6.6-0-g2a0bf12.tar.gz
- https://github.com/gnuboard/gnuboard5/tarball/master
- 내려받은 파일을 /home/ftp_user/public_html로 복사
- board 디렉터리 생성, 압축 파일을 board 디렉터리로 복사
- tar로 묶인 압축 파일을 모두 해제
- [ftp_user@ip-172-31-59-229 board]$ tar xzvf gnuboard-gnuboard5-v5.6.6-0-g2a0bf12.tar.gz
- 그누보드가 사용할 데이터베이스를 구축
- 데이터베이스 생성: gnu
- 윈도에서 웹 브라우저로 접속하여 설정 (주소 : http://IP 주소/~ftp_user/board)
- [그누보드5 설치하기]를 클릭하고 지시에 따라 data 디렉터리르 만들고 접속 권한을 707로 수정
$ ls
LICENSE.txt _head.php **common.php** g4_import.php img lib
plugin tail.php yc4_import.php
README.md _tail.php config.php g4_import_run.php index.php mobile
shop tail.sub.php yc4_import_run.php
SECURITY.md adm css head.php install orderupgrade.php
shop.config.php theme
_common.php bbs extend head.sub.php js perms.sh
$ mkdir data
$ chmod 707 data
APM과 게시판 설치 & 진행
- 게시판 설치하기: 접근 권한을 조정한 후 라이선스에 동의
- MariaDB에 설정한 DB 정보와 그누보드 관리자 정보를 입력
- 보안상 문제로 MariaDB의 root 계정을 사용하지 말고 일반 사용자에게 데이터베이스 권한을 부여하여 사용
- 그누보드 설치 완료, [새로운 그누보드5로 이동]을 클릭
- 메인 화면에서 APM이 정상적으로 연동되는 것을 확인
- admin 계정으로 로그인한 다음 최고관리자님 아래 [관리자]를 클릭하면 관리자메인 화면으로 전환
- 관리자메인 화면에서 [게시판관리]-[게시판그룹관리]를 선택하여 게시판 생성
- 게시판 관리 화면에서 오른쪽 상단의 [게시판그룹 추가]를 클릭
- [게시판그룹 추가]를 클릭하면 게시판 그룹 생성 화면에서 그룹 ID와 그룹 제목만 입력하고 [확인]
- 게시판그룹 생성 완료 후 [게시판 생성] 버튼을 클릭하면 게시판 생성 화면이 출력
- TABLE 항목에 게시판 이름을 입력하고 게시판 제목을 입력
- 게시판 권한 설정에서 게시판 관리자를 지정하고 [확인]을 클릭
- user1 사용자의 홈 디렉터리에서 public_html 디렉터리 안의 index.html 파일을 수정
워드프레스 설치
- 워드프레스 파일 다운로드
- https://ko.wordpress.org/download
- PHP 7.4 이상 및 MySQL 버전 8.0 또는 MariaDB 버전 10.5 이상을 권장
- wordpress-6.6.2-ko_KR.zip
- DB 생성: wpress
- wp-config.php 설정
# wordpress Dir가 있는 폴더에서 진행
$ cd wordpress
$ ls
index.php wp-activate.php wp-comments-post.php wp-cron.php
wp-load.php wp-settings.php xmlrpc.php
license.txt wp-admin wp-config-sample.php wp-includes
wp-login.php wp-signup.php
readme.html wp-blog-header.php wp-content wp-links-opml.php
wp-mail.php wp-trackback.php
$ cat wp-config-sample.php
$ cp wp-config-sample.php wp-config.php
$ vi wp-config.php
728x90
'Linux' 카테고리의 다른 글
VMware worktstation 설치 및 설정 (0) | 2023.08.24 |
---|---|
Hypervisor (0) | 2023.08.24 |