# su -

# useradd username

# passwd username

(삭제시 userdel -rf username)

# su 사용자계정

# cd;mkdir public_html;chmod 701 public_html;cd ..

# chomod 701 계정명

------------------------------

디비 생성

# mysql -u root -p

mysql >    create database dbname;

mysql >  grant all privileges on dbname.* to 'username'@'localhost' identified by 'password' with grant option;


flush privileges;

(권한부여)


---------------------------

가상호스트

#  vi /etc/httpd/conf/httpd.conf

(Cent OS의 경우)

<VirtualHost *:80>
ServerAdmin moon@moon.com(담장자이메일)
DocumentRoot "/home/moon/www"(계정디렉터리)
ServerName moon.com(도메인주소)
ServerAlias www.moon.com (추가도메인주소)
< /VirtualHost>

추가

아파치 재시작


# vi /etc/httpd/conf/httpd.conf

(Cent OS의 경우)

맨하단에


<virtualhost *:80>
    ServerName domain.com
    ServerAlias *.domain.com
    DocumentRoot "/home/root/public_html"
    RewriteEngine on
    RewriteCond  %{HTTP_HOST}      ^[^.]+\.domain\.com$
    RewriteRule  ^(.+)            %{HTTP_HOST}$1 [C]
    RewriteRule  ^([^.]+)\.domain\.com(.*) /home/$1/public_html/$2
</virtualhost>


예를 들어 aaa.domain.com이라면
$1은 aaa
$2는 index.html이나 index.php

httpd.conf는 순차적으로 읽어오기때문에 가장 하단에 추가해야된다.

htaccess 파일을 만들어주고 그안에다가 아래내용을 만들면된다. 

리눅스로 옮긴 뒤로 .htaccess  점을 붙여준다. 숨김속성입니다. 

-------------------첫번째방법------------------------------------- 
SetEnvIFNoCase Referer "도메인" pass 
SetEnvIFNoCase Referer "google.com" pass 
SetEnvIFNoCase Referer "^$" pass 
<FilesMatch ".(jpg|gif|png|exe)$"> 
Order deny,allow 
deny from all 
allow from env=pass 
</FilesMatch> 

-------------------------두번째방법---------------------------------- 

RewriteEngine On 
RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?도메인 [NC] 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] 
RewriteRule \.(jpg|JPG|gif|GIF)$ - [NC,F,L] 


-------------------------세번째방법--------------------------------------- 

  SetEnvIf Referer 도메인 go_in 
  SetEnvIf Referer 도메인 go_in 
  SetEnvIf Referer 다른도메인 go_in 
  SetEnvIf Referer ^$ go_in 

  Order Deny,Allow 
  Allow from env=go_in 
  Deny from all

vi /etc/resolv.conf 


nameserver 168.126.63.1  //첫줄은 자신의 서버 IP
nameserver 168.126.63.2 

# rpm -qa | grep bind

bind-libs-9.3.3-10.el5
bind-9.3.3-10.el5
ypbind-1.19-8.el5
bind-utils-9.3.3-10.el5
bind-chroot-9.3.3-10.el5


=======================================================================================

- CentOS 5.1 설치시 패키지선택에서 DNS 이름서버를 선택하면 위의 내용이 모두 설치됨.
=======================================================================================


네임서버도 설치되어 있나 확인해 보자.

# rpm -qa | grep name
없다...젠장.... 설치해야 한다 ㅠㅠ


# yum install caching-nameserver

( 위에 걸로 설치가 안되면 caching-nameserver-9.3.3-10.el5 다 입력해준다. )

이젠 서버에선 DNS를 설정할 준비가 끝났다.


이해를 돕기위해 사용되는 예제에서 test.net 이란 가상의 도메인과 192.168.1.100 이란 공인IP를 사용하것으로 하겠다.

자신의 도메인과 IP 주소로 바꿔 사용하기 바란다.


1.서버에서 도메인을 제일 먼저 찾는 곳

# vi /etc/hosts
=======================================================================================
127.0.0.1        test.net      localhost
192.168.1.100  ns.test.net  ns
=======================================================================================
위와 같이 바꾸도록 하자


2.서버에서 쓸 dns

# vi /etc/resolv.conf
=======================================================================================
domain test.net
search test.net
nameserver 192.168.1.100
nameserver 168.126.63.1
nameserver 168.126.63.2
=======================================================================================


