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

سؤال فى إعدادات Apache

بدأه asm-soft في 10 سبتمبر 2008 · 9 رد · 736 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

عندى سؤال حول تشغيل Apache للـ PHP و هو كيف أقوم بإعداد Apache لكى يقوم بتنفيذ كل ملف PHP يتم طلبه فى Process خاص به حيث يمكننى من خلال Terminal عرض كل Process و إغلاق أى صفحة علماً باننى لا أريد أن أجعل PHP يعمل كـ CGI

فعند عرض Process من خلال Terminal فى لينوكس يتم عرض الأتى مثلاً:

 PPID   PID  PGID   SID TTY	  TPGID STAT   UID   TIME COMMAND
27799 29393 31519 31519 ?		   -1 S	32362   0:00 /usr/bin/php /home/user/public_html/sleep.php
  978 29422 31519 31519 ?		   -1 S	32362   0:00 /usr/bin/php /home/user/public_html/ps.php
29422 29423 31519 31519 ?		   -1 R	32362   0:00  \_ ps -xfjwS

هل لاحظتم تشغيل برنامج PHP فى كل مرة يتم طلب ملف PHP

/usr/bin/php

بهذة الطريقة لا أحتاج إلى إعطاء أى مجلد التصريح 777 كما يمكننى أن أغلق أى Process فى اى وقت و هذا إذا حدث به أى مشكلة و تم تعليقة لفترة كبيرة

كيف أعد Apache تحت نظام اللينوكس بحيث يتعامل مع PHP بهذة الطريقة ؟

و إذا كان ممكن وضع الطريقة تحت الوندوز كمان يبقى خير و بركة علشان الواحد أوقات بيشتغل عليه :D

forum-signature-01.gif
#2
اقتباس
علماً باننى لا أريد أن أجعل PHP يعمل كـ CGI

لماذا ؟

أعتقد هذا هو الحل الوحيد

فلو فكرت لو عمل كل PHP Script ك Process منفصلة لا بد ان كل واحده تحمل ال Compiler وكل مالها وبالتالى نصل الى فكره ال CGI (بمعنى اخر لو كنت تهرب من موضوع السرعة فهذا شىء لابد منه )

الشىء الذى كان يحل هذا هو تحميل ال PHP ك Apache Shared Module هنا لا يتم تحميل ال Compiler الا مره واحده مع ال Apache

---

هناك حل اخر لو لا تستخدم ال web فى الموضوع (تؤدى بها مهام وظيفية معينة داخل النظام لا علاقة لل Apache بها ... وهذا فى غالب الامر وضعك ) هنا تستخدم ال PHP/Cli

فهذه احدى الاشياء الحاليه الممتازه فى ال PHP

#3

لا هذا ولا ذاك أخى ASDen

كل الحكاية اننى أمتلك مجموعة من المواقع على شركات متعددة فمنها شركة قامت بإعداد سرفرتها بطريقة تجعلنى أستطيع أن أتعامل مع PHP بهذة الطريقة و راسلتهم و لم أصل معهم لشئ علماً بان السيرفر سريع وهذة الطريقة لا تستهلك الذاكرة معهم ولا يوجد به مشكلة و لذلك كنت أريد أن أعرف طريقة الإعداد بهذة الطريقة لأننى ناوى على حجز سيرفر جديد و كنت عاوز اعده على هذا النحو علماً بان PHP لا يعمل كـ CGI عندهم ........ بصراحة أنا أتخنقت منهم لأننى مشعارف أطلع منهم بمعلومة واحده :angry:

هل هناك أى طريقة لمعرفة كيفية الإعداد على هذا النحو ؟

forum-signature-01.gif
#4

على ما فهمت من الجزء الذى وضعت

/usr/bin/php /home/user/public_html/sleep.php

فهذا هو - فى الاغلب الاعم - ال PHP/Cli

بمعنى يتم تشغيل ال PHP Script من ال PHP مباشره لو لاحظت (كما تفعل مع اى Scripting Lang أخرى مثل ال Python مثلا ... عندما تعمل مستقلة)

فبيت القصيد هنا انهم لم يفعلوا اى شىء مخصوص فى ال Setup الخاص بالسيرفر ( ويمكنك تجربة هذا الموضوع فى جهازك الشخصى )

ولكن كما قلت لك هذه الطريقة لا تستخدم مع الApache أو ال Web (لو كانوا فعلا يستمعملونها)

