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


138

আবার, আমার অ্যাপাচি ভার্চুয়াল হোস্ট কনফিগারেশন নিয়ে আমার একটি সমস্যা আছে। (আমার নির্দিষ্ট একের পরিবর্তে ডিফল্ট কনফিগারেশন ব্যবহৃত হয়)।

সমস্যাটি আসলে ভুল কনফিগারেশন নয় তবে কীভাবে এটি সমাধান করবেন।

এই ধরণের সমস্যাটি দ্রুত সমাধান করার জন্য কারও কি ভাল পরামর্শ রয়েছে?

আরও কিছু তথ্য।

ডিফল্ট কনফারেন্স ফাইলটি হ'ল:

NameVirtualHost *
<VirtualHost *>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
        ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

এবং ভার্চুয়াল হোস্ট কনফিগারেশন যা প্রয়োগ করে না তা হ'ল:

<VirtualHost *:*>

ProxyPreserveHost On
ProxyPass / http://ip.ip.ip.ip:8088/
ProxyPassReverse / http://ip.ip.ip.ip:8088/
ServerName wiki.mydomain.com

</VirtualHost>

উত্তর:


198

সিনট্যাক্স চেক

সিনট্যাক্স ত্রুটির জন্য কনফিগারেশন ফাইলগুলি পরীক্ষা করতে:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -t

# Debian-based (Ubuntu)
apache2ctl -t

# MacOS
apachectl -t

ভার্চুয়াল হোস্টগুলি তালিকাভুক্ত করুন

সমস্ত ভার্চুয়াল হোস্ট এবং তাদের অবস্থানগুলি তালিকাভুক্ত করতে:

# Red Hat-based (Fedora, CentOS) and OSX
httpd -S

# Debian-based (Ubuntu)
apache2ctl -S

# MacOS
apachectl -S

5
-Sপ্রতিশব্দ -t -D DUMP_VHOSTSহিসাবে এটি দুটি একই
aron.duby

2
উইন্ডোজের জন্য, (আপনি যদি
এক্সএএমপি

c:\\wamp\\bin\\apache\\apache2.4.9\\bin\\httpd.exe -S
মোড়ানো

2
এটি খুব দরকারী, আপনাকে ধন্যবাদ তবে এটি যথেষ্ট নয়, আমি একটি ভোস্টের সাথে কিছুটা সমস্যা পেয়েছিলাম যা এটি ব্যবহার করা উচিত এবং তা নয়, তবে কেন জানি না, আমি কেন আপাচি কীভাবে এই ভোস্টটি চয়ন করে সে সম্পর্কে লগ পেতে চাই।
লেনিক্স

1
ভার্চুয়াল বা প্রধান হোস্টের জন্য কোন হোস্টটি বেছে নেওয়া হয়েছে সে সম্পর্কে ডায়নামিক তথ্য দেওয়ার জন্য যখন কোনও আসল অ্যাক্সেস আসে তখন অ্যাপাচি ত্রুটি ফাইলটিতে বা অন্য কোথাও কোনও বার্তা যুক্ত করার কোনও উপায় আছে? আমি লোডমোডুল লগ_দেবগ_মডিউল মডিউলগুলি / মোড_লগ_দেবগ.স চেষ্টা করেছি ... লগমেসেজ "ডিবাগ 1" হুক = সব
ডেভিড

28

আমি মনে করি এমন একটি আদেশ এখানে কিছু সহায়ক হতে পারে:

apachectl -t -D DUMP_VHOSTS

আপনি সমস্ত vhosts এর একটি তালিকা পাবেন, আপনি কোনটি ডিফল্ট একটি তা জানতে পারবেন এবং আপনার সিনট্যাক্সটি সঠিক কিনা তা নিশ্চিত করবেন (yojimbo87 দ্বারা প্রস্তাবিত অ্যাপাচিেক্টল কনফিগারেটের মতো)।

প্রতিটি ভোস্ট কোথায় ঘোষণা করা হয়েছে তা আপনিও জানতে পারবেন। আপনার কনফিগারেশন ফাইলগুলি যদি জগাখিচুড়ি হয় তবে এটি কার্যকর হতে পারে। ;)


24

আপনি যদি ভার্চুয়াল হোস্ট কনফিগারেশনটি ডিবাগ করার চেষ্টা করছেন, তবে আপনি অ্যাপাচি-এস কমান্ড লাইনটি স্যুইচকে দরকারী বলে মনে করতে পারেন। অর্থাৎ, নিম্নলিখিত কমান্ডটি টাইপ করুন:

