apache2: सर्वर नाम के लिए 127.0.1.1 का उपयोग करते हुए सर्वर के पूर्ण रूप से योग्य डोमेन नाम का निश्चित रूप से निर्धारण नहीं कर सकता है


73

मुझे यह चेतावनी तब मिलती रहती है जब मैं (अप) अपाचे शुरू करता हूं।

* 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 [ OK ]

यह मेरी etc/hostsफ़ाइल की सामग्री है :

#127.0.0.1  hpdtp-ubuntu910
#testproject.localhost  localhost.localdomain   localhost
#127.0.1.1  hpdtp-ubuntu910

127.0.0.1   localhost
127.0.0.1   testproject.localhost
127.0.1.1   hpdtp-ubuntu910



# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

यह मेरी /etc/apache2/sites-enabled/000-defaultफ़ाइल की सामग्री है :

<VirtualHost *:80>
  ServerName testproject.localhost
  DocumentRoot "/home/morpheous/work/websites/testproject/web"
  DirectoryIndex index.php
  <Directory "/home/morpheous/work/websites/testproject/web">
    AllowOverride All
    Allow from All
  </Directory>

  Alias /sf /lib/vendor/symfony/symfony-1.3.2/data/web/sf
  <Directory "/lib/vendor/symfony/symfony-1.3.2/data/web/sf">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

जब मैं जाता हूं http://testproject.localhost, तो मुझे एक खाली पृष्ठ मिलता है।

किसी को भी मैं गलत कर रहा हूँ हाजिर कर सकते हैं?

जवाबों:


52

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

इसे ठीक करने के लिए, या तो किसी भी वर्चुअल होस्ट के बाहर एक ServerName निर्देश जोड़ें - जैसे कि /etc/apache2/httpd.conf, या अपने प्राथमिक आईपी पते के लिए रिवर्स DNS प्रतिक्रिया सेट करें - इस मामले में, 127.0.1.1

इसे भी नजरअंदाज करना पूरी तरह से ठीक है।


3
यह प्रति-सहज है। यदि मैं किसी वर्चुअल होस्ट के बाहर सर्वरनेम जोड़ता हूं - तो मैं एक ही अपाचे सर्वर से कई वर्चुअल होस्ट कैसे सेवा कर सकता हूं? (यह afterall, वर्चुअल सर्वर के नाम का बिंदु है) - UNLESS, आप कह रहे हैं कि मेरे पास 1 से अधिक ServerName प्रविष्टि (कह सकते हैं)
/etc/apache2/httpd.conf

7
उसके बाद आप VirtualNost ब्लॉक्स के अंदर ServerName / ServerAlias ​​जोड़ सकते हैं ताकि VirtualHost केवल आपके इच्छित होस्ट नामों से मेल खा सके। निम्न-डाउन के लिए httpd.apache.org/docs/2.2/mod/core.html#servername पढ़ें ।
crb

मैं एक घंटे से अधिक समय तक इस उत्तर को खोजता रहा। इस बारे में इंटरनेट पर बहुत बकवास है, लेकिन यह मेरी समस्या तय की। Thx
माइक

@ आप और अन्य लोग प्रतिभाशाली हैं! मैंने चार दिनों के लिए इस उत्तर को खोजा है। (ठीक है, पूरी तरह से काम के दिन नहीं।) +1 क्योंकि यह पहला उत्तर है जो बताता है कि मैं उन्हें प्रभावित किए बिना वर्चुअल होस्ट्स के बाहर एक ServerName निर्देश जोड़ सकता हूं। इसे ध्यान में रखते हुए, ReinoutS के समाधान ने मेरे लिए काम किया (+1 उसे भी)।
सोनी सेंटोस

27

यहाँ एक त्वरित सुधार है:

echo ServerName $HOSTNAME > /etc/apache2/conf.d/fqdn

धन्यवाद। / Etc / host और न ही httpd.conf का उपयोग करने वाले किसी भी फ़िक्सेस ने मेरे लिए काम नहीं किया, लेकिन यह किया।
रयान

1
इसे Apache2 पर चलने वाले Ubuntu 13.04 पर फिक्स्ड, धन्यवाद!
danexe

16

