अपाचे त्रुटि "सर्वर के पूरी तरह से योग्य डोमेन नाम को मज़बूती से निर्धारित नहीं कर सका"


431

जब मैं कमांड का उपयोग करके अपने अपाचे सर्वर को पुनरारंभ करता हूं

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.0.1 के बजाय 127.0.1.1 का उपयोग कर रहा है? इस त्रुटि का क्या कारण है?

जवाबों:


509

6 # 13.04 और पुराने

यह सिर्फ एक दोस्ताना चेतावनी है और वास्तव में समस्या नहीं है (जैसा कि इसमें कुछ काम नहीं करता है)।

अगर आप जायें तो:

/etc/apache2/apache2.conf

और डालें:

ServerName localhost   

और फिर टर्मिनल में टाइप करके अपाचे को पुनरारंभ करें:

sudo systemctl reload apache2

नोटिस गायब हो जाएगा।

अगर आपके अंदर एक नाम है /etc/hostnameतो आप उस नाम का उपयोग भी कर सकते हैं localhost


और यह उपयोग करता है 127.0.1.1अगर यह आपके अंदर है /etc/hosts:

127.0.0.1 localhost
127.0.1.1 myhostname

पसंदीदा विधि

समस्या निवारण अपाचे

यदि आपको यह त्रुटि मिलती है:

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

फिर कमांड लाइन पर "sudo नैनो" जैसे टेक्स्ट एडिटर का उपयोग करें या नई फाइल बनाने के लिए डेस्कटॉप पर "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" (बिना काम नहीं चलेगा) को मत भूलना।


2
यह समस्या निवारण अपाचे के लिए Ubuntu LAMP सेटअप प्रलेखन में भी वर्णित है । वहाँ वे के साथ एक फ़ाइल /etc/apache2/conf.d/fqdn बनाने की सलाह देते ServerName localhostउस में
icc97

बहुत अच्छा जवाब - लेकिन मैं इसे conf.d निर्देशिका में डालने की भी सिफारिश
करूंगा

3
/etc/apache2/conf.d/lamp-server^14.04 में मेरी स्थापना के बाद मौजूद नहीं है
redanimalwar

@redanimalwar 13.10 के लिए और नीचे @ Starx के उत्तर को नए रूप में देखें ।
दान

3
बहुत अंतिम चरण के लिए (14.04 में सिम्-लिंक बनाना) मैं यह सलाह दूंगा sudo a2enconf fqdnकि यह तकनीकी रूप से समान होना चाहिए।
नुआल

176

13.10 या नया

अपाचे 2.4 के रूप में - जो कि 13.10 के रूप में डिफ़ॉल्ट रूप से उपलब्ध है - आप conf.dनिर्देशिका में एक विन्यास फाइल को जोड़ने के बारे में विधि का उपयोग नहीं कर सकते हैं ।

Apache अब conf.dडायरेक्टरी का उपयोग नहीं करती है । सभी कॉन्फ़िगरेशन फ़ाइलों को /etc/apache2/conf-availableनिर्देशिका के अंदर संग्रहीत किया जाता है और सभी कॉन्फ़िगरेशन फ़ाइलों का अब .confविस्तार होना चाहिए ।

Apache 2.4 में इस संदेश को हल करने के लिए, हमें conf-available directory के अंदर एक कॉन्फ़िगरेशन फ़ाइल बनानी होगी। उदाहरण के लिए 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

a2enconfApaches 2.4 में कॉन्फ़िगरेशन फ़ाइल को सक्षम करने के लिए एक कमांड है। यह भी ध्यान दें कि servernameउपरोक्त कमांड कॉन्फ़िगरेशन फ़ाइल के नाम से है servername.conf। यदि आपकी कॉन्फ़िगरेशन फ़ाइल थी, ngenericserver.confतो आपको लिखना होगा sudo a2enconf ngenericserver

इसके बाद सर्वर को पुनः लोड करें और उपरोक्त संदेश अब आपको बग नहीं देगा।

sudo service apache2 reload

या

sudo apache2ctl graceful

अब इसके बाद आप देखेंगे कि संदेश दोबारा नहीं दिखाया जाएगा और समस्या ठीक हो जाएगी।


3
किसी को भी अपाचे कहना बनाने के लिए कैसे पता है जो कॉन्फ़िग फ़ाइल इसके साथ समस्या हो रही है? मुझे नहीं पता कि डेवलपर्स अपनी त्रुटि संदेशों में यह क्यों नहीं सोचते - यह शायद ही बहुत कोड लेता है!
जॉन वाई

अगर मेरे पास इस सर्वर के लिए एक इंटरनेट fqdm है, तो क्या इसे लगाने की जगह है? यानी मुझे लोकलहोस्ट के स्थान पर myhost.org स्थानापन्न करना चाहिए?
CPBL

1
@CPBL यह सभी साइटों के लिए डिफ़ॉल्ट सर्वर नाम होगा। यदि आपके पास केवल एक साइट है, तो आपको बस इतना करना होगा। यदि आपके सर्वर पर कई साइटें हैं, तो आपको अपने संबंधित वर्चुअल होस्ट कॉन्फ़िगरेशन में प्रत्येक साइट के लिए सर्वर नाम निर्देशन को भी जोड़ना होगा।
डेन

