Woooo!
मैंने अपना खुद का संस्करण लिखा है जो बहुत काम कर रहा है - कुछ कॉन्फिडेंस फ़ाइल हैकिंग और उपयोग के साथ -D NO_DETACH
।
सबसे पहले, मैं सेट किया था User
, Group
और PidFile
में /etc/apache2/apache2.conf
मैन्युअल रूप से, के बजाय उन्हें से आ रही है /etc/apache2/envvars
। मैं उन संस्करणों को ठीक से निर्यात करने के लिए एक तरीका नहीं निकाल सका (मैंने कोशिश की env
और दोनों के export
रूप में http://manpages.ubuntu.com/manpages/lucid/man5/init.5.html , लेकिन कोई अच्छा नहीं)।
root@lucid:/etc/apache2# diff -u apache2.conf.orig apache2.conf
--- apache2.conf.orig 2010-09-20 13:46:33.857868534 +0930
+++ apache2.conf 2010-09-20 13:47:22.377842204 +0930
@@ -63,7 +63,7 @@
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
-PidFile ${APACHE_PID_FILE}
+PidFile /var/run/apache2.pid
#
# Timeout: The number of seconds before receives and sends time out.
@@ -142,8 +142,8 @@
</IfModule>
# These need to be set in /etc/apache2/envvars
-User ${APACHE_RUN_USER}
-Group ${APACHE_RUN_GROUP}
+User www-data
+Group www-data
#
# AccessFileName: The name of the file to look for in each directory
फिर, यह मेरा काम है /etc/init/apache2.conf
:
# apache2 - http server
#
# Apache is a web server that responds to HTTP and HTTPS requests.
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
description "apache2 http server"
start on runlevel [2345]
stop on runlevel [!2345]
pre-start script
mkdir -p /var/run/apache2 || true
install -d -o www-data /var/lock/apache2 || true
# ssl_scache shouldn't be here if we're just starting up.
# (this is bad if there are several apache2 instances running)
rm -f /var/run/apache2/*ssl_scache* || true
end script
# Give up if restart occurs 10 times in 30 seconds.
respawn limit 10 30
exec /usr/sbin/apache2 -D NO_DETACH
respawn
मैं कर सकता हूं start|stop|status|reload apache2
और सार्थक परिणाम प्राप्त कर सकता हूं ; अगर मैं kill -9
मास्टर अपाचे प्रक्रिया करता हूं , तो यह तुरंत बहुत अधिक हो जाता है, और यह शुरू होता है और उम्मीद के मुताबिक बूट पर रुक जाता है। तो यह काफी अच्छी तरह से काम कर रहा है मुझे लगता है।
ऐसी चीजें थीं जो मैंने कोशिश कीं कि मुझे काम न मिले।
- हटाने की कोशिश की
-D NO_DETACH
, के साथ संयोजन के रूप में:
उम्मीद करना
डेमन की उम्मीद है
यह सेवा शुरू करने में विफल रहा।
- चर
/etc/apache2/envvars
को आबाद करने के लिए एक समान विधि का उपयोग करने की कोशिश की ${APACHE_*}
:
निर्यात APACHE_RUN_USER = www-डेटा
निर्यात APACHE_RUN_GROUP = www-डेटा
निर्यात APACHE_PID_FILE = / var / run / apache2.pid
यह प्रारंभ करने में विफल रहा, और इसके बारे में एक त्रुटि उत्पन्न हुई apache2: bad user name ${APACHE_RUN_USER}
।
कंसोल कंसोल आउटपुट और कंसोल डिफ़ॉल्ट विकल्प; इस बिंदु पर मैं वास्तव में सार्थक त्रुटि संदेश प्राप्त करने की कोशिश कर रहा था। कोई फर्क नहीं पड़ा।
console output
यह अपाचे संदेशों को डीबग करने के लिए उपयोगी था:
exec /usr/sbin/apache2 -X -e debug -E /var/log/apache2/foo.log
यह एक और प्रयास था /etc/apache2/apache2.conf
जिसे संशोधित नहीं किया गया था :
exec APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data APACHE_PID_FILE=/var/run/apache2.pid /usr/sbin/apache2 -D NO_DETACH -e debug -E /var/log/apache2/foo.log