리눅스

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

스크린샷 2015-08-03 오전 12.50.52

대략 다 더하면 50GB의 여유공간이 있다.

 

 

4) 메모리 체크

#free -m

스크린샷 2015-08-03 오전 12.51.41

전체 3832MB의 메모리중 현재 3669MB 가 사용가능하다.

 

4-1) CPU 코어수 확인

cpu정보 프로세스를 읽어서 processor 항목이 몇개인지 갯수를 셉니다.

#cat /proc/cpuinfo | grep processor | wc -l

스크린샷 2015-04-08 오전 12.42.54

위의 사진은 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

tzselect

 

 

7) Hostname 설정

이 서버에 이름을 정하는 것이다. 이름을 잘 정해 두어야 나중에 다중 서버작업을 할 때 헷갈리지 않는다.

v3

위의 뜻은 “li599-115 서버에 root 사용자” 라는 뜻이다.

글 쓰는 지금 단어를 빨리 생각해보았는데  newhistory 라는 것이 떠오르더라.

이제 이 서버는 newhistory 라는 이름으로 만들 것입니다.

#vi /etc/hostname

빈 파일일 건데(또는 기존 hostname이 쓰여있을것임.) 원하는 이름으로 바꾼다. newhistory

권장하는 단어는 이 서버에 연결될 대표 도메인이다. 예를 들어 lael.be 같은 것.

 

적용한다.

#hostname -F /etc/hostname

 

서버에 재 접속하면 적용된 것을 확인 할 수 있을 것이다.

v4

 

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

스크린샷 2015-08-04 오전 12.11.47

 

웹서버 실행

#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 입력하고 엔터 입력해도 된다.

스크린샷 2015-08-04 오전 12.25.30

 

 

#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

 

스크린샷 2015-08-04 오전 12.28.11

 

변경사항 적용

#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

추가

스크린샷 2015-08-04 오전 12.34.19

 

extra 폴더 및 httpd-vhosts.conf 생성

스크린샷 2015-08-04 오전 12.35.02

 

httpd-vhosts.conf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<VirtualHost *:80>

  DocumentRoot "/home/laelbe/www"

  ServerName laelbe.com

  ServerAlias www.laelbe.com

 

  <Directory /home/laelbe/www/>

    Options FollowSymLinks MultiViews

    AllowOverride All

    Order allow,deny

    allow from all

 

    require all granted

  </Directory>

 

</VirtualHost>

 

호스트를 추가할 경우 위의 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

<VirtualHost *:80>

  DocumentRoot "/home/laelbe/www"

  ServerName laelbe.com

  ServerAlias www.laelbe.com

 

  <Directory /home/laelbe/www/>

    Options FollowSymLinks MultiViews

    AllowOverride All

    Order allow,deny

    allow from all

 

    require all granted

  </Directory>

 

</VirtualHost>

 

<VirtualHost *:80>

  DocumentRoot "/home/test1/www"

  ServerName test1.laelbe.com

 

  <Directory /home/test1/www/>

    Options FollowSymLinks MultiViews

    AllowOverride All

    Order allow,deny

    allow from all

 

    require all granted

  </Directory>

 

</VirtualHost>

아파치 설정파일 구문 및 동작검사

오타나 잘못된 설정구문이 있는지 미리 확인해 본다.

설정파일을 변경했으면 반드시 이 명령어를 통해 문법을 검사하도록 하자.

#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

스크린샷 2015-08-04 오전 12.52.31

 

14) 리눅스 보안강화 모듈 해제하기

CentOS는 SELinux 라고 보안강화 모듈이 기본으로 설치 및 활성화 되어 있다.

이것이 당신의 웹 소프트웨어 업로드 및 파일 쓰기 기능을 막을 것이다.

쓸말은 많은데 그냥 끄도록 하자. 방화벽만 잘 설정하고 유지보수가 잘되는 좋은 웹소프트웨어를 사용한다면 보안에 큰 무리는 없을 것이다.

# setenforce 0
# vi /etc/sysconfig/selinux

파일 중간의 SELINUX=enforcing 을 SELINUX=disabled 로 변경 후 저장

 

--

Apache 와 PHP 와 MySQL 을 모두 사용하는 phpmyadmin 을 다운받아서 설치하신 후 로그인하면 됩니다.

phpmyadmin 은 전세계적으로 가장많이 쓰이는 데이터베이스 관리 오픈소스 프로그램이며

https://www.phpmyadmin.net/ 에서 다운받을 수 있습니다. 압축풀고 서버에 업로드 한 후 접속해보시면 됩니다.

 

phpmyadmin 로그인이 된다면 정상적으로 서비스 할 수 있는 상태입니다.

스크린샷 2015-08-04 오전 1.00.03

 

 

 

 

 

 

https://blog.lael.be/post/1721

 

 

about author

PHRASE

Level 60  머나먼나라

상주보고 제삿날 다툰다 , 정확히 아는 사람 앞에서 자기의 틀린 것을 고집한다는 뜻.

댓글 ( 4)

댓글 남기기

작성
  •    
  •    
  •