CRPLab VirtualHost Script 입니다.


가상 호스트 작성을 좀더 편리하게 작성이 가능합니다.


트래픽 주기 설정을 하시려면 추가 확장 모듈(cband) 가 필요합니다.


http://quota.kr/linux/1003 여길 들어가시면 CentOS 전용 cband 확장 모듈을 설치하시고, httpd 를 재시작 하면 됩니다.


이 스크립트로 사용자 설정에 맞게 올바르게 설정해 주셔야 스크립트가 정상적으로 작동합니다.


TIP. /etc/skel/ 에 public_html , docs 폴더를 만들면 a라는 사용자를 만들면 사용자 a 디렉토리 안에 public_html 와 docs 폴더가 자동으로 생성되어 있습니다. public_html 안에 index.html 을 넣어주면 VirtualHost 설정 완료 페이지를 만들수 있습니다.




#!/bin/sh

hr="---------------------------------"

echo "CRP Lab VirtualHost 설정 스크립트"

echo

echo

echo "만들 계정명을 입력해주세요."

read -p "사용자 이름 : " id


if [ "$id" = "y" ] && [ "$id" = "Y" ];then

 exit

fi



echo "패스워드를 설정합니다."

echo "패스워드는 계정_crplab 형식으로 설정해주세요."

adduser $id

passwd $id

echo "계정 생성이 완료되었습니다."

sleep 2

clear

echo "/home/$id/public_html , /home/$id 퍼미션을 설정합니다."


chmod 710 /home/$id

chgrp apache /home/$id

chown $id /home/$id/public_html

chgrp apache /home/$id/public_html

chmod 755 /home/$id/public_html


echo "권한 설정이 완료되었습니다."


echo "VirtualHost 설정을 위해, 도메인을 설정합니다."

echo

echo "도메인을 입력해주세요."

read -p ">" domain


if [ "$domain" = "n" ] && [ "$domain" = "" ];then

 exit

fi


echo "관리자 이메일을 설정합니다."

echo "이메일을 입력해주세요."

echo "없으면 noemail 을 입력해주세요"

read -p ">" email


if [ "$email" = "n" ] && [ "$email" = "" ];then

 exit

fi


echo "트래픽을 설정합니다."

echo "트래픽을 설정합니다."
echo "꼭 MB, GB 단위를 붙여주셔야 합니다."
read -p ">" traffic

if [ "$traffic" = "n" ] && [ "$traffic" = "" ];then
 exit
fi

echo "트래픽 갱신 주기를 설정합니다."
echo "1초당 트래픽 갱신은 1S, 1일마다는 1D, 1주일은 1W"
read -p ">" refresh

echo "" >> /etc/httpd/conf/httpd.conf
echo "

<VirtualHost *:80>
        DocumentRoot "/home/$id/public_html"
        ServerName $domain
        ServerAlias *.$domain
        #php_admin_value doc_root /home/$id
        #pbp_admin_value user_dir /home/$id/public_html
        CBandLimit $traffic
        CBandPeriod $refresh
</VirtualHost>" >> /etc/httpd/conf/httpd.conf
echo

sed -i "s/___님/$id/g" /home/$id/public_html/index.html
sed -i "s/도메인 : __/도메인 : $domain/g" /home/$id/public_html/index.html
sed -i "s/계정이름 : __/계정 이름 : $id/" /home/$id/public_html/index.html
sed -i "s/트래픽 : __/트래픽 : $traffic/" /home/$id/public_html/index.html
sed -i "s/갱신주기 : __/갱신주기 : $refresh/" /home/$id/public_html/index.html

## sed 명령어 = 어떤 대상 파일에 있는 문자열을 다른 문자열로 치환해주는 명령어입니다.
## 사용방법은 이러합니다. sed -i "s/바꿀내용/바뀔내용/" 대상파일
##  이외에 정규식을 이용하여 치환할수 있습니다. 자세한 내용은 



echo "이 아이피랑 도메인이랑 연결되어 있는지 확인해주세요."
echo "Server IP"
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
echo "--------"
echo
echo
ping $domain -c 2

echo "핑 테스트가 끝났습니다."
echo "모든 설정이 끝났습니다. 웹 서비스를 재시작합니다."
echo "설정된 계정이름은 $id , 도메인은 $domain 입니다"
echo "트래픽은 $traffic , 갱신 주기는 $refresh 입니다."
echo
echo "CRPLab"
/etc/init.d/httpd restart


스크립트에 문제가 있거나 불편사항이 있으시다면 덧글로 남겨주시기 바랍니다.


감사합니다.

Posted by RainC
,