الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تهيئة مخدمي Apache 2.5 و Tomcat 5.5 للعمل معاً

بدأه iyadhoo في 21 نوفمبر 2006 · 6 رد · 4,460 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

أولاً : مصطلحات وكلام نظري لا بد منه : :wacko:

Worker: العامل هو عبارة عن مثيل (instance) عن مخدم Tomcat يكون في حالة انتظار دائماً لتنفيذ الـ servlets بالنيابة عن web server ما مثل Apache.

أي هنا سيقوم apache بتمرير طلبات servlet إلى مخدم tomcat الذي يعمل كمساند له ((وراءه)) .

سنطلق على worker اسم العامل!

يوجد عدة أنواع من العمال ما يهمنا هو ajp13 والذي مهمته تنفيذ الطلبات القادمة من Apache.

يتم تحديد اسم العامل كالتالي:

worker.list=<workername>

لهذا العامل خصائص :

worker.<workername>.type وهنا نريد العامل من النوع ajp13.

worker.<workername>.host وقيمة الخاصية هذه localhost بما أننا نعمل على نفس الجهاز.

worker.<workername>.port ويساوي 8009 يتخاطب مع apache عن طريق هذا المنفذ.

mod_jk: هي كتلة برمجية (module) تضاف إلى Apache حتى يعرف كيف يحول الطلبات إلى Tomcat ... الملف المرفق يحوي نسخة منها خاصة بالـ Apache 2.5 (لكل apache نسخة خاصة به).

العمل :

بعد تنصيب كل من Apache .. و Tomcat وتهيئتهما بشكل صحيح .. والتأكد من عملهما - تستطيع التأكد من عمل Apache بفتح صفحة http://localhost/ .. وللتأكد من عمل Tomcat افتح صفحة http://localhost:8080/..

قم بتنفيذ الخطوات التالية:

تهيئة Tomcat:

1- في ملف server.xml في مجلد Tomcat تأكد من أن الكود التالي غير موضوع ضمن تعليق:

		<Connector port="8009" 
   enableLookups="false"
   redirectPort="8443"
   protocol="AJP/1.3"/>

2- أيضاً تأكد من الكود التالي:

		<Engine name="Catalina" defaultHost="localhost">

	<Host name="localhost" appBase="webapps"
		  unpackWARs="true" autoDeploy="true"
		  xmlValidation="false" xmlNamespaceAware="false">

		<Valve className="org.apache.catalina.valves.AccessLogValve"
			   directory="/logs" prefix="localhost_access_log."
			   suffix=".txt" pattern="common" resolveHosts="false"/>
	</Host>
</Engine>

تهيئة Apache:

3- قم بنسخ ملف mod_jk.so المرفق إلى مجلد modules الموجود ضمن مجلد Apache.

4- انسخ ملف workers.properties المرفق إلى مجلد conf ضمن apache إلى جانب ملف httpd.conf.

 هذا الملف يقوم بإنشاء عامل من النوع ajp13 .. كما ذكر في البداية..

5- الآن سنقوم بتعديل ملف التهيئة الخاص ب apache لنخبره عن ملفي mod_jk و workers.properties الجديدين. وذلك بنسخ الكود التالي إلى نهاية httpd.conf:

# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module {apache modules directory path}/mod_jk.so

# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile {apache conf directory path}/workers.properties

# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile {apache logs directory path}/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE, 
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format 
JkRequestLogFormat "%w %V %T"

