سؤال

أنا باستخدام ويندوز 7 ، أباتشي 2 ، فب 5 ، الخلية 5 ، كلها على نفس الجهاز.لقد وجدت مشكلة مثيرة للاهتمام ، لدي الكود التالي:

    $sql = "select * from user1";
    $conn = mysql_connect("localhost", "root", "xxxxxxxx");
    mysql_select_db("test1");
    mysql_query("set names utf8");
    $result = mysql_query($sql, $conn);
    while ($row = mysql_fetch_assoc($result)){
        foreach ($row as $key => $value){
            echo $key." => ".$value." || ";
        }
        echo "<br/>";
    }
    mysql_free_result($result);
    mysql_close($conn);

وقت التشغيل للرمز أعلاه هو أكثر من 1 ثانية.

عندما أستخدم 127.0.0.1 بدلا من localhost, ، وقت التشغيل حوالي 10 مللي ثانية.

حاولت العثور على السبب الأساسي على الإنترنت ، وهذه هي النتيجة:

انتقلت مؤخرا تطوير بلدي من زب إلى ويندوز 7 وجدت أن صفحات الويب كنت قد وضعت أخذت 5 ثوان طويلة لتحميل.كان هذا غير مقبول بالطبع لذلك اضطررت لتعقب المشكلة.أنا في نهاية المطاف تعقب وظيفة المخالف / طريقة بدو:: بناء.كما وجدت أن الخلية كان يستغرق حوالي 1 ثانية لإجراء اتصال.بعد غوغلينغ قليلا وجدت إكسبلايناتيون أن فب كان مشاكل مع إيبف 6 والتي يمكن إصلاح المشكلة إما عن طريق تعطيل إيبف 6 أو التبديل إلى إيبادريس 127.0.0.1 عند إجراء الاتصال الخاص بك.

وأتساءل ما هي قضية إيبف 6 على فب هو ، فقط تريد الحصول على فهم أعمق.شكرا.

هل كانت مفيدة؟

المحلول

فب تحاول فتح اتصال إلى لوكالهوست.نظرا لأن جهاز الكمبيوتر الخاص بك متصل بشبكتك عبر إيبف 6 ، فإنه يحاول إصدار إيبف 6 من' لوكالهوست ' أولا ، وهو عنوان إب من:: 1

http://en.wikipedia.org/wiki/IPv6_address#Special_addresses

:: 1/128-عنوان الاسترجاع هو عنوان مضيف محلي أحادي الإرسال.إذا كان التطبيق في مضيف يرسل الحزم إلى هذا العنوان ، مكدس إيبف 6 سوف حلقة هذه الحزم مرة أخرى على نفس واجهة افتراضية (الموافق 127.0.0.0 / 8 في إيبف 4).

يبدو أن خادم الخلية الخاص بك لا يستمع إلى هذا العنوان ، بدلا من ذلك انها ملزمة فقط إلى عنوان إيبف 4 وذلك مرة واحدة فشل فب لفتح الاتصال فإنه يقع مرة أخرى ويحاول فتح لوكالهوست عبر إيبف 4 الملقب 127.0.0.1

أنا شخصيا أفضل استخدام إما عناوين إب أو استخدام الأثير ملف المضيفين ويندوز أو ما يعادل ماك لتحديد أسماء النطاقات 'وهمية' ومن ثم استخدام تلك عند الاتصال إلى الخلية ، والتي حل لعناوين إب.وفي كلتا الحالتين يمكنني أن أعرف بالضبط ما إذا كان سيتم استخدام عنوان إيبف 4 أو إيبف 6.

كل من ميسكل و أباتشي دعم إيبف 6 ولكن عليك أن تقول لهم لاستخدام عنوان إيبف 6 صراحة.للخلية انظر:http://dev.mysql.com/doc/refman/5.5/en/ipv6-server-config.html

للحصول على تكوين أباتشي انظر:http://httpd.apache.org/docs/2.2/bind.html

أباتشي يدعم عناوين إب متعددة بحيث يمكنك استخدام على حد سواء في وقت واحد - إذا كانت بطاقة الشبكة في الجهاز على حد سواء عنوان إيبف 4 و إيبف 6.الخلية يدعم عنوان واحد فقط.

نصائح أخرى

فب تحاول الاتصال "لوكالهوست" في ويندوز 7/8/10 هو:: 1 ، ولكن الخلية لا يستمع على مآخذ إيبف 6 ، يمكنك تطبيق عدة إصلاحات:

1) في ملف المضيف الخاص بك (C:/windows/system32/drivers/etc/host) تعيين المضيف المحلي إلى 127.0.0.1

2) في فب تغيير خادم الخلية من المضيف المحلي إلى 127.0.0.1

3) في بلدي.إيني ، إضافة أو تحرير:ربط العنوان = ::

إذا كان العنوان هو:: ، يقبل الخادم اتصالات تكب / إب على الكل خادم المضيف إيبف 4 و إيبف 6 واجهات.استخدم هذا العنوان للسماح لكليهما إيبف 4 و إيبف 6 اتصالات على جميع واجهات الخادم.

الخيار المقترح إذا كان لديك الخلية > = 5.5.3

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top