1
14.04 एलटीएस पर काम करता है।
पार्टो

1
आपका उद्धृत लिंक मृत है, कृपया ठीक करें।
फ्रेड्रिक गॉस

28

Apache2 अपाचे कॉन्फिगर फ़ाइल में हार्डकोड के बजाय एक ठीक से कॉन्फ़िगर किए गए सिस्टम होस्टनाम से FQDN भी प्राप्त कर सकता है। यदि होस्टनाम बदल जाता है, तो हार्डकॉड करना भी भ्रम पैदा करेगा। आप वास्तव 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)।


5
"ठीक से कॉन्फ़िगर किया गया सिस्टम होस्टनाम" के लिए +1। मैं सर्वर को ठीक से कॉन्फ़िगर करना चाहता था। इससे लॉग में मेरी त्रुटि भी तय हो गई[warn] RSA server certificate CommonName (CN) <fqdn> does NOT match server name!?
ट्रांजिस्टर 1

क्या आपको लगता है कि यह अपाचे 2.2.22 के साथ काम करना चाहिए? मुझे अभी भी "सर्वरनेम के लिए 127.0.1.1 का उपयोग करते हुए" सर्वर का पूरी तरह से योग्य डोमेन नाम निर्धारित नहीं किया जा सका है, "
डेविड विनीकी

है hostname localhostहोना चाहिए myubuntuservername localhost? या स्ट्रिंग शाब्दिक hostname localhost? आप अपने उत्तर में स्पष्ट नहीं थे
जोनाथन

2
यह स्वीकृत उत्तर होना चाहिए। ऐसा लगता है कि आपको FQDN को स्थिर IP पते से संबद्ध करने की आवश्यकता हो सकती है 127.0.0.1, हालाँकि।
स्किप्पी ले ग्रैंड गौरू

1
उबंटू 18.04 पर मेरे लिए यह सबसे अच्छा जवाब था। मैं चाहता था कि दस्तावेज़ सुसंगत था, हालांकि पूरी तरह से योग्य डोमेन नाम यहाँ या कहीं भी समान शब्दावली नहीं है। अगर मेरा पूरी तरह से योग्य डोमेन नाम google.com था और मेरा सर्वरनेम google था, तो / etc / host में मेरी प्रविष्टि 127.0.0.1 होगी। google.com google मैं स्थानीय होस्ट लाइन और विज्ञापन स्थानीय होस्ट को इस पंक्ति के अंत में बदल सकता था अगर मैं तमन्ना। मैंने इसका उपयोग किया: digitalocean.com/community/tutorials/…
NZ Dev

26
  • एक टर्मिनल खोलें
  • /etc/apache2/httpd.confफ़ाइल खोलें :

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • डिफ़ॉल्ट रूप से, यह रिक्त होगा। बस निम्नलिखित पंक्ति जोड़ें:

    ServerName localhost
    
  • फ़ाइल सहेजें और बाहर निकलें

  • सर्वर को पुनरारंभ करें

    sudo service apache2 restart
    

[१] डिफ़ॉल्ट संपादक लॉन्च करें, देखें sudo update-alternatives --config editor


अंतिम कमांड को अंजाम देने के बाद निम्नलिखित त्रुटि होती है ** वेब सर्वर apache2 / usr / sbin / apache2ctl: 87: ulimit: त्रुटि सेटिंग सीमा (ऑपरेशन की अनुमति नहीं) / usr / sbin / apache2ctl: 87: ulimit: त्रुटि सेटिंग सीमा (ऑपरेशन नहीं) अनुमति दी गई) (13) अनुमति अस्वीकृत: make_sock: 0.0.0.0:80 को संबोधित करने के लिए बाध्य नहीं किया जा सकता है, कोई सुनने की सॉकेट उपलब्ध नहीं है, लॉग को खोलने में असमर्थ है 'कार्रवाई' प्रारंभ विफल। अपाचे त्रुटि लॉग में अधिक जानकारी हो सकती है। [विफल] ** @ हरी7
दीपू

'sudo service apache2 पुनरारंभ' का प्रयास करें
waterloo2005

20

Apache2 के नए संस्करण में आप बस इस तरह से कमांड का पालन कर रहे हैं:

sudo nano /etc/apache2/apache2.conf

निम्नलिखित नई पंक्ति फ़ाइल के अंत में जोड़ें:

ServerName localhost

फिर Apache2 को फिर से शुरू करें:

sudo service apache2 restart

हॊ गया।


6

मुझे लगता है /etc/conf.dकि apache2.confया तो संशोधित करने के लिए एक नई फ़ाइल बनाना थोड़ा बेहतर है httpd.conf

यह एक निजी प्राथमिकता है जो मेरे कॉन्फ़िगरेशन परिवर्तन को वितरण पैकेज से अलग रखता है। इसलिए अपडेट कम जटिल हैं।

मैं फ़ाइल बनाता हूं /etc/apache2/conf.d/AAserverNameऔर इसमें केवल शामिल हैं:

