سؤال خطأ Apache "تعذر تحديد اسم المجال المؤهل بالكامل للملقم"


عندما أعد تشغيل خادم Apache الخاص بي باستخدام الأمر

sudo /etc/init.d/apache2 restart

أحصل على الخطأ التالية:

Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

هل الخادم يستخدم 127.0.1.1 بدلا من 127.0.0.1؟ ما الذي يسبب هذا الخطأ؟


385
2018-02-14 13:09


الأصل




الأجوبة:


13.04 وأكبر

هذا هو مجرد تحذير ودية وليس حقا مشكلة (كما هو الحال في أن شيئا لا يعمل).

إذا قمت بإدراج

ServerName localhost   

في أي httpd.conf أو apache2.conf في /etc/apache2 وإعادة تشغيل apache سيختفي الإخطار.

إذا كان لديك اسم في الداخل /etc/hostname يمكنك أيضا استخدام هذا الاسم بدلا من localhost.


ويستخدم 127.0.1.1 اذا كان داخلك /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

الأسلوب المفضل

استكشاف أخطاء Apache

إذا تلقيت هذا الخطأ:

apache2: Could not determine the server's fully qualified domain name, 
using 127.0.0.1 for ServerName

ثم استخدم محرر نصوص مثل "sudo nano" في سطر الأوامر أو "gksudo gedit" على سطح المكتب لإنشاء ملف جديد ،

sudo nano /etc/apache2/conf.d/fqdn

أو

gksu "gedit /etc/apache2/conf.d/fqdn"

ثم أضف

ServerName localhost

إلى الملف وحفظه. يمكن القيام بذلك في أمر واحد مع ما يلي:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

لكن على Ubuntu 14.04:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
 sudo a2enconf fqdn

لا تنس ".conf" (دون أن تنجح).


470
2018-02-14 13:18



هذا مذكور أيضًا في وثائق إعداد Ubuntu LAMP لـ استكشاف أخطاء Apache. هناك يوصون بإنشاء ملف /etc/apache2/conf.d/fqdn مع ServerName localhost فيه - icc97
إجابة جيدة جدا - ولكن أود أيضا أن أوصي وضعه في الدليل conf.d :) - cwd
/etc/apache2/conf.d/ لا وجود بعد تثبيت lamp-server^ في 14.04 - redanimalwar
redanimalwar للحصول على 13.10 وأحدث رؤية @ جواب ستاركس أدناه. - Dan
للخطوة الأخيرة (إنشاء sym-link في 14.04) أوصي sudo a2enconf fqdn على الرغم من أنه يجب أن يكون هو نفسه من الناحية الفنية. - yoshi


13.10 أو أحدث

اعتبارًا من Apache 2.4 - والذي يتوفر بشكل افتراضي اعتبارًا من 13.10 - لا يمكنك استخدام الطريقة حول إضافة ملف تهيئة في conf.d دليل.

لم تعد أباتشي تستخدم conf.d دليل. يتم تخزين جميع ملفات التكوين في الداخل /etc/apache2/conf-available الدليل وجميع ملفات التكوين يجب أن يكون الآن .conf تمديد.

لحل هذه الرسالة في Apache 2.4 ، يجب علينا إنشاء ملف تكوين داخل الدليل conf-available. فمثلا servername.conf.

sudo vi /etc/apache2/conf-available/servername.conf

وداخل هذا نحن بحاجة فقط إلى إضافة سطر واحد

ServerName localhost

يمكنك الجمع بين الأمرين السابقين في واحد مع:

echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf

إذا كنت ترغب في استخدام اسم نطاق أو أي اسم آخر اعتمادا على شرط الغرامة ، فقط استبدال localhost مع كل ما تحتاجه. القادم لديك لتمكين هذا التكوين. لهذا ، تحتاج إلى تشغيل الأمر التالي:

sudo a2enconf servername

a2enconf هو أمر لتمكين ملف التكوين في Apaches 2.4. لاحظ أيضا أن servername على الأمر أعلاه من اسم ملف التكوين servername.conf. إذا كان ملف التكوين الخاص بك ngenericserver.conf عندها عليك أن تكتب sudo a2enconf ngenericserver.

بعد هذا إعادة تحميل الخادم والرسالة المذكورة أعلاه لن يعد لك الأخطاء.

sudo service apache2 reload

أو

sudo apache2ctl graceful

الآن بعد هذا سترى أن الرسالة لن تظهر مرة أخرى وسيتم إصلاح المشكلة.


158
2017-12-26 18:45