3.도메인에 대하 ip를 찾을 때 참조할 순서
# vi /etc/host.conf
=======================================================================================
order hosts,bind

==> 초기 설치시 이렇게 되어 있으며, 의미는 /etc/hosts파일부터 찾고, bind에서 찾는다는의미

=======================================================================================


4.Zone 파일 및 케시 DNS서버에 대한 설정

# cd /etc

# ls named*
named.caching-nameserver.conf  named.rfc1912.zones


위 파일 내용들은 caching-nameserver에서 기본적으로 생성되는 것들이다.



# vi /etc/named.caching-nameserver.conf
=======================================================================================
options {
        listen-on port 53 { 127.0.0.1; };

        listen-on port 53 { 111.222.333.444; }; // local machine IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        //match-clients            { localhost; };
        //match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

=======================================================================================
( 더 자세한 것은 책이나 인터넷을 더 검색해 보기 바란다.... ㅡ.ㅡ )

( 동작하면 되지 않는가 ㅜㅜ )


# vi named.rfc1912.zones

=======================================================================================
zone "." IN {
        type hint;
        file "named.ca";
};
// localhost 에 대한 설정
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };  //다이나믹 하게 업데이트를 허용할것인지 설정한다. 대부분 none
};
// 127.0.0.X 에 대한 역 도메인
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};
=======================================================================================


named.rfc1912.zones 파일의 맨 아랫 줄에 아래의 내용을 추가한다.

=======================================================================================
zone "test.net" IN { 
type master; 
file "test.net.zone"; 
allow-update { none; }; 
};

zone "1.168.192.in-addr.arpa" { //reverse domain - IP가 역으로 입력되어 있는 것에 주목~!!
type master; 
file "test.net.rev";
allow-update { none; };
}; 
=======================================================================================


zone 파일명은 test.net.zone으로 하였다.

위에서 추가한 도메인에 대한 zone 파일을 만들도록 하자..


# vi /var/named/chroot/var/named/test.net.zone
=======================================================================================
$TTL    86400
@       IN      SOA     ns.test.net. root.ns.test.net.  (
                2007112101 ; Serial
                28800      ; Refresh
                14400      ; Retry
                3600000    ; Expire
                86400 )    ; Minimum
                IN      NS      ns.test.net.
                IN      MX  10   mail.test.net.
                    IN      A       192.168.1.100
www            IN      A       192.168.1.100

mail              IN      A       192.168.1.100
*                  IN      A       192.168.1.100
=======================================================================================
# ln -s /var/named/chroot/var/named/test.net.zone /var/named/test.net.zone

(반드시 심볼릭 링크를 걸어야 한다~~!!! <-- 사실 테스트 안해봤다... )


# vi /var/named/chroot/var/named/test.net.rev
=======================================================================================
$TTL    86400
@       IN      SOA     ns.test.net. root.ns.test.net.  (
                2007122101 ; Serial
                28800      ; Refresh
                14400      ; Retry
                3600000    ; Expire
                86400 )    ; Minimum
                 IN      NS      ns.test.net.
100             IN      PTR     ns.test.net.
100             IN      PTR     www.test.net.
100             IN      PTR     test.net.
=======================================================================================
위에서 100이란 숫자는 IP의 제일 마지막에 해당하는 숫자이다.

# ln -s /var/named/chroot/var/named/test.net.rev /var/named/test.net.rev


도메인 네임.zero 파일도 꼭 생성// !


자.. 이제 모든 설정은 끝났다.. 사실 이제부턴 네임서버를 변경한 후 하루정도가 지나야 확실한 결과를 얻을 수 있다.

네임서버 변경은 도메인 등록 회사 서비스에 접속 후 변경하면 된다.

또한 방화벽을 설치했다면 외부에서 네임서버로 접근할 수 없으니 주의한다.

네임서버의 포트는 42로 방화벽에서 이 포트를 풀어야 한다.


설치와 설정이 끝났다면, DNS 서버를 시작하도록 한다.

(1) 시작
# /etc/rc.d/init.d/named start


(2) 재시작
# /etc/rc.d/init.d/named reload


(3) 정지
# /etc/rc.d/init.d/named stop


(4) 서버시작시 자동으로 실행

