অ্যাপাচি ত্রুটি "সার্ভারের সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নামটি নির্ভরযোগ্যভাবে নির্ধারণ করতে পারেনি"


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

তারপরে একটি নতুন ফাইল তৈরি করতে কমান্ড লাইনে "সুডো ন্যানো" বা ডেস্কটপে "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

তবে উবুন্টু 14.04 এ:

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

".Conf" ভুলে যাবেন না (ছাড়া কাজ করবে না)।


2
অ্যাবাচে ট্রাবলশুটিংয়ের জন্য উবুন্টু এলএএমপি সেটআপ ডকুমেন্টেশনে এটি উল্লেখ করা হয়েছে । সেখানে তারা এতে একটি ফাইল /etc/apache2/conf.d/fqdn তৈরি করার পরামর্শ ServerName localhostদেয়
আইসিসি 9

খুব ভাল উত্তর - তবে আমি এটি
কনফিড ডি

3
/etc/apache2/conf.d/lamp-server^14.04
redanimalwar

@redanimalwar 13.10 এর জন্য এবং আরও নতুন নীচে @ স্টারেক্সের উত্তর দেখুন।
ড্যান

3
একেবারে শেষ পদক্ষেপের জন্য (14.04-এ সিম-লিঙ্ক তৈরি করা) আমি প্রস্তাব দিই sudo a2enconf fqdnযদিও এটি প্রযুক্তিগতভাবে একই রকম হওয়া উচিত।
নুয়াল

176

13.10 বা আরও নতুন

অ্যাপাচি ২.৪ হিসাবে - যা ১৩.১০ হিসাবে পূর্বনির্ধারিতভাবে উপলভ্য - conf.dডিরেক্টরিতে কোনও কনফিগারেশন ফাইল যুক্ত করার পদ্ধতি আপনি ব্যবহার করতে পারবেন না ।

অ্যাপাচি আর conf.dডিরেক্টরি ব্যবহার করে না । সমস্ত কনফিগারেশন ফাইল /etc/apache2/conf-availableডিরেক্টরিতে সংরক্ষণ করা হয় এবং সমস্ত কনফিগারেশন ফাইলের এখন একটি .confএক্সটেনশন থাকা উচিত ।

অ্যাপাচি ২.৪-এ এই বার্তাটি সমাধান করতে, আমাদের কনফ-উপলভ্য ডিরেক্টরিতে একটি কনফিগারেশন ফাইল তৈরি করতে হবে। উদাহরণস্বরূপ 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অ্যাপাচস ২.৪-এ একটি কনফিগারেশন ফাইল সক্ষম করার জন্য একটি কমান্ড। এছাড়াও নোট করুন যে servernameউপরের কমান্ডটি কনফিগারেশন ফাইলের নাম থেকে প্রাপ্ত servername.conf। যদি আপনার কনফিগারেশন ফাইলটি ছিল ngenericserver.confতবে আপনাকে লিখতে হবে sudo a2enconf ngenericserver

এই সার্ভারটি পুনরায় লোড করার পরে এবং উপরের বার্তাটি আর আপনাকে বাগ করবে না।

sudo service apache2 reload

অথবা

sudo apache2ctl graceful

এখন এর পরে আপনি দেখতে পাবেন যে বার্তাটি আর প্রদর্শিত হবে না এবং সমস্যাটি ঠিক হয়ে যাবে।


3
কেহ এ্যাপাচি বলতে বাধ্য কিভাবে কি জানে যা কনফিগ ফাইল এটা দিয়ে সমস্যা হচ্ছে এসব? আমি জানি না কেন বিকাশকারীরা কখনই তাদের ত্রুটি বার্তাগুলিতে এটি রাখার কথা ভাবেন না - এটি খুব বেশি কোড নেয় না!
জন ওয়াই

এই সার্ভারটির জন্য যদি আমার কাছে ইন্টারনেট এফকিডিএম থাকে, এটি কি এটি রাখার জায়গা? অর্থাৎ লোকালহোস্টের জায়গায় আমার কি myhost.org অনুপাত করা উচিত?
সিপিবিএল

1
@CPBL এটি সমস্ত সাইটের জন্য ডিফল্ট সার্ভারের নাম। আপনার যদি কেবল একটি সাইট থাকে তবে আপনার যা করতে হবে তা কেবল। আপনার সার্ভারে আপনার যদি একাধিক সাইট থাকে তবে আপনার নিজের ভার্চুয়াল হোস্ট কনফিগারেশনে প্রতিটি সাইটের জন্য সার্ভারনেম নির্দেশিকাও যুক্ত করতে হবে।
ড্যান

1
14.04 এলটিএসে কাজ করে।
পার্টো

1
আপনার উদ্ধৃত লিঙ্কটি মারা গেছে বলে মনে হচ্ছে, ঠিক করুন।
ফ্রেড্রিক গাউস

28

অ্যাপাচি 2 অ্যাপাচি কনফিগার ফাইলে হার্ডকড না করে সঠিকভাবে কনফিগার করা সিস্টেম হোস্টনাম থেকে এফকিউডিএন পেতে পারে। হোস্টনাম পরিবর্তন হলে এটি হার্ডকোডিং বিভ্রান্তির কারণও হবে। আপনার আসলে কোনও 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আপনার মেশিনের এফকিউডিএন কোথায় ?

ভিতরে /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

আপনি কি মনে করেন এটি অ্যাপাচি ২.২.২২ এর সাথে কাজ করবে? আমি এখনও পাচ্ছি "সার্ভারনামের জন্য 127.0.1.1 ব্যবহার করে সার্ভারের সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নামটি বিশ্বস্তভাবে নির্ধারণ করা যায়নি"
ডেভিড উইনিস্কি