उस चेतावनी के इर्द-गिर्द एक और तरीका है कि आप एक पूरी तरह से योग्य डोमेन नाम की 127.0.1.1लाइन पर रखें /etc/hosts। यह भी एक fqdn होना जरूरी नहीं है कि वास्तव में एक dns सर्वर पर कुछ भी करने के लिए हल होगा।

127.0.1.1  hpdtp-ubuntu910.lan  hpdtp-ubuntu910

किसी भी कार्यक्रम के व्यवहार को संरक्षित करते हुए, जो अतिरिक्त की उम्मीद नहीं कर रहे हैं, वह चाल भी करेगा .lan। आदेश महत्वपूर्ण है; अधिक स्तरों वाले नामों को पहले निर्दिष्ट किया जाना चाहिए, क्योंकि इस उदाहरण में जहां .lanपता दूसरे पते से पहले आता है।


7

यह समाधान मेरी विकास आवश्यकताओं के लिए काम करता है:

पृष्ठभूमि:

डेबियन लिनक्स सिड:
वर्चुअलहॉस्ट डेवलपमेंट: मेरे पास 10 सर्वर नाम हैं (साइटों के अंदर 10 वर्चुअलहोस्ट प्रविष्टियां उपलब्ध हैं)

मैंने प्रत्येक को एक अद्वितीय लोकलहोस्ट आईपी पता अंदर सौंपा /etc/hosts:

127.0.0.1   joe   localhost.localdomain   localhost
127.0.1.1   joe
127.0.1.2   joomla
127.0.1.3   schmoo
127.0.1.4   forrest
127.0.1.5   store
127.0.1.6   publisher
127.0.1.7   studios
127.0.1.8   drupal
127.0.1.9   graphics
127.0.1.10  wordpress
...

The following lines are desirable for IPv6 capable hosts

::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

यदि आप एक और वर्चुअलहोस्ट जोड़ने जा रहे हैं (मेरे पास विकास के लिए बहुत कम हैं) एक और स्थानीयहोस्ट आईपी पते में प्रवेश करें, और अपाचे 2.2 को फिर से शुरू करने से पहले साइट को सक्षम करें:

127.0.0.11 *newhost*

हर प्रविष्टि के लिए जिसे आप VirtualHost फ़ाइल के रूप में सक्षम करना चाहते हैं:

/ Etc / apache2 / साइटों से उपलब्ध /

joe joomla schoo फॉरेस्ट स्टोर प्रकाशक स्टूडियो ड्रुपल ग्राफिक्स वर्डप्रेस

सभी वर्चुअलहोस्टेस a2ensite / a2dissite होस्टनाम के माध्यम से सक्षम / अक्षम हैं

त्रुटि को दबाने के लिए

वेब सर्वर को फिर से शुरू करना: apache2apache2: सर्वर नाम के लिए 127.0.0.1 का उपयोग करते हुए सर्वर के पूरी तरह से योग्य डोमेन नाम का निश्चित रूप से निर्धारण नहीं कर सकता है ... प्रतीक्षा अपाचे 2: सर्वर के लिए 127.0.0.1 का उपयोग करते हुए सर्वर के पूरी तरह से योग्य डोमेन नाम को निर्धारित नहीं कर सकता है ''

[डेबियन में खाली फाइल] httpd.conf को संपादित करें /etc/apache2/httpd.conf:

ServerName 127.0.1.1

फिर देखें कि आपके द्वारा जोड़े गए सभी नामों के लिए हल किया गया है , टिप्पणी करें या पंक्ति को अक्षम करें।

यदि आप भूल जाते हैं: एकमात्र VirtualHost *: 80 प्रविष्टि को केवल ports.conf फ़ाइल में होना चाहिए ,

/etc/apache2/ports.conf

**NameVirtualHost *:80**
Listen 80

<IfModule mod_ssl.c>
   # If you add NameVirtualHost *:443 here, you will also have to change
   # the VirtualHost statement in /etc/apache2/sites-available/default-ssl
   # to <VirtualHost *:443>
   # Server Name Indication for SSL named virtual hosts is currently not
   # supported by MSIE on Windows XP.
   Listen 443
</IfModule>

<IfModule mod_gnutls.c>
   Listen 443
</IfModule>

अपने VirtualHost प्रविष्टि के भीतर VirtualHost *: 80 को छोड़ दें

