Woooo!
আমি আমার নিজস্ব সংস্করণ লিখেছি যা বেশ কার্যকর - কিছু কনফ ফাইল ফাইল হ্যাকিং এবং ব্যবহার সহ -D NO_DETACH
।
প্রথম আপ, আমি সেট করতে হয়েছে User
, Group
এবং PidFile
এ /etc/apache2/apache2.conf
ম্যানুয়ালি বদলে তাদের কাছ থেকে আসছে আছে /etc/apache2/envvars
। সঠিকভাবে রপ্তানি করা Vars আমি ঐ পেতে একটি উপায় কাজ করতে পারেনি (আমি উভয় চেষ্টা 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