웹사이트 추가 [1/2] – user, VirtualHost 추가

새로운 PHP 설치 방법 안내

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


웹프로그램 설치를 위한 웹사이트 추가 작업입니다.
– 시스템 계정 추가
– Apache VirtualHost (가상호스트) 추가
– 웹브라우저에서 확인
– DNS 설정 안내

예제에 사용된 도메인명은 php79.com 이고, php79 입니다.
사용할 도메인 및 계정 명에 따라 적절히 변경해주시면 됩니다.

1. 시스템 계정 추가

– 시스템 계정을 추가합니다.

useradd php79

– 추가한 계정의 비밀번호를 지정합니다. 단, 테스트 계정이라도 비밀번호는 영어+숫자+특수문자 조합으로 8자리 이상으로 지정하여 주십시오. 잠깐! 비밀번호를 123456, test 처럼 쉽게 두면 어떻게 될까요? 단 시간내에 해킹 당해 좀비 서버로 악용되고, 트래픽 요금 폭탄을 물게 될 수 도 있습니다.

passwd php79
php79 사용자의 비밀 번호 변경 중
새  암호:
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

* 만약 /usr/share/cracklib/pw_dict.pwd: Permission denied 에러가 난다면, CentOS SELinux 비활성화 하기 를 확인하세요.

– 추가된 계정 디렉토리에 Apache 웹서버에서 접근할 수 있도록 접근 권한을 부여합니다.

ls -l /home/|grep php79
drwx------.   3 php79 php79  4096 2013-08-13 00:56 php79
chmod 710 /home/php79
chgrp apache /home/php79/
ls -l /home/|grep php79
drwx--x---.   3 php79 apache  4096 2013-08-13 00:56 php79

* chgrp 명령은 해당 디렉토리나 파일의 ‘소유자 그룹’을 변경하는 것 입니다.  Apache 웹서버의 Group 명이 기본값으로 apache 이므로 chgrp apache 로 입력한 것 입니다.   만약 httpd.conf 파일을 수정하여 Apache 웹서버의 Group 명이 apache 가 아닌, nobody/daemon/www-data 등이라면 chgrp 명령에서도 소유자 그룹을 알맞게 변경하여 실행해주시면 됩니다.

– 추가된 계정의 하위에 public_html 디렉토리가 생성되었는지 확인합니다.

ls -l /home/php79/
합계 4
drwxr-xr-x. 2 php79 php79 4096 2013-08-12 23:56 public_html

* 생성되지 않았다면 웹사이트 추가를 위한 사전 작업 – public_html, phpMyAdmin을 확인해야 합니다.

 

2. Apache VirtualHost (가상호스트) 추가

– 이제 php79.com 사이트 접속을 위한 VirtualHost 설정을 추가 합니다. http://www.php79.com 외에 http://php79.com 으로도 접속가능하도록, ServerAlias 까지 설정됩니다.

echo '
<VirtualHost *:80>
DocumentRoot /home/php79/public_html
ServerName www.php79.com
ServerAlias php79.com
ErrorLog logs/php79.com-error_log
CustomLog logs/php79.com-access_log combined
</VirtualHost>
' >> /etc/httpd/conf/httpd.conf

– 마지막에 추가된 VirtualHost 설정을 확인합니다.

tail -n9 /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /home/php79/public_html
ServerName www.php79.com
ServerAlias php79.com
ErrorLog logs/php79.com-error_log
CustomLog logs/php79.com-access_log combined
</VirtualHost>

– 추가한 VirtualHost 설정이 정상인지 확인합니다.

/usr/sbin/httpd -S
         port 80 namevhost www.php79.com (/etc/httpd/conf/httpd.conf:1018)
                 alias php79.com

– 만약 실수로 잘못된 설정을 추가했다면 httpd.conf 파일을 문서 편집기(vi, nano 등)로 수정하면 됩니다.
* vi 사용법 google 검색
* nano 사용법 google 검색 (초보자가 사용하기 쉬움)

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

/etc/init.d/httpd configtest
Syntax OK

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

/etc/init.d/httpd restart

 

3. 웹브라우저에서 접속 확인하기

– 먼저 웹브라우저에서 확인할 테스트 페이지를 만들어 봅니다.

echo '<?php
echo __FILE__;
phpinfo();
?>' >> /home/php79/public_html/php79test.php

– 이제 웹브라우저에서 서버 IP 뒤에 /php79test.php 를 덧 붙여서, http://192.168.10.129/php79test.php 형식의 주소로 접속해 봅니다.

php79test
* 참고1) 서버 IP 입력시 첫번째 등록된 가상호스트인 www.php79.com 으로 연결됩니다.
* 참고2) 두번째 등록된 가상호스트부터는 반드시 DNS나 PC의 hosts 파일이 설정되어야 접속이 가능합니다.

 

4. DNS 설정 안내

– 도메인이 있다면 DNS (네임서버) 에서 www.php79.com 호스트와 php79.com 호스트의 IP를 현재 서버의 IP로 설정합니다.

* 자체 DNS 서버 구축은 복잡하고, 최근에는 웹기반 무료 DNS 서비스가 너무 뛰어나므로 생략합니다.
* 1순위) 보유한 도메인의 DNS 등록 업체에서 제공하는 ‘무료 DNS (네임서버) 서비스’를 이용하시면 됩니다.
* 2순위) https://kr.dnsever.com/ – 도메인 등록기관에 관계없이 무료로 서비스 가능합니다. 도메인이 여러개일 때 유리합니다.

 

이상입니다.

다음 글에서는 MySQL DB 및 계정 추가를 해보고, 그 후 그누보드를 직접 설치해보겠습니다.