include를 잘못하여 무한 루프가 돌 경우

요즘에는 php와 mysql을 연동하여 많이 사용하고 있는데, 프로그래밍 과정에서 의 실수로 php 파일에서 같은 php 파일을 include하는 경우가 있다. 또는 a.php 파일에서 b.php 파일을 include하고 b.php 파일에서 다시 a.php 파일을 include하는 경우도 그러한 경우일 것이다. 이러한 경우에는 무한 루프가 돌 게 되어 결국은 아파치 데몬이 금새 Maxclients에서 지정한 개수로 차 버리게 되는데, 어떤 파일에서 무한 루프가 돌고 있는지 찾기가 힘들다. 따라서 임시로 다음과 같이 include를 하지 못하도록 차단을 하는 방법이 있다.

# iptables -A INPUT -p tcp -i lo -s xxx.xxx.xxx.xxx --sport 1024:65535 -j DROP
이는 같이 서버 내에서 include 시에는 lo(Lookback Interface)를 통해 sport 가 1024 이후의 하이 포트를 이용하여 통신한다는 특성을 이용한 것이다. 그러 나 이 설정을 하였을 경우 로컬 서버에서 클라이언트 포트를 전혀 사용할 수 없게 되므로 다른 서비스에도 장애가 되기 때문에 임시로만 사용하기 바란다. 또는 ps aux | grep http로 보이는 프로세스에서 ls -la/proc /pid/로 각각의 http 프로세스가 어떤 파일을 참조하고 있는지 일일이 추적하는 방법도 있다.

(예:cwd -> /home/user1/public_html/infinite_loop/)

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/08/17 13:35 2004/08/17 13:35
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/207

Trackback URL : http://tcbs17.cafe24.com/tc/trackback/207

« Previous : 1 : ... 72 : 73 : 74 : 75 : 76 : 77 : 78 : 79 : 80 : ... 213 : Next »

블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Statistics Graph

Site Stats

Total hits:
237456
Today:
573
Yesterday:
1352