আপনি ইফডিফাইন দিয়ে কনফিগারেশনের বিট সক্ষম বা অক্ষম করতে পারেন তবে এটি সম্ভবত আপনি যা চান তা করবে না। পরিবর্তে, আপনি কনফিগারেশনের মধ্যে অ্যাক্সেসের জন্য আপনার অ্যাপাচি init স্ক্রিপ্টে পরিবেশ পরিবর্তনশীল সেট করতে পারেন। উদাহরণস্বরূপ, যোগ করা:
HOSTNAME=$(hostname)
থেকে /etc/init.d/httpd
(আগে লাইন যে আহ্বান httpd
!) একটি RHEL মেশিনে একটি পরিবর্তনশীল হিসাবে মেশিনের হোস্ট-নেম প্রেরণ করা হয়। এটি কোনও কমান্ডের আউটপুট হতে হবে না - যেটি পরিবেশে ভেরিয়েবল সেট করে যা সূচনা করে httpd
। ভেরিয়েবলগুলি কনফিগারেশনে এর মতো ব্যবহার করা যেতে পারে:
[root@dev ~]# cat /etc/httpd/conf.d/test.conf
Header set X-Hostname ${HOSTNAME}
[root@dev ~]# GET -Sed http://localhost
GET http://localhost --> 200 OK
Connection: close
Date: Fri, 11 Sep 2009 20:47:13 GMT
Server: Apache/2.2.3 (Red Hat)
Content-Length: 525
Content-Type: text/html;charset=ISO-8859-1
Client-Date: Fri, 11 Sep 2009 20:47:13 GMT
Client-Peer: 127.0.0.1:80
Client-Response-Num: 1
Title: Index of /
X-Hostname: dev.local
অবশ্যই, আপনি কেবল Header
নির্দেশের মধ্যে সীমাবদ্ধ নন । ভেরিয়েবলগুলি যে কোনও জায়গায় ব্যবহার করা যেতে পারে, <Directory ${FOO}>
ইত্যাদি etc.
আপনি যদি এটি পছন্দ না করেন (এবং এটি খুব সুন্দর না ..) আপনি এম 4 বা অন্য কোনও টেম্পলেট ভাষা ব্যবহার করে কোনও টেম্পলেট থেকে একটি কনফিগারেশন তৈরি করতে পারেন ।
সংযোজন :
এইচআরএম, এটির আরও ভাল করার একটি উপায় হ'ল সমস্ত ভেরিয়েবলগুলি একটি বাহ্যিক ফাইলে সংরক্ষণ করা, সম্ভবত /etc/httpd/conf/variables.txt
:
FOO=/path/to/dir
ROLE=development
এবং তারপরে এগুলি আপনার অ্যাপাচি init.d
স্ক্রিপ্টের সাথে অন্তর্ভুক্ত করুন:
. /etc/httpd/conf/variables
কল করার আগে httpd
। এখনও উজ্জ্বল নয় তবে কমপক্ষে এটি স্টার্টআপ স্ক্রিপ্ট এবং ভেরিয়েবলগুলি পৃথক করে।