1) 리눅스 버전체크
#uname -a Linux lael-centos 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
2) CentOS 버전체크
#cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
3) 하드용량체크
#df -h
대략 다 더하면 50GB의 여유공간이 있다.
4) 메모리 체크
#free -m
전체 3832MB의 메모리중 현재 3669MB 가 사용가능하다.
4-1) CPU 코어수 확인
cpu정보 프로세스를 읽어서 processor 항목이 몇개인지 갯수를 셉니다.
#cat /proc/cpuinfo | grep processor | wc -l
위의 사진은 6 core 를 뜻합니다.
한번 정도는 다음의 명령어를 확인해 보세요.
#cat /proc/cpuinfo | grep processor
#cat /proc/cpuinfo
5) 자잘한 업글
yum란 Yellow dog Updater, Modified 을 뜻합니다. (노란강아지 업데이터 수정버전. 별뜻 없으며 작명이 이렇게 되었을 뿐.)
우리는 yum 라는 센트오에스에 내장된 프로그램을 이용해서 프로그램을 쉽게 설치/제거 할 수 있습니다.
패키지 목록 갱신 및 업데이트 체크.
#yum update
6) 시스템 시간 설정
이것을 하지 않으면 EST 시간을 불러올 것이다.
#ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
7) Hostname 설정
이 서버에 이름을 정하는 것이다. 이름을 잘 정해 두어야 나중에 다중 서버작업을 할 때 헷갈리지 않는다.
위의 뜻은 “li599-115 서버에 root 사용자” 라는 뜻이다.
글 쓰는 지금 단어를 빨리 생각해보았는데 newhistory 라는 것이 떠오르더라.
이제 이 서버는 newhistory 라는 이름으로 만들 것입니다.
#vi /etc/hostname
빈 파일일 건데(또는 기존 hostname이 쓰여있을것임.) 원하는 이름으로 바꾼다. newhistory
권장하는 단어는 이 서버에 연결될 대표 도메인이다. 예를 들어 lael.be 같은 것.
적용한다.
#hostname -F /etc/hostname
서버에 재 접속하면 적용된 것을 확인 할 수 있을 것이다.
8)방화벽 포트에서 http 80 허용하기
당신의 서버에 방화벽이 이미 설치되어 있을 수도 있고, 설치되어 있지 않을 경우도 있다.
클라우드 사업자에 따라서 기본 패키지로 설치하는 경우가 많으니 이 글에서는 방화벽 설정까지 서술하도록 하겠다.
#yum install firewalld
설치되지 않았다면 설치 안내 메시지가 출력되고, 설치되어 있다면 이미 최신버전이 설치되어 있다는 메시지가 출력된다.
CentOS 7 에는 방화벽 기본값이 모두 차단으로 되어 있고 허용할 포트를 따로 등록해 주어야 한다.
root 로그인 상태에서
#firewall-cmd --zone=public --add-port=80/tcp --permanent
방화벽 설정 새로고침
#firewall-cmd --reload
9) Apache2 설치
#yum install httpd
CentOS 7.1 에서는 Apache 2.4.6 이 설치된다.
버전체크
#httpd -v
웹서버 실행
#service httpd start
확인해본다.
http://256.123.213.213 (서버의아이피)
웹브라우져에 기본 설명페이지가 뜨면 성공.
기본 파일을 대체한다.
#touch /var/www/html/index.html
10) PHP 5.x 설치
#yum install php
자동으로 아파치 중단시키고 설정파일에 php를 등록시키고 재 구동시킨다.(바로 적용됨)
CentOS 7.1 에서는 php 5.4.16 이 설치된다.
기타 주로 사용되는 모듈을 설치한다.
- 이미지처리 모듈
#yum install php-gd
- 다국어 처리 모듈
#yum install php-mbstring
-추가로 설치하고 싶은 모듈이 있으면
#yum search php-
라고 입력해서 설치가능한 패키지를 검색후 install 하도록 하자.
11) Mysql 설치
#yum install mariadb
#yum install mariadb-server
MariaDB 5.5.41 버전이 설치된다.
MariaDB 시작
#service mariadb start
MariaDB 기본 환경설정
#/usr/bin/mysql_secure_installation
대문자로 쓰여져 있는 것이 기본값이다. root 비밀번호만 설정하고 나머지는 엔터(기본값 설정)를 입력하자.
Y 입력하고 엔터 입력해도 된다.
#yum install php-mysql
php와 mysql 의 연동모듈 설치.
11 - 2) 기본 언어셋 설정(중요)
이 단계를 건너뛰면 DB가 latin1 으로 생성되며 추후 DB작업에 문제가 생길 수 있다.
#vi /etc/my.cnf
[mysqld] 항목에 다음 2 줄을 추가한다.
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
변경사항 적용
#service mariadb restart
12) 계정생성 및 동작테스트
laelbe 사용자 계정 생성
#adduser laelbe
비밀번호 설정
#passwd laelbe
보통 웹루트는 홈디렉토리에 하지 않습니다.
저는 주로 www 디렉토리를 사용합니다.사용자변경 후 www 디렉토리를 생성하고 빠져나오기
#su -l laelbe
#mkdir www
#exit
13) 웹사이트 Apache 환경설정 파일 작성
다음의 내용을 작성한다.
#vi /etc/httpd/conf/httpd.conf
파일 맨 밑줄에 다음의 Include 구문 추가. VirtualHost 설정 파일을 따로 분리합니다.
# Virtual hosts Include conf/extra/httpd-vhosts.conf
추가
extra 폴더 및 httpd-vhosts.conf 생성
httpd-vhosts.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
호스트를 추가할 경우 위의 httpd-vhosts.conf 파일 하단에 추가하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
아파치 설정파일 구문 및 동작검사
오타나 잘못된 설정구문이 있는지 미리 확인해 본다.
설정파일을 변경했으면 반드시 이 명령어를 통해 문법을 검사하도록 하자.
#service httpd configtest
아파치 새로고침 (새로운 virtualhost 추가나 삭제시에)
기존 연결된 사용자는 그대로 두고 새로운 접속자부터 새로운 설정이 적용되게 한다.
서비스가 운영중인 상황에서는 되도록 restart 대신 reload 를 사용하도록 하자.
#service httpd reload
- reload 를 할지 restart 를 할지는 엔지니어의 판단에 맡긴다. 몇가지 크리티컬한 상황은 다음과 같다.
1. 대용량 파일의 다운로드 중 restart 되면 -> 다운로드가 중단됨. 파일이 깨짐.
2. 글쓰기, 내용 작성 후 쓰기 버튼 클릭 / 글 첨부파일 업로드 중 restart 되면 -> 작성된 내용이 날아가게 됨.
3. 동작이 긴 PHP 파일 실행중 restart 되면 -> 중간 상태에서 끊어짐.
중단 없이 restart 하는 방법도 있는데, 난이도가 많이 올라가므로 따로 다루지는 않는다.
아파치 재시작 (새로운 확장모듈의 추가, 포트변경 등)
모든 연결을 강제 종료하고 서비스를 stop 한 후에 다시 start 하는 동작이다. restart = stop & start
주의 : 위의 configtest 에서 실패한 상태에서 restart를 하면 httpd 가 stop 된 후에 start 되지 않는다. 즉 서비스 중단 상태가 된다.
#service httpd restart
권한 설정 (/home/ 바로 하위레벨의 폴더의 권한을 701로 설정)
#chmod 701 /home/*
부팅시 자동실행
#chkconfig httpd on
#chkconfig mariadb on
확인하기
#systemctl list-unit-files | grep httpd
#systemctl list-unit-files | grep mariadb
14) 리눅스 보안강화 모듈 해제하기
CentOS는 SELinux 라고 보안강화 모듈이 기본으로 설치 및 활성화 되어 있다.
이것이 당신의 웹 소프트웨어 업로드 및 파일 쓰기 기능을 막을 것이다.
쓸말은 많은데 그냥 끄도록 하자. 방화벽만 잘 설정하고 유지보수가 잘되는 좋은 웹소프트웨어를 사용한다면 보안에 큰 무리는 없을 것이다.
# setenforce 0
# vi /etc/sysconfig/selinux
파일 중간의 SELINUX=enforcing 을 SELINUX=disabled 로 변경 후 저장
--
Apache 와 PHP 와 MySQL 을 모두 사용하는 phpmyadmin 을 다운받아서 설치하신 후 로그인하면 됩니다.
phpmyadmin 은 전세계적으로 가장많이 쓰이는 데이터베이스 관리 오픈소스 프로그램이며
https://www.phpmyadmin.net/ 에서 다운받을 수 있습니다. 압축풀고 서버에 업로드 한 후 접속해보시면 됩니다.
phpmyadmin 로그인이 된다면 정상적으로 서비스 할 수 있는 상태입니다.
https://blog.lael.be/post/1721
댓글 ( 4)
댓글 남기기