/etc/rc.d/rc3.d 와 /etc/rc.d/rc5.d 에 K로 시작하는 것이 있으면 다음과 같이 해준다.

# mv /etc/rc.d/rc3.d/K번호named /etc/rc.d/rc3.d/S번호named

# mv /etc/rc.d/rc5.d/K번호named /etc/rc.d/rc5.d/S번호named


(5) 호스트 네임 검사
# grep named /var/log/messages


(6) 설정한 도메인 확인하기

# nslookup

> server 168.126.63.1

> set type=any

> test.net


[ 다음은 iptables 사용시 추가할 부분이다 ]

------------------------------------------------------------------------------------------

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT
# -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --sport 1024:65535 -j ACCEPT     #상황봐서
# -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --sport 1024:65535 -j ACCEPT   #상황봐서

------------------------------------------------------------------------------------------


[출처] [CentOS] DNS 네임서버 설정 (BIND 9)|작성자 내지팡이

이번에 신용카드 유출로 인해 많은 개인정보들이 유출되었을 것입니다.


단적인 예로 구글링이라 불리는 구글검색을 통해서 여러분의 번호가 얼마나 쉽게


무작위로 광고를 날리는 스패머들에게 노출되었는지 간단히 찾아볼 수 있습니다.


구글을 접속후


여러분의 번호


010XXXXZZZZZ


라고 붙혀서 검색해보세요.


./configure \
--prefix=/usr/local/php5.3.7 \
--with-apxs2=/usr/local/apache-httpd-2.2.17/bin/apxs \
--with-mysql=/usr/local/mysql/ \
--with-config-file-path=/usr/local/apache-httpd-2.2.17/conf \
--disable-debug \
--enable-safe-mode \
--enable-track-vars \
--enable-sockets \
--with-mod_charset \
--with-charset=utf8 \
--with-xml \
--with-language=korean \
--enable-mailparse \
--enable-calender \
--enable-sysvsem=yes \
--enable-sysvshm=yes \
--enable-ftp \
--enable-magic-quotes \
--enable-gd-native-ttf \
--enable-url-includes \
--enable-trans-id \
--enable-inline-optimization \
--enable-bcmath \
--with-jpeg \
--with-png \
--with-zlib \
--with-jpeg-dir=/usr \
--with-png-dir=/usr/lib \
--with-freetype-dir=/usr \
--with-libxml-dir=/usr \
--enable-exif \
--with-gd \
--with-ttf \
--with-gettext \
--enable-sigchild \
--enable-mbstring

[출처] php 설치옵션|작성자 멋진태혁

.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="../js/jquery-1.3.2-vsdoc2.js" type="text/javascript "></script>
    <script type="text/javascript ">
        $(document).ready(function () {
            //h3요소 모두 가져오기
            var headers = $('h3');
            //반복문을 써서 반복: for문보다는 jQuery의 each문이 사용하기 편리
            for (var i = 0; i < headers.length; i++) {
                alert($(headers[i]).html());
            }

            $('h3').each(function (index) {
                alert($(this).html());
            });
        });
    </script>
</head>
<body>
<h3>제목1</h3>
<h3>제목2</h3>
</body>
</html>

도서관에서 파이썬을 공부하던 도중 다음과 같은 오류가 발생했다.

 socket.error: [Errno 10053] 현재 연결은 사용자의 호스트 시스템의 소프트웨어의 의해 중단되었습니다

그 위에 도 다양한 에러들이 많이 많이 있었으나

구글링 결과 공공기관의 인터넷이나 공용인터넷을  사용하는 경우

임의 포트를 사용할 경우 포트의 사용을 막아버리기 때문에 소켓에러가 발생하는 것이다.
 
물론 파이썬이외에도 위와 같은 소켓에러가 동일하게 나타날 경우 위와같은 이유이다.

 그럴 땐 다른 인터넷을 사용하거 다른 포트를 지정해서 사용하면 된다.
1

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>제목</title>

<script type="text/javascript" src="자바스크립트파일주소" ></script>


<script type="text/javascript">

자바스크립트 내용

</script>


<link href="css파일 주소" rel="stylesheet" type="text/css"/>


<style type="text/css">


CSS내용

</style> 



<!-- 주석 부분 -->



</head>

<body >


<div id="hello">내용 </div> 


</body>

</html>

+ Recent posts