ভার্চুয়ালহোস্ট কনফ ফাইলটি যুক্ত করার পরে অ্যাপাচি পুনরায় চালু হবে না কেন?


14

একটি 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/*.confconf.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/*.confconf.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 কনফিগার করার পরবর্তী পদক্ষেপগুলি ত্রুটিপূর্ণ হতে পারে।


1
আপনি কোনও ServerNameনির্দেশ যুক্ত করলে সঠিক "নেবুলাস" ত্রুটিটি কী উত্পন্ন হয় ? এটি আপনার প্রশ্নের সাথে যুক্ত করুন।
ওউরটেল

1
এর আউটপুট কি apachectl configtest?
ডেরেকসি

IncludeOptionalমূল httpd.confফাইলের শেষে রয়েছে কি ? আমি বিশ্বাস করি একটি ডিফল্ট ইনস্টল রয়েছে। সমস্যাটি হতে পারে আপনি IncludeOptionalশেষে অতিরিক্ত যুক্ত করছেন যা apacheঅন্তর্ভুক্ত কনফিগারেশন ফাইলটি দুবার পড়তে বাধ্য করে এবং ফলস্বরূপ এটি ব্যর্থ হয়।
গ্যারেথ TheRed

শুরু করার জন্য, আপনাকে নিজের স্থানান্তরিত করতে mydomain.com.confহবে /etc/httpd/conf.d(অন্যরা যেখানে আছেন) এবং মুছে ফেলতে হবে /etc/httpd/sites-enabled(এটি একটি ডেবিয়ান / উবুন্টু জিনিস) এবং IncludeOptionalআপনি এতে যুক্ত হয়েছেন httpd.confAH00558থামানো না হওয়ায় আপনি আপাতত এড়িয়ে যেতে পারেন apache। আপনার confঅপরাধীর সন্ধান না হওয়া পরবর্তী আপনার ফাইল থেকে একটি লাইন সরিয়ে ফেলুন (বা বিকল্পভাবে, খালিটি দিয়ে শুরু করুন এবং একবারে একটি লাইন পুনরুদ্ধার করুন)।
গ্যারেথ TheRed

1
@garethTheRed এবং গুগল থেকে যে কেউ, আপনার ইনক্লুডওশনাল সাইট-সক্ষম / *। কনফিড অপসারণ করতে হবে না। এটি ছিল একটি লাল রঙের হারিং। আসল সমস্যা হ'ল লগ ফাইলগুলি নীচে গ্যারেথ দ্য রেড দ্বারা নির্দেশিত। আমি ওপি হিসাবে একই টিউটোরিয়াল অনুসরণ করেছি এবং একই সমস্যা ছিল। ভার্চুয়াল হোস্ট কনফ ফাইল থেকে লগ ফাইল লাইনগুলি সরিয়ে ফেলা এটি ঠিক করে দিয়েছে।
লুইস এগলটন

উত্তর:


19

লগগুলি ত্রুটি সৃষ্টি করে কারণ apacheআপনার ওয়েবসাইটের মূলটিতে লিখতে পারে না। এমনকি যদি আপনি ফাইলের অনুমতিগুলি ঠিক করে ফেলেন, তবুও আপনি সেলইনাক্স দ্বারা অবরুদ্ধ থাকবেন; যা কেবলমাত্র apacheলগ লিখতে দেয় /var/log/httpd। সবচেয়ে সহজ সমাধান হ'ল এই ওয়েবসাইটটিতে লগ করার জন্য আপনার ওয়েবসাইটটি পরিবর্তন করা - অন্য ফাইল লগ থেকে আলাদা করার জন্য একটি ফাইলের নাম যা ওয়েবসাইটের নাম ধারণ করে।

ErrorLog /var/log/httpd/mydomain_com_error.log
CustomLog /var/log/httpd/mydomain_com_requests.log combined

সার্ভারের হোস্ট-নেম সেট করতে এবং AH00558 সতর্কতা থেকে মুক্তি পেতে, সহজভাবে ব্যবহার করুন:

hostnamectl set-hostname --static <FQDN of your machine>

যেমন

hostnamectl set-hostname --static mydomain.com

আমি এটির কাজ চালিয়ে যাওয়ায় আমি আরও একটি ত্রুটির মুখোমুখি হয়েছি। আপনি কি আমাকে এটিতে সহায়তা করতে ইচ্ছুক? এখানে লিঙ্কটি দেওয়া হয়েছে: unix.stackexchange.com/questions/176052/…
কোডমেড

2

আমি এই ত্রুটিটি পেয়েছি যখন আমি মেশিনের হোস্টনামটি সেট করতে ভুলে যাই। আপনি কি তাই করেছেন?
এই আদেশটি চালান:

echo 'example.com' >> /etc/hostname  

দিয়ে যাচাই করুন hostname

সম্পাদনা:
আপডেট করা ওপি সহ, দেখে মনে হচ্ছে আপনার হোস্ট ফাইলটি ঠিকঠাক নয়। আমার দেখতে কেমন লাগে তা এখানে;

127.0.0.1 localhost.localdomain localhost
# Auto-generated hostname. Please do not remove this comment.
166.66.666.66 m32.me m32
::1     ip6-localhost ip6-loopback

এটির মতো সাধারণ কিছুতে সেট করার চেষ্টা করুন। অবশ্যই, সমস্ত তথ্য নিজের সাথে প্রতিস্থাপন করুন। আপনার ডোমেনের
166.66.666.66সাথে আপনার নিজের আইপি
m32.me and m32এবং টিএলডি ছাড়াই ডোমেন


যে সমস্যাটি সমাধানের নি, আমি এখনও পেতে AH00558ত্রুটি যখন আমি আপনার উদাহরণ হোস্ট ফাইল ব্যবহার, আমার সঙ্গে ipএবং mydomain.com mydomain
কোডমেড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.