# Specify which requests get forwarded to Tomcat.  (My web app is called
# "iyadhoo"; change as necessary.  Note that I'm forwarding Struts *.do
# requests to Tomcat, along with the top-level home page request, which in my
# case happens to be a Struts request.)
JkMount /iyadhoo/ ajp13w
JkMount /iyadhoo/*.do ajp13w
JkMount /iyadhoo/*.jsp ajp13w

ملاحظات حول الكود المضاف: :huh:

آ- كل عبارة موضوعة بين قوسين } { (وهي ثلاث) استبدلها بالمسار المناسب مثلاً عندي الأولى:

{apache modules directory path} أضع بدلاً عنها c:/AppServ/apache/modules

ب- قم بإنشاء ملف داخل مجلد logs وسمّه mod_jk.log (لن يؤثر هذا الملف في العمل وإنما فقط لتسجيل الأحداث)

ج- في نهاية الملف انتبه : JkMount أقوم بربط الـ Apache مع المجلد الذي يحوي صفحات jsp التي أعمل عليها.. وهو هنا iyadhoo وهذا المجلد موجود في root الـ tomcat (وهو هنا webapps) وليس root apache.

ء- ajp13w هو اسم العامل المعرف ضمن ملف workers.properties.!!

للتجريب :

تأكد من تشغيل كل من tomcat و apache .. اطلب الصفحة http://localhost/ يجب أن تظهر صفحة الترحيب الخاصة ب apache وفيها phpmyadmin وما إلى ذلك..

الآن اطلب صفحة http://localhost/iyadhoo/

المقال فيه الكثيير من النقص .. وستتم تغطيته بإذن الله..

هذا حصيلة عمل وتجريب لمدة 6 ساعات متواصلة أرجو أن تنتفعوا به وألا يقع أحد بالمطبات التي وقعت بها!!

ما كان من صواب فمن الله وما كان من خطأ فمني ومن الشيطان ..

ولا تنسوني من دعائكم!. :rolleyes:

________.zip

فحنوت ألثم جرحه الرعافَ فانتكأت جراحي..

وهمت على خدي الدموع فقلت يا روحي وراحي..

هلّا رحمتَ قلوبنا .. وعدلت عن هذا الرّواحِ ِ ..؟

فأجابني البطل المسجّى هازئاً بيَ .. باقتراحي

كفكف دموعك ليس في عبراتك الحرّى ارتياحي

هذي سبيلي .. إن صدقت محبتي .. فاحمل سلاحي

Sun Certified Java Programmer

#2

ماني مصدق عيوني

j2EE تحرك

أخي اياد ألف شكر لك حقيقة منشغل بمشروع أسلمه غداً

حبيت بس أبارك لك مبادرتك وأتمنى منك المزيد

#3

شكراً لك على ردك .. والله يسرلك مشروعك

وأنتظر ملاحظاتك!

فحنوت ألثم جرحه الرعافَ فانتكأت جراحي..

وهمت على خدي الدموع فقلت يا روحي وراحي..

هلّا رحمتَ قلوبنا .. وعدلت عن هذا الرّواحِ ِ ..؟

فأجابني البطل المسجّى هازئاً بيَ .. باقتراحي

كفكف دموعك ليس في عبراتك الحرّى ارتياحي

هذي سبيلي .. إن صدقت محبتي .. فاحمل سلاحي

Sun Certified Java Programmer

#4

لا أعرف شئ عن الـ jsp ... لكن سأبدأ الان ان شاء الله

شكرا لك مبادرتك أخي iyadhoo

SCJP 5.0

#5

فضلاً وليس أمراً أخي أياد هل توضح لي لماذا نحتاج Apache ?

ولماذا نحتاج إلى تومكات بجانب Apache ، وماللي سيضيفه Apache إلى امكانياتنا ، لتفرض أننا مؤسسه ونريد الدخول في عالم الويب ، إن أردنا عمل صفحات ويب ديناميكيه نحتاج تومكات فقط ، فلماذا Apache

ثم مالأنواع الاخرى الموجوده غير Apache لأنني حقيقة أختلطت علي الأمور ولكن أريد رؤيه واضحه لما سوف أعمله " اعتقد انني بحاجه إلى النوم "

تم تعديل هذه المشاركة بواسطة {عيسى} في 26 نوفمبر 2006 في 17:45

#6

مخدم Apache كما تعلم أخي عيسى وكما يعلم الأعضاء .. مهمته تخديم صفحات php فهو نظير ل Tomcat والنظير الآخر لهما هو IIS لتخديم صفحات ASP .

أحياناً تضطر للعمل بلغتين معاً على نفس الجهاز(في أبسط الحالات) .. فأنت بحاجة إلى طريقة للربط بينهما - بما أنهما يعملان على نفس الport ولا نريد تغيير الport وكتابته في عنوان URL عند كل طلب لصفحة معينة- كي يستجيب كل مخدم إلى الطلبات الخاصة به أي Tomcat سيخدم طلبات JSP و Apache سيخدم صفحات php.

قد تسبب التسمية اللغط عند البعض فمخدم Tomcat يطلق عليه Apache Tomcat .. علينا أن نفرق بينه وبين Apache.. فالأول لJSP والثاني لphp.

الموضوع ليس له علاقة شديدة ب J2EE وإنما يفيد لمن أراد العمل بكلتا اللغتين...

أرجو أن تكون الفكرة واضحة.. شكراً على التفاعل

فحنوت ألثم جرحه الرعافَ فانتكأت جراحي..

وهمت على خدي الدموع فقلت يا روحي وراحي..

هلّا رحمتَ قلوبنا .. وعدلت عن هذا الرّواحِ ِ ..؟

فأجابني البطل المسجّى هازئاً بيَ .. باقتراحي

كفكف دموعك ليس في عبراتك الحرّى ارتياحي

هذي سبيلي .. إن صدقت محبتي .. فاحمل سلاحي

Sun Certified Java Programmer

#7

السلام عليكم اخي جزاك الله خيرا انا عملتالي حضرتك قلته واضفت الكود الخاص بك في نهاية الصفحه واصبح الكود كالتالي

# Load mod_jk module
# Update this path to match your modules location
LoadModule jk_module C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so

# Where to find workers.properties
# Update this path to match your conf directory location (put workers.properties next to httpd.conf)
JkWorkersFile C:/Program Files/Apache Software Foundation/Apache2.2/conf/workers.properties

# Where to put jk logs
# Update this path to match your logs directory location (put mod_jk.log next to access_log)
JkLogFile C:/Program Files/Apache Software Foundation/Apache2.2/logs/mod_jk.log

# Set the jk log level [debug/error/info]
JkLogLevel info

# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

# JkOptions indicate to send SSL KEY SIZE, 
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

# JkRequestLogFormat set the request format 
JkRequestLogFormat "%w %V %T"

# Specify which requests get forwarded to Tomcat.  (My web app is called
# "webapps"; change as necessary.  Note that I'm forwarding Struts *.do
# requests to Tomcat, along with the top-level home page request, which in my
# case happens to be a Struts request.)
JkMount C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/ajp13w
JkMount C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/*.do ajp13w
JkMount C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/*.jsp ajp13w

لكن لللأسف لا يتم الإتصال فقد قام التوم كات حقا لكن البتشي لا ويقول لي ان الوندز لا يستطيع قيام الأبتشي والإتصال هل اجد عند حضرتك حل لكن اريد اسف سريعا وضروري لأني في زنقه حقا ممكن مراسلتي علي هذا الميل

اميلي

apach2.2.bmp

ومامن كاتب إلا سيفني ويبقي الله ماكتبت يداه

فلا تكتب بيدك غير شئ يسرك في القيامه ان تراه

مواضيع مشابهة