उदाहरण: वर्चुअलहोस्ट जो

<VirtualHost *:80>
    **ServerAlias joe**
    **...**
</VirtualHost>

6

Httpd.conf ServerNameमें सेट करना मेरे लिए कारगर नहीं रहा। मैंने इसमें सेटिंग करके इसे ठीक ServerName 127.0.0.1किया /etc/apache2/conf.d/name

मैं Ubuntu 12.10 Alpha3 चला रहा हूं और ServerNameदोनों स्थानों में परिभाषित किया है।

स्रोत: http://linuxconfig.net/manual-howto/error-solution-could-not-reliably-determine-the-servers-fully-qualified-domain-name.html


कूल, यह मेरे लिए भी काम करता था, एक ही मुद्दा था।
प्रियांक बोलिया

5

आपको एक सर्वर कॉन्फ़िगरेशन-स्तरीय ServerName प्रविष्टि याद आ रही है। Apache को अपने डिफ़ॉल्ट के रूप में उपयोग करने के लिए आपको किसी भी होस्ट के बाहर ServerName प्रविष्टि की आवश्यकता है।

VirtualHost के अंदर ServerName प्रविष्टि डालने से समस्या ठीक नहीं होगी। ServerName निर्देश देखें ।


3

इसे ठीक करने के लिए, हमें /etc/apache2/httpd.conf या /etc/apache2.conf को संपादित करना होगा और निम्नलिखित पंक्ति जोड़ना होगा:

ServerName nameofserver

1
आप सही हे! लेकिन यह उत्तर किसी भी नई जानकारी या अंतर्दृष्टि प्रदान किए बिना crb के उत्तर की सामग्री को दोहराता है। मैं इसे हटाने या अधिक विवरण जोड़ने पर विचार करूंगा जो अन्य लोगों के उत्तरों से अलग है।
रॉयस विलियम्स

1

मेरा मानना ​​है कि आपको ServerNameडिफ़ॉल्ट वर्चुअल होस्ट के लिए जोड़ना होगा । चूंकि यह वहां नहीं है, इसलिए यह डिफ़ॉल्ट आईपी एड्रेस ले रहा है। और यह एक तरह की चेतावनी है। आपका वेब सर्वर अभी भी कार्यात्मक होगा मुझे लगता है।


मैं आपकी टिप्पणी नहीं समझता। मेरी फाइल में पहले से ही ServerName मौजूद है: <VirtualHost 127.0.0.1:8080> ServerName mysite.localhost क्या आप कृपया टिप्पणी स्पष्ट कर सकते हैं?

1
-Default- virtualhost के लिए, न कि केवल एक विशिष्ट वर्चुअलहोस्ट।
काजकाई

0
  1. आपको निम्नलिखित चरणों का उपयोग करके अपने httpd.conf फ़ाइल में ServerName जोड़ना होगा

    sudo gedit /etc/apache2/httpd.conf
    

    डिफ़ॉल्ट रूप से httpd.confफ़ाइल रिक्त होगी। अब, बस फ़ाइल में निम्न पंक्ति जोड़ें।

    ServerName localhost
    

    फ़ाइल सहेजें और से बाहर निकलें gedit। अंत में सर्वर को रिस्टार्ट करें।

    sudo /etc/init.d/apache2 restart
    

2) Include httpd.confके अंत में जोड़ेंapache2.conf


-1

यदि httpd.conf फ़ाइल पहले से ही आपके etc / apache2 डायरेक्टरी में मौजूद नहीं है, तो मुख्य Apache विन्यास फाइल, apache2.conf, के पास इसका सन्दर्भ नहीं होगा, ताकि निर्मित httpd.conf में कुछ भी जोड़ने से कुछ नहीं होगा। कुछ भी। आप इसके बजाय apache2.conf फाइल में "ServerName होस्टनाम" लाइन जोड़ सकते हैं।


-1

क्या / आदि / मेजबानों में अभी भी ये प्रविष्टियाँ हैं। (मैं ऊपर कुछ जवाब छोड़ दिया)

127.0.0.1 लोकलहोस्ट 127.0.0.1 testproject.localhost

दोनों IP पता 127.0.0.1 यहाँ समान है।

लूपबैक आईपी सबनेट से testproject.localhost को अलग आईपी पता दें।

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