안녕하세요
저도 이런경우를 경험한 적이 있어서 몇자 적습니다.
1. 먼저 nmap localhost 해서 110 번 포트가 열렸는지 확인합니다. 열려있지 않다면 열어주시고 열려있다면 다음으로 넘어갑니다.
2. telent localhost 110 해 보세요 연결이 되면 별문제가 없는건데 님의 경우 대부분 연결이 되지 않을걸로 생각됩니다.
저의 경우는 /etc/hosts.deny 에서 ALL : ALL 로 막아두어 발생한 문제였거든요
혹시 tcp wrapper이나 방화벽으로 막아두지 않았는지 확인해 보시기 바랍니다. 십중팔구는 아마 여기에 문제가 있는것 같군요
그럼 행운을...
이 명령어는 windows 계열에서 사용할 수 있으며 프로토콜 통계와 현재 TCP/IP 네트워크 연결을 표시합니다. 이렇게 말하면 어렵게 들릴지 모르겠는데 쉽게 말하자면 내 컴퓨터와 연결된 다른 컴퓨터의 리스트를 보는 명령어라는 것입니다. win98의 경우 한글MS-DOS창에서 netstat 라고 입력하면 아래와 같이 나타납니다.
Local Address
이것은 자기 컴퓨터입니다. test라는 것은 현재 이컴퓨터의 이름이고 오른쪽 숫자는 통신포트를 말합니다. 즉, 연결된 통로의 번지쯤 된다고 생각하시면 됩니다.
Foreign Address
인터넷으로 연결된 원격 컴퓨터의 리스트입니다. 여기서 localhost는 자기자신이며 168.249.156.239가 원격컴퓨터의 주소가 됩니다. 현재 한 개의 원격컴퓨터와 연결된 것을 알 수 있습니다. 만약 웹 브라우저로 어떤 사이트를 보고 있다면 그 사이트의 주소가 나타날것입니다.
netstat를 통한 문제진단 요령
네트웤 감시/네트워크 바이러스 진단
원격컴퓨터의 리스트를 본다는 것은 정상적인 연결외에 비정상적으로 연결된 것도 볼 수 있다는 것을 의미합니다. 얼마전 nimda 바이러스가 한때 세상을 떠들석하게 했을 때 감염된 PC를 알아내는 가장 간단한 방법이 netstat 명령어를 사용하는 것이었습니다. 자기가 접속한 웹사이트나 ftp 사이트외에 알지 못하는 컴퓨터 주소가 무수하게 나오면 백발백중 nimda에 감염된 것이라는 것이죠. 또는 누군가가 내 컴의 정보를 보고 있는지도 체크할 수 있습니다.
-n 옵션 : 주소와 포트 번호를 숫자 형식으로 빠르게 표시합니다
-r 옵션 : 라우팅 테이블을 보여줍니다
또한 국내 PC 통신의 한글 ID로는 메일 전송이 불가능합니다. 메일 주소는 전세계 공통이므로 국제 표준에 맞는 기호로 구성된 메일 주소만 정상적으로 전송되며 "천리안 한글 ID @chollian.net" 혹은 "유니텔 한글 ID@unitel.co.kr"와 같은 메일 주소로는 전송되지 않습니다.
-No such user / user doesn"t have a * account
메일 계정이 없다는 뜻이며 메일 주소가 존재하지 않거나 삭제된 경우입니다.
-Host unknown
메일 주소가 정확하지 않거나 수신측 메일 서버에 이상이 있는 경우입니다. "@" 뒤의 주소를 확인해 주세요. 점(.)이 불필요하게 중복되어 있거나 없는 경우를 확인하세요.
예: hongildong@yahoo.cokr 혹은 hongildong@.yahoocokr.
-Account disabled or discontinued
메일 계정이 삭제 혹은 해지 처리되어 배달되지 않은 경우입니다.
-Permanant fatal errors
받고자 하시는 곳의 메일 서버가 외부의 메일을 거부하거나 메일 주소가 정확하지 않아서 일어나는 현상인 경우가 많습니다.
-Data format error
외국의 메일 서버 중에는 영어 외의 언어로 작성된 제목을 지원하지 않는 경우가 있습니다. 제목란을 한글로 기입하셨거나 본문 자체에 서버에서 인식하지 않는 문자가 들어있는 경우에 이러한 에러 메세지가 발생합니다.
이런 경우, 제목을 영어로 작성하시고 (예: Hi!) 한글 본문은 첨부 파일(예: 메모장으로 작성된 txt 파일, 워드 파일 등)로 보내시기 바랍니다.
-Invalid name format
메일 주소를 잘못 기입하신 경우로 흔한 실수는 @의 전후, 혹은 메일 주소의 맨 앞이나 맨 뒤에 점(.)을 입력하거나 메일 주소 맨 앞에 "www."를 입력하는 경우 등이 있습니다.
-Operation timed out / Name server timeout
수신측 메일 서버를 찾을 수 없어서 아직 메일이 보내지지 않은 경우이지만 일정 시간이 지난 후 다시 시도하겠다는 경과 보고형 에러 메시지입니다. 조금 더 기다려 주시기 바랍니다.
워낙 단순하고 고수들이 많은 PHP School 에서 무슨 팁이라고 부를 수도 없겠지만..
초보로서 저보다 더 초보인 분들을 위해 간단한 루터 구하는 꽁수하나 올립니다.
리눅스를 기준으로 제작한 게시판을 윈도우의 APM 설치해서 테스트할 경우 웹계저의
루터(http://domain.com )가 아니라 웹 계정내에 따로 게시판용 디렉토리 board 를
만들어 그 곳에 게시판을 설치할 경우(http://domain.com/board )에는 디렉토리
구조차이로 에러가 나는 경우가 많습니다.
이럴 때 아래 함수(루틴?)을 이용하면 board 디렉토리의 경로를 쉽게 구할 수 있습니다.
공통으로 인크루드해서 사용하는 파일( function.php 또는 lib.php...) 상단에 위 함수를
넣어주고, 다른 프로그램 파일 등에서 사용시에는..
include $Root_Path."admin/admin.php"
이런 식으로 $Root_Path 를 앞에 붙이고 다음에 루터로부터 원하는 파일의 위치와 이름을
차례로 적어주면 됩니다.
보시면 알겠지만 아주 간단하게 이 파일( function.php 또는 lib.php...)을 호출하고 있는
파일(즉, 실제 실행중인 프로그램 파일)의 웹 경로(REQUEST_URI)에서 슬래쉬(/)가
몇개나 있는지 검사해서 두 개 (/board/index.php) 라면 루터 디렉토리는 ./ 가 되고...
두 개 이상이면 증가하는 갯수만큼 ../ 를 반복 입력해주는 거죠.
만약 위 함수를 담고 있는 공통파일을 호출한 실제 실행중인 파일의 주소가
http://domain.com/board/bbs/list.php라면 / 가 세개(/board/bbs/list.php)므로 루터
디렉토리 이름($Root_Path)은 ../../ 가 됩니다.
$REQUEST_URI 는 PHP자체에서 제공하는 서버환경변수로 프로그램파일의 웹 주소에서
도메인 부분을 뺀 나머지 주소를 값으로 가집니다.
http://domain.com/board/bbs/list.php 라면..$REQUEST_URI => /board/bbs/list.php
REQUEST_URI 대신 다른 변수를 이용해도 되겠지만 아무래도 위 함수를 담고있는 프로그램
파일이 자체적으로 어떤 실행을 하기보다는 대부분 다른 프로그램파일의 실행에 인크루드
되어서 실행되는 경우가 많을 테니까 ..
_SERVER[PHP_SELF] 나 HTTP_SERVER_VARS[DOCUMENT_ROOT]등의 변수보다
더 적당한 것 같네요.(??)
--------------------------------------------------------------------------------
mysql의 로그파일...
1. 에러로그
-> 서버 실행시 에러를 기록하는 로그
-> host_name.err 이라는 파일로 기록됨
2. 일반적인 로그
-> mysql에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우 기록됨
-> mysql의 데이터 디렉토리(/usr/local/var or /var/mysql/data)에 host_name.log로 기록
-> --log 라는 옵션을 주어 실행해야지 기록됨.
3. 업데이트 로그
-> 테이블에 변경이 있을 때마다 해항 쿼리가 기록됨
-> 2번과 마찬가지로 --log-update라는 옵션을 주어야 실행됨
-> host_name.#(일정하게 증가하는 번호)로 생성
-> mysqladmin refresh or mysqlamdin flush-logs를 할때마다 host_name.001, host_name.002와 증가한 이름이 붙
는다.
-> 하나의 파일에 다 넣으려면 --log-update=update.log한다. 그러면 update.log하나의 파일에 다 들어감..
--------------------------------------------------------------------------------
mysql의 로그파일...
1. 에러로그
-> 서버 실행시 에러를 기록하는 로그
-> host_name.err 이라는 파일로 기록됨
2. 일반적인 로그
-> mysql에 접근하는 사용자와 그들이 파일과 관련된 쿼리를 실행할 경우 기록됨
-> mysql의 데이터 디렉토리(/usr/local/var or /var/mysql/data)에 host_name.log로 기록
-> --log 라는 옵션을 주어 실행해야지 기록됨.
3. 업데이트 로그
-> 테이블에 변경이 있을 때마다 해항 쿼리가 기록됨
-> 2번과 마찬가지로 --log-update라는 옵션을 주어야 실행됨
-> host_name.#(일정하게 증가하는 번호)로 생성
-> mysqladmin refresh or mysqlamdin flush-logs를 할때마다 host_name.001, host_name.002와 증가한 이름이 붙
는다.
-> 하나의 파일에 다 넣으려면 --log-update=update.log한다. 그러면 update.log하나의 파일에 다 들어감..