Bạn có thể bật hoặc tắt các bit cấu hình bằng IfDefine nhưng điều đó có thể sẽ không làm những gì bạn muốn. Thay vào đó, Bạn có thể đặt các biến môi trường trong tập lệnh init Apache của bạn để truy cập trong cấu hình. Ví dụ: thêm:
HOSTNAME=$(hostname)
đến /etc/init.d/httpd(trước dòng gọi httpd!) trên máy RHEL chuyển tên máy chủ của máy thành một biến. Nó không phải là đầu ra của một lệnh - bất cứ điều gì đặt một biến trong môi trường khởi chạy httpdđều ổn. Các biến có thể được sử dụng trong cấu hình như vậy:
[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
Tất nhiên, bạn không bị hạn chế trong Headerchỉ thị. Các biến có thể được sử dụng ở bất cứ đâu, như <Directory ${FOO}>vv
Nếu bạn không thích điều này (và nó không hay lắm ..) bạn có thể tạo cấu hình từ một mẫu bằng cách sử dụng m4 hoặc một số ngôn ngữ mẫu khác.
BỔ SUNG :
Hrm, một cách để làm cho nó tốt hơn là lưu trữ tất cả các biến trong một tệp bên ngoài, có lẽ /etc/httpd/conf/variables.txt:
FOO=/path/to/dir
ROLE=development
và sau đó đưa chúng vào init.dtập lệnh Apache của bạn với:
. /etc/httpd/conf/variables
trước khi gọi httpd. Vẫn không xuất sắc nhưng ít nhất nó phân tách tập lệnh khởi động và các biến.