ServerName myhost.mycomain.tld

अन्य सुझाव निश्चित रूप से भी काम करते हैं।



1

जोड़ना ServerName localhost

सेवा

 sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf

यह एक त्रुटि नहीं है .. यह सिर्फ एक दोस्त की याद दिलाता है


1

ServerName localhostवर्चुअल होस्ट अनुभागों के बाहर आपकी कॉन्फ़िगरेशन फ़ाइलों में निर्दिष्ट करना ऐसा करने का तरीका है।

कुछ अन्य उत्तर बताते हैं कि आपको संशोधित करना चाहिए /etc/apache2/httpd.conf। एपेक से अपग्रेड होने पर यह फाइल अधिलेखित हो जाती है। अपाचे कॉन्फ़िगरेशन के लिए जिसे आप अधिलेखित नहीं करना चाहते हैं, आपको एक नई फ़ाइल बनानी चाहिए। इस विन्यास परिवर्तन को बनाने के लिए यहां "डेबियन तरीका" है:

# create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart

यह मूल रूप से स्टार्क के उत्तर के समान है, लेकिन स्क्रिप्ट फॉर्म को कॉपी और पेस्ट करने में आसान है। मैंने इसे मूल रूप से एक प्रश्न में पोस्ट किया था जिसे डुप्लिकेट के रूप में चिह्नित किया गया था: https://askubuntu.com/a/432408


1

पर उबंटू 16.04 :

कमांड के बाद ServerName localhostफ़ाइल httpd.confusin gthe में जोड़ें ।

sudo vi  /etc/apache2/httpd.conf

फिर Include httpd.confइस फ़ाइल के अंत में इस पंक्ति को शामिल करें

sudo vi /etc/apache2/apache2.conf

सिंटैक्स त्रुटियों के लिए फिर से जाँच करें

sudo apache2ctl configtest

अब आपको मिलना चाहिए

Syntax OK

अब आप कॉन्फ़िगरेशन को फिर से लोड करके सर्वर को फिर से शुरू कर सकते हैं

sudo service apache2 reload

या प्रक्रिया को मार डालो और फिर से शुरू करें

sudo service apache2 restart

0

उबंटू 11.10 पर, मैंने इस संदेश को देखा, साथ में एक लटका हुआ बूट भी था क्योंकि मेरी डिस्क भरी हुई थी। लॉग फ़ाइलों में से एक बदमाश गया था । संभवतः अपाचे के साथ वास्तव में कोई समस्या नहीं थी, लेकिन यह संदेश बूट लटकाए जाने से पहले दिया गया अंतिम सुराग था।

समस्या को ठीक करने के लिए, मुझे पुनर्प्राप्ति मोड में बूट करना पड़ा और स्वच्छंद लॉग फ़ाइल को निकालना पड़ा।


0

यदि आप बैश का उपयोग कर रहे हैं और न्यूनतम निर्भरता चाहते हैं (और यदि आप मेरी तरह डॉकटर का उपयोग कर रहे हैं तो अपनी प्रविष्टि की स्क्रिप्ट के लिए एक-लाइनर चाहते हैं), इन दो विकल्पों पर काम करना चाहिए।

यदि आप लोकलहोस्ट चाहते हैं:

echo "ServerName localhost" >> /etc/apache2/apache2.conf

यदि आप मौजूदा होस्टनाम चाहते हैं:

echo "ServerName $(cat /etc/hostname)" >> /etc/apache2/apache2.conf

यह फ़ाइल के अंत में स्ट्रिंग को जोड़ने के लिए बैश पुनर्निर्देशन ऑपरेटरों का उपयोग करता है । इको स्वचालित रूप से न्यूलाइन को सम्मिलित करता है, इसलिए आप सभी सेट हैं।


0

निम्न आदेश चलाएँ:

apachectl -t -D DUMP_INCLUDES

अपनी httpd.confकॉन्फ़िगरेशन फ़ाइल का पथ निर्धारित करने के लिए , फिर उस फ़ाइल को संपादित करें और उस पंक्ति को अनलिमिटेड / संशोधित करें, जो ServerNameविकल्प के लिए मान निर्दिष्ट करता है , उदा

ServerName localhost

वेब सर्वर के लिए, पंजीकृत DNS नाम (जैसे example.com) का उपयोग करें।

यदि आपके होस्ट में पंजीकृत DNS नाम नहीं है, तो यहां अपना आईपी पता दर्ज करें।


0

पर उबंटू 16.04 :

कमांड के बाद ServerName localhostफ़ाइल httpd.confusin gthe में जोड़ें ।

sudo vi  /etc/apache2/httpd.conf

फिर Include httpd.confइस फ़ाइल के अंत में इस पंक्ति को शामिल करें

sudo vi /etc/apache2/apache2.conf

सिंटैक्स त्रुटियों के लिए फिर से जाँच करें

sudo apache2ctl configtest

अब आपको मिलना चाहिए

Syntax OK

अब आप कॉन्फ़िगरेशन sudo सेवा apache2 पुनरारंभ को पुनः लोड करके सर्वर को इनायत से पुनः आरंभ कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.