অ্যাপাচি কোন কনফিগার ফাইল ব্যবহার করছে তা আমি কীভাবে বলতে পারি?


36

আমি ম্যাক ওএস এক্সে ভার্চুয়াল হোস্টগুলি সেট আপ করার চেষ্টা করছি http তদুপরি, আমি লক্ষ্য করেছি যে এটি httpd.conf (লাইব্রেরি / ওয়েবসার্ভার / ডকুমেন্টস) এ উল্লিখিত ডকুমেন্ট রুটে ফাইল সরবরাহ করছে না, তবে একটি ভিন্ন ডিরেক্টরিতে (/ usr / স্থানীয় / অ্যাপাচি 2 / এইচটিডোকস) রয়েছে। আমি এই ফোল্ডারটি httpd.conf- তে কোথাও উল্লেখ করি না। তদ্ব্যতীত, পিএইচপি কাজ করে তবে "লোডমোডুল পিএইচপি 5_মডিউল" লাইনটি মন্তব্য করা হয়। এটি আমার মনে করে যে এটি অন্য .conf ফাইলটি ব্যবহার করছে। কোন কনফিগারেশনটি আসলে লোড হচ্ছে তা আমি কীভাবে বুঝতে পারি?

আপডেট: আমি কেবল মুছে ফেলেছি যে পুনরায় আরম্ভের পরে httpd.conf এবং অ্যাপাচি একই আচরণ করে, তাই এটি অবশ্যই এটি ব্যবহার করে নি!

উত্তর:


45

যে কোনও * নিক্স অ্যাপ্লিকেশন সহ, বাইনারি নিজেই কোয়েরি করা সহজ পদ্ধতি। এইচডিডিডি-র ক্ষেত্রে, আমি কল্পনা করতাম প্রক্রিয়াটি এমন কিছু হবে:

$ whereis httpd
/usr/sbin/httpd
$ /usr/sbin/httpd -V
Server version: Apache/2.2.11 (Unix)
Server built:   Jun 17 2009 14:55:13
Server's Module Magic Number: 20051115:21
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/private/var/run/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

যেমন আপনি দেখতে পাচ্ছেন - আমার ওএস এক্স বাইনারিটি বলেছে, অন্যথায় নির্দেশিত না হলে কনফিগারেশন ফাইলটি ব্যবহার করবে: /private/etc/apache2/httpd.conf

যদি সেটা না হয়, সম্ভবত এর ক্রিস্টোফার এর প্রস্তাবনা খোঁজ পরবর্তী পদক্ষেপ।


2
আপনি যদি সার্ভার.অ্যাপের মাধ্যমে অ্যাপাচি ব্যবহার করেন তবে এটি কাজ করবে না that সেক্ষেত্রে আপনাকে @msanford serverfault.com/a/155114/187798 এর উত্তরে প্রক্রিয়া তালিকার প্রয়োজন হবে যা দেখায় যে সার্ভার.অ্যাপটি httpd শুরু করে আমার ইনস্টলেশন (ম্যাভেরিক্স) থেকে এখানে প্রদর্শিত হিসাবে আলাদা কনফিগারেশন ফাইল সহ/usr/sbin/httpd -D FOREGROUND -f /Library/Server/Web/Config/apache2/httpd_server_app.conf -D WEBSERVICE_ON
জেসন এস

ম্যাকপোর্টের মাধ্যমে অ্যাপাচি ইনস্টল করার সময়ও কাজ করে না - এমস্যান্ডর্ডের উত্তর আমার পক্ষে কাজ করে!
pgee70

15

অন্য serverfault সংক্রান্ত প্রশ্ন এই । আপনি যদি কোনও ডেবিয়ান ভিত্তিক সার্ভার ব্যবহার apache2ctlকরেন তবে কোন কনফিগার ফাইলটি ব্যবহার হচ্ছে তা নির্ধারণ করতে আপনি ব্যবহার করতে পারেন :

apache2ctl -V

এ সম্পর্কে আরও:

রানটাইমে কোন httpd.conf অ্যাপাচি ব্যবহার করছে তা কীভাবে জানবেন


10

চেষ্টা

ps ax | grep httpd

এবং আপনার (সম্ভবত) এর মতো আউটপুট পাওয়া উচিত

1633   ??  Ss     0:00.21 /usr/sbin/httpd -f /etc/httpd.conf

অতিরিক্তভাবে, আপনি ঠিক কীভাবে সার্ভারটি পুনরায় চালু করছেন? শুধু জানতে আগ্রহী যদি আপনি একরকম নয় আসলে পুনরায় পড়া কনফিগ ফাইল।


এইচএম এর এতে -fপতাকা নেই
ক্লদিউ

1
+1 যেহেতু এটিই একমাত্র উত্তর যা সমস্ত ক্ষেত্রে কাজ করে, তা হ'ল আপনি যদি আপাচি নিজে কনফিগার করছেন বা আপনি যদি সার্ভার. অ্যাপের মাধ্যমে অ্যাপাচি ব্যবহার করছেন
জেসন এস

2

কারণ কিছু কনফিগার সার্ভার অ্যাপ্লিকেশন, মেশানো বা যে কোনও কিছু ব্যবহার করে এবং কারণ একটি লাইনার এফটিডব্লিউ:

$(ps ax -o comm | grep -m 1 httpd) -V | grep SERVER_CONFIG_FILE

এই আদেশটি নিম্নলিখিতটি করে:

  • একটি সক্রিয় httpd প্রক্রিয়া সন্ধান করুন
  • আউটপুট কনফিগারেশন তথ্য
  • কনফিগারেশন ফাইলটি গ্রেপ করুন

সিয়েরা ও এল ক্যাপিটনে পরীক্ষিত


$গুরুত্বপূর্ণ (এটা এই ক্ষেত্রে কমান্ড লাইন প্রম্পটে নয়)। যদি প্যারেন্সে থাকা বিবৃতিটিকে একটি কমান্ডে রূপান্তর করে তবে আমরা -Vপতাকাটি পাস করি । এটি ছেড়ে দেওয়ার ফলাফল: "অপ্রত্যাশিত টোকেন near -V 'এর নিকটে সিনট্যাক্স ত্রুটি"।
টম অগার

0

প্রথমে, অ্যাপাচি-র জন্য স্টার্টআপ স্ক্রিপ্টটি পরীক্ষা করুন। ম্যাকোসের জন্য এটি / লাইব্রেরি / লঞ্চডেমন হওয়া উচিত। এর মধ্যে একটি ওয়ার্কিং ডিরেক্টরি বা অনুরূপ তথ্য অন্তর্ভুক্ত থাকতে পারে।

আপনি চলমান প্রক্রিয়াটি ডিটিআরএস দিয়ে নিজেই ডিবাগ করতে পারেন। আপনি ব্যবহার করে চলমান প্রক্রিয়া সংযোগ করতে পারেন dtruss -p <pid>। তারপরে, আপনি যদি এটি হাপ করেন তবে আপনি সম্ভবত এটির কনফিগারেশনটি কোথায় থেকে ধরছেন তা দেখতে আউটপুটটি ছিদ্র করতে পারেন। পর্যায়ক্রমে, কেবলমাত্র ড্রিটাসকে সরাসরি কল করে আপাচি শুরু করুন dtruss start_apache_command

আপনি সর্বদা কেবল httpd.conf এর সাথে সিস্টেম-ব্যাপী অনুসন্ধান করতে পারবেন find / -name httpd.conf

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