فمثلا هل لو دخلت على http://urwebsite/index.php ستجد انت ان ال هنا Process لل Index.php تم انشائها وتعمل وهى ستعطينى الناتج ؟

ومن هو ال User الذى يقوم بانشاء هذه ال Process أرجو من ان تتحقق هل هو ال Apache أم من ؟ (لو هو الApache يبقى هذا اكيد Cgi )

#5
اقتباس
بمعنى يتم تشغيل ال PHP Script من ال PHP مباشره لو لاحظت (كما تفعل مع اى Scripting Lang أخرى مثل ال Python مثلا ... عندما تعمل مستقلة)

أظنهم يعتمدون على الدالة exec في تشغيل كل صفحة يتم طلبها أما بإعداد في apache فالفكرة تتلخص في حيلة قاموا بها و الله أعلم .

''‏اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما ‏نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل ‏بلية''

'‏اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء ‏منهم و الأموات'

www.it-scoop.com

#6

بالفعل PHP يعمل على Apache

و بخصوص user فهذا إسم المستخدم للـ Shard Host فقد قمت بتبديلة بكلمة user و عند تشغيل PHP بهذة الطريقة فيعتبر تم تشغيل PHP تحت هذا المستخدم و بهذا لا نحتاج لإعطاء التصريح 0777 إلى أى مجلد حتى نستطيع إنشاء أو تعديل الملفات داخل المجلد فأى ملف يتم إنشاءة فسيكون ملك للمستخدم .

أما ملف sleep.php فهو ملف قمت بوضع فيه حلقة تكرارية داخلها الداله sleep حتى تعمل لفترة تسمح لى برؤيتها عند عرض Process

و الصفحة ps.php فهى تقوم بعرض Process بواسط الدالة exec فأعلم أننى ممكن أن أعرضها بواسطة SSH ولكن هذة تجارب أولية لجزء يجب تصميمة لمشروع أعمل عليه لهذا كنت أريد أن أتبع إعدادات السيرفر على هذا النحو فى السيرفر الجديد الذى سأقوم بحجزة.

اقتباس
(لو هو الApache يبقى هذا اكيد Cgi )

ساعيد المحاولة معهم لمعرفة الحقيقة و أدعو لى أن أخرج منهم بمعلومة واحده :D

و هذا ليس معناه أنكم تنتظرون النتيجة ...... أبحث منك له على الحقيقة :angry: و مشمعقولة الناس دى تعمل حاجة أحنا مشعارفينها :angry:

حلوة الجمله إللى فى النهاية دى ..... جملة تنرفزكم و تخرج كل طاقتكم :P

تم تعديل هذه المشاركة بواسطة asm-soft في 10 سبتمبر 2008 في 15:12

forum-signature-01.gif
#7

لم تفهمنى

انا اقول الذى شغل ال PHP هل هو ال user الخاص بال Shared Host أم ال Apache

ثانيا اكد لى ان هذه ال Processes تظهر عند تشغيل الصفحة من ال Browser فلو هذا اكيد ... فسيكون غريبا لو ان هذا ليس Cgi

#8
اقتباس
هل هو ال user الخاص بال Shared Host أم ال Apache

من خلال Apache

اقتباس
ثانيا اكد لى ان هذه ال Processes تظهر عند تشغيل الصفحة من ال Browser

من Browser

لو كان CGI فما الداعى لإخفاء الحقيقة ؟

تم تعديل هذه المشاركة بواسطة asm-soft في 10 سبتمبر 2008 في 15:25

forum-signature-01.gif
#9
اقتباس
لو كان CGI فما الداعى لإخفاء الحقيقة ؟

لا أعرف ولكن يبدو انة Cgi فعلا

ولا اعتقد انه حتى FastCgi فى هذه الحالة لن يكون الUser هو ال Apache وانما ال Process Manager الخاص بال FastCgi (هذا غير انك كنت ستجد اخينا هذا شغال )

لكن صراحة لهم حق لو اخفوا انهم يستخدمون Cgi بسبب مشاكلة الكثيرة (خاصة السرعة )

#10

عندك حق أخى ASDen فيبدو انه CGI لأن السرعة مقارنه بسيرفر أخر تعتبر بطيئة و ربما يعتمدون على سرعة السيرفرات العالية الموجوده الأن.

مليون مرسى على المساعده :pwease:

forum-signature-01.gif

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