질문/조언질답게시판

<?php

    include_once './dbconfig.php';

    $conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

    if(mysqli_connect_errno()){

        echo "연결실패! ".mysqli_connect_error();

    }

    $query = "SELECT * FROM images";

    $result = mysqli_query($conn, $query);

 

    while($data = mysqli_fetch_array($result)){

        

        echo '<li style=\'float:left; margin: 2px;\'>';

        echo '<img src='.$data['imgurl'].' width=200><br>';

        echo ($data['filename']);

        echo '</li>';

    }

 

   mysqli_close($conn);

?>

 

위 소스코드를 사용하니

연결실패! php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

이렇게 뜹니다.

 

인터넷에 찾아보니

 네임서버 문제라는데 정확히 뭘 해야할지 이해가 안갑니다.

 

/etc/resolv.conf 에 네임서버 주소를 입력하면 될까요??

  • ?
    ping xetown.com 같은거 해보세요 그래도 에러 나나요?
    지금 환경이 어떻게 되세요? vps 인가요? 웹호스팅인가요?
    아니면 눈앞에 서버를 놔두고 작업하고 계신가요?
    네트웍으로 서버와 연결된 상태라면
    네임서버 설정이 안되어있을 가능성이 거의 없을텐데 이상하네요...
  • ? profile
    환경이 ubunut 18.04로
    linode의 vps를 사용중입니다.

    php7.3 사용중입니다.
  • ? profile
    도메인은 namecheep을 사용중이고
    클플 사용중입니다~!
    iptables 설정은 혹시 몰라 적어봅니다.
    ----------------------------------------------------------------------
    iptables -A INPUT -s 211.219.246.131 -j ACCEPT &&
    iptables -A INPUT -i lo -j ACCEPT &&
    iptables -A INPUT -p icmp -j DROP &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 173.245.48.0/20 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.21.244.0/22 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.22.200.0/22 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 103.31.4.0/22 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 141.101.64.0/18 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 108.162.192.0/18 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 190.93.240.0/20 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 188.114.96.0/20 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 197.234.240.0/22 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 198.41.128.0/17 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 162.158.0.0/15 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 172.64.0.0/13 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 131.0.72.0/22 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 104.16.0.0/13 -j ACCEPT &&
    iptables -I INPUT -p tcp -m multiport --dports http,https -s 104.24.0.0/14 -j ACCEPT &&
    iptables -A INPUT -p tcp --dport http -j DROP &&
    iptables -A INPUT -p tcp --dport https -j DROP &&
    iptables -nL
    ----------------------------------------------------------------------
  • profile

    DB_HOST가 localhost라면 DNS의 영향은 받지 않을 텐데, 혹시 DB가 외부에 있나요? 외부에 있더라도 IP 주소로 직접 연동하면 DNS의 영향을 받지 않습니다. 지금 발생하고 있는 문제와는 별개로, DB에 접속할 때마다 외부 DNS 요청을 해야 하는 아주 안 좋은 상태로 설정되어 있는 게 아닌지 의심됩니다.

     

    iptables 설정하시다가 DNS를 막아버리셨을 가능성이 높은데, 시험삼아 iptables를 초기화해 보면 그게 원인이 맞는지 아닌지 간단하게 확인할 수 있을 것입니다. 우분투라면 iptables 쓰지 말고 ufw 쓰세요.

  • profile profile
    아... 해결은 했습니다.

    설치때 오류가 있엇는지 db 제대로 작동 되지 않은것 같습니다.