একটি CentOS 7
সার্ভার, আমি নিম্নলিখিত ত্রুটি পেতে যখন আমি টাইপ sudo apachectl restart
আমি একজন নীচে ফাইলের অন্তর্ভুক্ত যোগ করার পরে httpd.conf
:
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.
আমি যখন টাইপ করি তখন sudo systemctl status httpd.service -l
ফলাফলটি হয়:
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 20:10:37 EST; 2min 15s ago
Process: 2101 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 2099 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 2099 (code=exited, status=1/FAILURE)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 20:10:37 ip-address httpd[2099]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Dec 23 20:10:37 ip-address systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 20:10:37 ip-address systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 20:10:37 ip-address systemd[1]: Unit httpd.service entered failed state.
আমি apache
যদি অন্তর্ভুক্ত নির্দেশনাটি সম্পর্কে মন্তব্য করি তবে আমি পুনঃসূচনা করতে পারি এবং আমি অন্তর্ভুক্ত নির্দেশিকাটি অন-মন্তব্য করে আবার ত্রুটিটি পুনরায় তৈরি করতে পারি। অন্তর্ভুক্ত ফাইলের সামগ্রীগুলি কীভাবে apache
সঠিকভাবে শুরু করতে পারি ?
নীচে লাইন httpd.conf
যে ট্রিগার ত্রুটি: IncludeOptional sites-enabled/*.conf
। ফোল্ডারের একমাত্র .conf
ফাইল sites-enabled
হ'ল mydomain.com.conf
এতে নিম্নলিখিত বিষয়বস্তু রয়েছে:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
ErrorLog /var/www/mydomain.com/error.log
CustomLog /var/www/mydomain.com/requests.log combined
</VirtualHost>
httpd.conf
কি দিয়ে থেকেই ইনস্টল করা থাকে হিসাবে একই httpd
, এক লাইন ছাড়া উপরে নির্দেশ অন্তর্ভুক্ত। আমি জানি কারণ এই ত্রুটিটি ট্রিগার করার আগে আমি করেছি sudo yum remove httpd mod_ssl
এবং sudo yum install httpd mod_ssl
ঠিক করেছি। সমগ্র httpd.conf
একটি ফাইল শেয়ারিং সাইট এ পড়া যায় এই লিঙ্কে ক্লিক করে ।
এই টিউটোরিয়ালের পদক্ষেপগুলি স্পষ্টভাবে অনুসরণ করার পরে আমি এই সমস্যার মুখোমুখি হয়েছি ।
আমি যখন অন্তর্ভুক্ত ফাইলটি সম্পর্কে মন্তব্য করি তখন http/mydomain.com
সফলভাবে অবস্থিত স্থির সামগ্রীটি সরবরাহ করে /var/www/html
যা এর মধ্যে DocumentRoot
সংজ্ঞায়িত httpd.conf
। সমস্যাটি মনে হচ্ছে VirtualHost
উপরের চিত্রের অন্তর্ভুক্ত ফাইলের নির্দেশিকা থেকে আসছে । নির্ণয়ে সহায়তার জন্য, আমি .conf
তিনটিতে থাকা সমস্ত ফাইলের লিঙ্কগুলির নীচে সম্পাদনা # 3 এ অন্তর্ভুক্ত করেছি যার মধ্যে নির্দেশিকা অন্তর্ভুক্ত রয়েছে httpd.conf
।
সম্পাদনা # 1
আমি যখন m32 পরামর্শ চেষ্টা পরিবর্তন করতে /etc/hostname
সংজ্ঞায়িত করতে mydomain.com
, apache
এখনও পুনরায় চালু হবে না, এবং systemctl status httpd.service
নিম্নলিখিত ফলাফল:
[sudo_user_account@server-ip-address ~]$ sudo systemctl status httpd.service -l
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: failed (Result: exit-code) since Tue 2014-12-23 14:25:35 EST; 20s ago
Process: 31993 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS)
Process: 31991 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 31991 (code=exited, status=1/FAILURE)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
Dec 23 14:25:35 hostname systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Dec 23 14:25:35 hostname systemd[1]: Failed to start The Apache HTTP Server.
Dec 23 14:25:35 hostname systemd[1]: Unit httpd.service entered failed state.
সম্পাদনা # 2
আমি /etc/hosts
নীচের চিত্রটিতে সংজ্ঞায়িত হিসাবে আমার ফাইলের বিষয়বস্তু পরিবর্তন করার জন্য eyoung100 এর পরামর্শও চেষ্টা করেছি , তবে আমি এখনও উপরে সম্পাদনা # 1 এ সংজ্ঞায়িত একই ত্রুটি পেয়েছি।
সম্পাদনা # 3
পেরেকের অনুরোধ অনুযায়ী, আমি দৌড়ে sudo apachectl configtest
এসেছি:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
Syntax OK
অতিরিক্ত হিসাবে, গ্যারেথ দ্য রেডের পরামর্শ অনুসারে, আমি httpd.conf এ অন্তর্ভুক্ত নির্দেশাবলী পরীক্ষা করেছি । Httpd.conf এ তিনটি অন্তর্ভুক্ত নির্দেশিকা রয়েছে । প্রতিটি নির্দেশকের ফোল্ডারে থাকা সমস্ত ফাইলের সাথে আমি নীচে তিনটি তালিকাভুক্ত করেছি। এগুলি .conf
ইনস্টল করা সমস্ত স্ট্যান্ডার্ড ফাইল httpd
। আমি তাদের কোনটিই এখনও সংশোধন করি নি। .conf
নীচের লিঙ্কগুলিতে ক্লিক করে আপনি ফাইল ভাগ করে নেওয়ার সাইটে প্রতিটি ফাইল দেখতে পারেন :
Include conf.modules.d/*.conf
conf.modules.d
ডিরেক্টরিগুলিতে নিম্নলিখিত ফাইলগুলিকে রেফারেন্স :
00-base.conf
00-dav.conf
00-lua.conf
00-mpm.conf
00-proxy.conf
00-ssl.conf
00-systemd.conf
01-cgi.conf
IncludeOptional conf.d/*.conf
conf.d
ডিরেক্টরিতে নিম্নলিখিত ফাইলগুলি উল্লেখ করে :
autoindex.conf
ssl.conf
userdir.conf
welcome.conf
এখানে একটা README ফাইলের যে আমি এখানে বাদ যাচ্ছি।
IncludeOptional sites-enabled/*.conf
তদতিরিক্ত , নির্দেশিকা এবং এর লিখিত সামগ্রীগুলি উপরের ওপিতে পুঙ্খানুপুঙ্খভাবে বর্ণিত ছিল।
এর মধ্যে যে VirtualHost
কোনওটিতে mydomain.com.conf
কি সেটিংসের সাথে বিরোধী ফাইল অন্তর্ভুক্ত রয়েছে ?
সম্পাদনা # 4
প্রতি garethTheRed এর প্রস্তাব, আমি সরানো mydomain.com.conf
করতে conf.d
ডিরেক্টরি এবং তারপর লাইন আউট মন্তব্য শুরু mydomain.com.conf
একের পর এক পর্যন্ত httpd
পুনরায় চালু করতে সক্ষম হন। তারপরে আমি কয়টি লাইন থাকতে পারে এবং httpd
এখনও পুনরায় চালু করতে পেরেছি তা মন্তব্য করার জন্য লাইনগুলি অন-মন্তব্য করা শুরু করেছি । আমি httpd
আবার চালু করতে সক্ষম হয়েছি , কিন্তুsystemctl status httpd.service -l
একই সতর্কতা উত্পাদন করতে চালিয়ে :
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::e23f:49ff:feb7:2a21. Set the 'ServerName' directive globally to suppress this message
VirtualHost
সিনট্যাক্স যে অনুমতি দেয়httpd
শুরু করার জন্য (যদিও উপরে সতর্কবার্তা উৎপন্ন অব্যাহত) হিসাবে অনুসরণ করে হল:
<VirtualHost *:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot /var/www/mydomain.com/public_html
</VirtualHost>
নোট করুন যে আমাকে নিম্নলিখিত লাইনগুলি বাদ দিতে হয়েছিল, যার উপস্থিতি সতর্কতাটিকে HTTP শুরুর সম্পূর্ণ অক্ষমতায় পরিণত করেছে:
# ErrorLog /var/www/mydomain.com/error.log
# CustomLog /var/www/mydomain.com/requests.log combined
আমিও দৌড়ে গেলাম sudo journalctl -xelu httpd
এবং টার্মিনালটি নিম্নলিখিত বার বার পুনরাবৃত্তি করে জবাব দিয়েছে:
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:43 server-ip-address systemd[1]: Stopped The Apache HTTP Server.
-- Subject: Unit httpd.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished shutting down.
Dec 24 17:48:48 server-ip-address systemd[1]: Starting The Apache HTTP Server...
-- Subject: Unit httpd.service has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has begun starting up.
Dec 24 17:48:48 server-ip-address httpd[10364]: AH00558: httpd: Could not reliably d
Dec 24 17:48:48 server-ip-address systemd[1]: Started The Apache HTTP Server.
-- Subject: Unit httpd.service has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit httpd.service has finished starting up.
--
-- The start-up result is done.
lines 887-909/909 (END)
দ্রষ্টব্য: আমি eyoung100 এর হোস্ট ফাইল বা এম 32 এর হোস্ট ফাইলটি ব্যবহার করি না কেন উপরের ফলাফলগুলি একই থাকে। এই প্রশ্নের উত্তর দেওয়ার জন্য, আমি মনে করি আমার লগ ফাইল তৈরি করতে সক্ষম হওয়া উচিত এবং সার্ভারনেম সতর্কতাও এড়ানো উচিত। অন্যথায়, আমি আশঙ্কা করছি যে httpd কনফিগার করার পরবর্তী পদক্ষেপগুলি ত্রুটিপূর্ণ হতে পারে।
apachectl configtest
?
IncludeOptional
মূল httpd.conf
ফাইলের শেষে রয়েছে কি ? আমি বিশ্বাস করি একটি ডিফল্ট ইনস্টল রয়েছে। সমস্যাটি হতে পারে আপনি IncludeOptional
শেষে অতিরিক্ত যুক্ত করছেন যা apache
অন্তর্ভুক্ত কনফিগারেশন ফাইলটি দুবার পড়তে বাধ্য করে এবং ফলস্বরূপ এটি ব্যর্থ হয়।
mydomain.com.conf
হবে /etc/httpd/conf.d
(অন্যরা যেখানে আছেন) এবং মুছে ফেলতে হবে /etc/httpd/sites-enabled
(এটি একটি ডেবিয়ান / উবুন্টু জিনিস) এবং IncludeOptional
আপনি এতে যুক্ত হয়েছেন httpd.conf
। AH00558
থামানো না হওয়ায় আপনি আপাতত এড়িয়ে যেতে পারেন apache
। আপনার conf
অপরাধীর সন্ধান না হওয়া পরবর্তী আপনার ফাইল থেকে একটি লাইন সরিয়ে ফেলুন (বা বিকল্পভাবে, খালিটি দিয়ে শুরু করুন এবং একবারে একটি লাইন পুনরুদ্ধার করুন)।
ServerName
নির্দেশ যুক্ত করলে সঠিক "নেবুলাস" ত্রুটিটি কী উত্পন্ন হয় ? এটি আপনার প্রশ্নের সাথে যুক্ত করুন।