لا أحد يعرف كيف يجعل Apache يقول التي ملف التكوين انها مشكلة مع؟ لا أعرف لماذا لم يفكر المطورون في وضع هذا في رسائل الخطأ الخاصة بهم - لا يكاد يأخذ الكثير من التعليمات البرمجية! - John Y
إذا كان لدي fqdm على الإنترنت لهذا الخادم ، فهل هذا هو المكان المناسب لوضعه؟ أي يجب علي استبدال myhost.org بدلاً من localhost؟ - CPBL
CPBL سيكون هذا هو اسم الخادم الافتراضي لجميع المواقع. إذا كان لديك موقع واحد فقط ، فهذا هو كل ما تحتاج إليه. إذا كانت لديك عدة مواقع على خادمك ، فستحتاج أيضًا إلى إضافة توجيه servername لكل موقع في تهيئة المضيف الظاهري الخاص به. - Dan
يعمل على 14.04 LTS. - Parto
يبدو أن رابطك المقتبس ميت ، يُرجى الإصلاح. - Fredrick Gauss


  • افتح محطة
  • افتح ال /etc/apache2/httpd.conf ملف:

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • بشكل افتراضي ، سيكون فارغًا. ما عليك سوى إضافة السطر التالي:

    ServerName localhost
    
  • احفظ الملف واخرج

  • قم بإعادة تشغيل الخادم

    sudo service apache2 restart
    

[1] تشغيل المحرر الافتراضي ، راجع sudo update-alternatives --config editor


24
2018-02-14 13:17



بعد تنفيذ الأمر الأخير يحدث الخطأ التالي ** إعادة تشغيل خادم الويب apache2 / usr / sbin / apache2ctl: 87: ulimit: خطأ في تحديد الحد المسموح به (العملية غير مسموح بها) / usr / sbin / apache2ctl: 87: ulimit: حد إعداد الخطأ (Operation not مسموح به (13) تم رفض الإذن: make_sock: تعذر الربط مع عنوان 0.0.0.0:80 لا توجد مآخذ استماع متوفرة ، وإيقاف تشغيل غير قادر على فتح سجلات فشل إجراء 'بدء'. قد يحتوي سجل أخطاء Apache على مزيد من المعلومات. [فشل] ** @ green7 - Deepu
محاولة "إعادة تشغيل الخدمة sudo apache2" - waterloo2005


يمكن لـ Apache2 أيضًا الحصول على FQDN من اسم مضيف نظام تم توصيفه بشكل صحيح بدلاً من hardcoded في ملف التكوين apache. Hardcoding فإنه سيؤدي أيضًا إلى حدوث تشويش في حالة تغيير اسم المضيف. أنت في الواقع لا تحتاج إلى أي شيء ServerName التوجيهات في httpd.conf أو أي ملفات التكوين اباتشي.

ضع ما يلي في /etc/hosts:

# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost

أين hostname.domainname.com هو FQDN الخاص بجهازك.

إلى جانب اسم مضيف تم تكوينه بشكل صحيح في /etc/hostname/ أو مع hostnamectl، سيساعد هذا أيضًا على تشغيل الخدمات الأخرى على جهازك بشكل صحيح (أي رسالة تسجيل الدخول ، تظهر This is hostname.domainname.com بدلا من This is hostname.unknown_domain.)


22
2017-09-18 18:05



+1 لـ "اسم مضيف نظام تم تهيئته بشكل صحيح". كنت أرغب في تكوين الخادم بشكل صحيح. هذا أيضا إصلاح الخطأ الخاص بي في السجل [warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!? - transistor1
هل تعتقد أن هذا يجب أن يعمل مع Apache 2.2.22؟ مازلت أتلقى "تعذر تحديد اسم المجال المؤهل بالكامل للملقم ، باستخدام 127.0.1.1 لـ ServerName" - David Winiecki
هو hostname localhost من المفترض أن يكون myubuntuservername localhost؟ أو سلسلة حرفية hostname localhost؟ لم تكن واضحًا في إجابتك - Jonathan
يجب أن يكون هذا هو الجواب المقبول. يبدو أنك قد تحتاج إلى ربط FQDN بعنوان IP ثابت بدلاً من 127.0.0.1، على أية حال. - Skippy le Grand Gourou


في الإصدار الجديد من apache2 ، فإنك تتبع أمرًا كالتالي:

sudo nano /etc/apache2/apache2.conf

أضف نهاية السطر الجديد من الملف:

ServerName localhost

ثم أعد تشغيل apache2:

sudo service apache2 restart

تم التنفيذ.


15
2018-04-16 06:38





أجد أنه من الأفضل قليلاً إنشاء ملف جديد في /etc/conf.d هذا لتعديل سواء apache2.conf أو httpd.conf.

إنه تفضيل شخصي يبقي تغييرات التوصيف الخاصة بي منفصلة عن حزمة التوزيع. لذلك ، تصبح التحديثات أقل تعقيدًا.

أنا خلقت الملف /etc/apache2/conf.d/AAserverName ويحتوي فقط على:

ServerName myhost.mycomain.tld

الاقتراحات الأخرى تعمل بالتأكيد أيضا.


4
2017-09-06 15:31





في Ubuntu 16.04:

sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name

2
2018-04-17 13:26