웹사이트 추가를 위한 사전 작업 [1/2] – public_html, phpMyAdmin 준비

새로운 PHP 설치 방법 안내

– 현재는 https://github.com/php79/stack 스크립트로 자동 설치하는 방법을 권장하고 있습니다.
– 본 문서는 2013년도에 작성된 CentOS 6 + Apache + PHP 5.3 + MySQL 조합으로 수동 설치하는 방법에 대해 다룹니다.


웹사이트 추가를 위한 사전 작업 1회차 입니다.  (서버에 사이트가 여러개라도 1회만 진행하면 됩니다.)
– public_html 자동 생성
– phpMyAdmin 설치 및 보안

1. 시스템 계정 추가시마다 pubilc_html 자동 생성

– 시스템 계정 추가시(useradd)마다 추가된 계정의 디렉토리 하위에 /etc/skel/ 디렉토리안에 포함된 파일이나 디렉토리가 자동으로 복사됩니다. 따라서 아래처럼 디렉토리를 만들어주면, 시스템 계정 추가시마다 public_html 디렉토리가 자동으로 생성됩니다.

mkdir /etc/skel/public_html

 

2. MySQL DB 웹관리툴 설치

준비 조건) 안전한 CentOS를 위한 방화벽, 보안 설정에서 Fail2Ban 설치를 위한, epel-release 패키지가 설치된 상태여야 합니다.
– yum 으로 phpMyAdmin 을 설치합니다. 설치시 필요한 php-mcrypt, php-php-gettext 확장 모듈도 자동으로 같이 설치됩니다.

yum install phpMyAdmin

– Apache 웹서버에 추가된 phpMyAdmin 설정 파일을 확인하고, 2가지 항목을 수정합니다.

cat /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin

– 보안 대책 1) phpMyAdmin 접속 주소를 변경합니다. (필수)
http://서버IP/phpMyAdmin/ 형식의 주소로 접속이 가능하도록 앨리어스 설정이 포함되어 있습니다. 그러나 위 주소는 일반적으로 많이 사용되는 주소로 phpMyAdmin 프로그램의 보안 버그가 발견되면 공격 시도가 실시간으로 이루질만큼 많이 악용되는 주소입니다. 따라서 아래처럼 자신만의 주소로 변경합니다. 아래 php79 라는 단어는 그대로 적지마시고, 본인만이 알 수 있는 단어로 사용하시면 됩니다.

sed -i 's/Alias \/phpMyAdmin/Alias \/phpMyAdmin_php79/' /etc/httpd/conf.d/phpMyAdmin.conf
sed -i 's/Alias \/phpmyadmin/Alias \/phpmyadmin_php79/' /etc/httpd/conf.d/phpMyAdmin.conf

 

Require ip 127.0.0.1
Allow from 127.0.0.1

– 보안 대책 2) 접근하는 PC의 IP를 추가합니다.
기본값은 서버 내부 IP인 127.0.0.1 에서만 접근이 가능하도록 제한되어 있습니다. 관리 PC에서 접근하려면 IP를 추가해 주어야 합니다. 관리 PC의 IP는 서버에 접속후 w 명령을 통해 쉽게 파악 가능합니다.

[root@localhost ~]# w
 00:15:07 up 40 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.10.1     23:41    0.00s  0.22s  0.03s w

제 관리 PC의 IP인 192.168.10.1 를 추가합니다.

sed -i 's/Require ip 127.0.0.1/Require ip 127.0.0.1 192.168.10.1/' /etc/httpd/conf.d/phpMyAdmin.conf
sed -i 's/Allow from 127.0.0.1/Allow from 127.0.0.1 192.168.10.1/' /etc/httpd/conf.d/phpMyAdmin.conf

– 변경된 설정이 다음과 같은지 확인합니다. (php79 단어와 192.168.10.1 IP는 입력하신 값으로 보여지게 됩니다.)

grep -P 'Alias|Allow from 1|Require ip 1' /etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin_php79 /usr/share/phpMyAdmin
Alias /phpmyadmin_php79 /usr/share/phpMyAdmin
       Require ip 127.0.0.1 192.168.10.1
     Allow from 127.0.0.1 192.168.10.1
       Require ip 127.0.0.1 192.168.10.1
     Allow from 127.0.0.1 192.168.10.1

* 팁) IP를 제한하지 않고 모든 IP에서 접근하게 하려면, Require ip 와 Allow from 항목이 포함된 <Directory …> ~ </Directory> 설정을 모두 삭제하거나 주석처리(#)하시면 됩니다.

– Apache 웹서버의 설정파일에 오류가 없는지 확인합니다.

/etc/init.d/httpd configtest
Syntax OK

– Apache 웹서버를 재시작합니다.

/etc/init.d/httpd restart

 

3. 웹브라우저에서 phpMyAdmin 접속

– 이제 웹브라우저에서 http://192.168.10.129/phpMyAdmin_php79/ 형식의 주소로 접속이 가능하게 됩니다. 로그인시 사용할 아이디는 root 이며, 비밀번호는 에서 입력한 mysql root 비밀번호를 입력하시면 됩니다.
phpmyadmin_1.login

phpmyadmin_2.main

phpmyadmin_3.db

이상입니다.
다음 글에서는 Apache VirtualHost 준비를 해보겠습니다.