httpd -S

এই কমান্ডটি অ্যাপাচি কীভাবে কনফিগারেশন ফাইলকে পার্স করেছে তার একটি বিবরণ ছড়িয়ে দেবে। আইপি ঠিকানা এবং সার্ভারের নামগুলির যত্ন সহকারে পরীক্ষা করা কনফিগারেশনের ভুলগুলি উদঘাটনে সহায়তা করতে পারে। ( অন্যান্য কমান্ড লাইন বিকল্পের জন্য httpd প্রোগ্রামের জন্য ডকগুলি দেখুন )।


9
apache2ctl -S
অ্যাপাচি

1
বা পর্যায়ক্রমেAPACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data /usr/sbin/apache2 -S
1913

12

প্রথমে কনটেক্স ত্রুটিগুলির জন্য কনফিগার ফাইলগুলি পরীক্ষা করে apachectl configtestদেখুন এবং তারপরে অ্যাপাচি ত্রুটিযুক্ত লগগুলি সন্ধান করুন


আমার কোনও সিনট্যাক্স ত্রুটি নেই কারণ আমার সার্ভারটি কোনও সমস্যা ছাড়াই পুনরায় বুট করে কনফিগারেশনটি পুনরায় লোড করে। আমি জানি না কোন লগে আমি আমার কনফিগারেশন সম্পর্কে বিশদ জানতে পারি।
গায়তানজেড

ত্রুটি লগগুলি সাধারণত '/var/log/apache2/error.log' ফাইলে থাকে।
yojimbo87

আপনি "apache2ctl -t" ব্যবহার করতে পারেন।
ল্যারি সিলভারম্যান

11

আমার একটি নতুন ভার্চুয়ালহস্ট কনফিগারেশন ফাইল রয়েছে যা apachectl -Sকমান্ডটি ব্যবহার করার সময় প্রদর্শন করা হয়নি । প্রচুর মাথা আঁচড়ানোর পরে আমি বুঝতে পারি যে আমার ফাইলে ".conf" প্রত্যয় নেই। একবার আমি সেই প্রত্যয়টির সাথে ফাইলটির নাম পরিবর্তন করলাম আমার ভোস্ট দেখানো এবং কাজ করা শুরু করে!


8

ভার্চুয়ালহোস্ট নিয়ে সম্প্রতি আমার কিছু সমস্যা হয়েছিল। আমি a2ensiteএকটি হোস্ট সক্ষম করেছিলাম তবে পুনরায় চালু করার আগে (যা ব্যর্থ হলে সার্ভারটি মেরে ফেলবে) আমি দৌড়ে গিয়েছিলাম

apache2ctl -S

যা আপনাকে ভার্চুয়াল হোস্টগুলির সাথে কী চলছে সে সম্পর্কে কিছু তথ্য দেয়। এটি নিখুঁত নয়, তবে এটি সহায়তা করে।


3

আমি আমার নিজের ভুল খুঁজে পেয়েছি, আমি লগ ফাইলের নামটি যুক্ত করিনি: ত্রুটিযুক্তরোগ / var / লগ / অ্যাপাচি 2
এবং এই পথ: ডিরেক্টরি "/ usr / share / doc /" ওয়েবসাইট উত্স ধারণ করে নি।

আমি এই দুটি পরিবর্তন করার পরে, সবাই কাজ করেছিল। মজার বিষয় হল, অ্যাপাচি কোনও ত্রুটি জারি করেনি, কেবল আমার ম্যাক ওএস সিয়েরাতে নীরবে আমার ওয়েবসাইট খুলেনি।


ভাল উত্তর, অনুরূপ সমস্যা সন্ধান করতে আমাকে সহায়তা করুন। সমস্ত সিনট্যাক্স এবং -এস vhosts সঠিক, এখনও ভুল সাইট পরিবেশন করা হয়েছে। পরিণত হয়েছে: 80 এবং: 443 এর একই অ্যাক্সেস লগ ফাইল রয়েছে যা জিনিসগুলিকে বিভ্রান্ত বলে মনে হয়েছিল। প্রতিটি বন্দরের জন্য পৃথক পৃথক ফাইল এবং সাইটগুলি কাজ শুরু করে।
ডেভিড ম্যাকনিল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.