থাকার hostname localhostকথা myubuntuservername localhost? নাকি স্ট্রিং আক্ষরিক hostname localhost? আপনি আপনার উত্তরে পরিষ্কার ছিলেন না
জোনাথন

2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। দেখে মনে হচ্ছে আপনার FQDN স্থির আইপি ঠিকানার পরিবর্তে সংযুক্ত করার প্রয়োজন হতে পারে 127.0.0.1
স্কিপি লে গ্র্যান্ড গৌরু

1
এটি উবুন্টু 18.04-এ আমার পক্ষে সেরা উত্তর ছিল আমার ইচ্ছা যে ডকুমেন্টেশনটি সামঞ্জস্যপূর্ণ যদিও পুরোপুরি যোগ্য ডোমেন নামটি এখানে বা কোথাও কোথাও একই পরিভাষা নয়। যদি আমার সম্পূর্ণরূপে যোগ্যতাসম্পন্ন ডোমেন নামটি গুগল.কম এবং আমার সার্ভারনেম গুগল ছিল তবে / ইত্যাদি / হোস্টগুলিতে আমার এন্ট্রি 127.0.0.1 google.com গুগল হবে আমি যদি লোকাল হোস্ট লাইন এবং বিজ্ঞাপন হোস্টকে এই লাইনের শেষে প্রতিস্থাপন করতে পারি কামনা করি। আমি এটি ব্যবহার করেছি: ডিজিটালওসন / কম্যুনিটি / টিউটোরিয়ালস /
এনজেড দেব

26
  • একটি টার্মিনাল খুলুন
  • /etc/apache2/httpd.confফাইলটি খুলুন :

    sudo editor /etc/apache2/httpd.conf # [1]
    
  • ডিফল্টরূপে, এটি ফাঁকা হবে। কেবল নিম্নলিখিত লাইনটি যুক্ত করুন:

    ServerName localhost
    
  • ফাইল এবং সংরক্ষণ করে প্রস্থান করুন

  • সার্ভারটি পুনরায় চালু করুন

    sudo service apache2 restart
    

[1] ডিফল্ট সম্পাদক চালু করুন, দেখুন sudo update-alternatives --config editor


শেষ কমান্ড কার্যকর করার পরে নিম্নলিখিত ত্রুটি দেখা দেয় ** ওয়েব সার্ভার অ্যাপাচি 2 / usr / sbin / apache2ctl: 87: ulimit: ত্রুটি সেটিং সীমা (অপারেশন অনুমোদিত নয়) / usr / sbin / apache2ctl: 87: ulimit: ত্রুটি সেটিং সীমা (অপারেশন নয় অনুমোদিত) (১৩) অনুমতি প্রত্যাখ্যান করা: মেক_সক: 0.0.0.0.80 ঠিকানা শোনার সকেট পাওয়া যায় না, শাট ডাউন লগগুলি খুলতে অক্ষম অ্যাকশন 'স্টার্ট' ব্যর্থ হয়েছে। অ্যাপাচি ত্রুটি লগ আরও তথ্য থাকতে পারে। [ব্যর্থ] ** @ গ্রীন 7
দীপু

'সুডো সার্ভিস অ্যাপাচি 2 রিস্টার্ট'
ওয়াটারলু 20055

20

অ্যাপাচি 2 এর নতুন সংস্করণে আপনি ঠিক এইভাবে কমান্ডটি অনুসরণ করছেন:

sudo nano /etc/apache2/apache2.conf

নিম্নলিখিত নতুন লাইনের শেষ ফাইল যুক্ত করুন:

ServerName localhost

তারপরে অ্যাপাচি 2 পুনরায় চালু করুন:

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 :

নিম্নলিখিত কমান্ড usin gthe ServerName localhostফাইল যোগ করুন httpd.conf

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

উবুন্টু ১১.১০-তে, আমি এই বার্তাটি দেখতে পেয়েছিলাম, সাথে সাথে একটি ডিস্ক বুট ঘটেছিল কারণ আমার ডিস্কটি পূর্ণ ছিল। একটি লগ ফাইল দুর্বৃত্ত গিয়েছিল । সম্ভবত অ্যাপাচি নিয়ে আসলে কোনও সমস্যা ছিল না, তবে এই বার্তাটি বুটটি ঝুলানোর আগে দেওয়া সর্বশেষ ক্লু।

সমস্যাটি সমাধান করার জন্য, আমাকে পুনরুদ্ধার মোডে বুট করতে হয়েছিল এবং লর্ড ফাইলটি সরিয়ে ফেলতে হয়েছিল।


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বিকল্পের মান নির্দিষ্ট করে eg

ServerName localhost

ওয়েব সার্ভারের জন্য, নিবন্ধিত ডিএনএস নাম ব্যবহার করুন (উদাঃ example.com)।

যদি আপনার হোস্টটির নিবন্ধিত ডিএনএসের নাম না থাকে তবে তার আইপি ঠিকানাটি এখানে প্রবেশ করুন।


0

উপর উবুন্টু 16,04 :

নিম্নলিখিত কমান্ড usin gthe ServerName localhostফাইল যোগ করুন httpd.conf

sudo vi  /etc/apache2/httpd.conf

তারপরে Include httpd.confএই ফাইলটির শেষে এই লাইনটি অন্তর্ভুক্ত করুন

sudo vi /etc/apache2/apache2.conf

আবার সিনট্যাক্স ত্রুটিগুলি পরীক্ষা করুন

sudo apache2ctl configtest

আপনার এখন পাওয়া উচিত

Syntax OK

আপনি এখন কনফিগারেশন সুডো সার্ভিস অ্যাপাচি 2 পুনঃসূচনা পুনরায় লোড করে সার্ভারটি কৌতূহলীভাবে পুনরায় চালু করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.