علاقة Nginx مع تنصيب uWSGI بالسيرفر ولغة البرمجة القوية Python

رووح القلوب

عضو جديد
20 مارس 2009
246
1
0
11064446aq6.gif




درسنا اليوم عن بروتوكول uWSGI بإسلوب جديد يختلف عن FastCGI الذي قمنا بشرحة لكم في درسنا سابقاً
uWSGI تستخدم للنشر ولعملية الربط بين Python لغة البرمجة المعروفة والقوية مع Apache وذلك بالتنسيق مع NGINX كما تعلمون, ونستنتج من ذلك ان ذلك يوفر استقرار واندماج كبير وبالحفاظ على المرونة والأداء, وذلك من خلال ترجمة لبروتوكول uwsgi يدوياً مع الوحدات المدرجة داخل السيرفر الخاص بك
وكل ذلك يوضح لنا ان عملية التطبيق او مايسمى بـ implementation لبروتوكول uWSGI ماهي الا عملية مدمجة بلغة البرمجة القوية و المعروفة Python .. وسنتكلم عنها بشكل مبسط ليكون لدى الجميع معرفة عنها


نبذه صغيره عن لغة البايثون Python
لغة بايثون تتميز بالسهولة والديناميكية من حيث الكتابة و القراءة ومن حيث التركيب النحوي لها، و تستطيع أن تبرمج بها في كل المنصات المعروفة والمتداولة لديك كمبرمج مثل C أو C + +، وهي تقاس على قوة لغة Java العريقة ايضاً، و تصلح لكل اﻷغراض تقريباً,وتعمل مع العديد من المتغيرات في لينكس و يونكس فهي تمكنك أنت كصاحب سيرفر ايضاً اذا كان لديك خلفية بسيطة بالبرمجة او اذا كان لديك موظف برمجة خاص من انشاء وتطوير السيرفر الخاص بك بأي طريقة تريدها من ناحية قوة الأداء وسرعة استعراض المحتوى لمواقع عملائك وعند دعمك لبروتوكول uWSGI بالاضافة للبايثون سيكون من السهل عليك إبتكار وسيلة جديدة للإنتقال من الطرق التقليدية إلى طرق مطورة وحديثة في جميع الخدمات المعروضة في السيرفر الخاص بك من خلال دعمها لـ تقنية بروتوكول uWSGI API
..




فمن خلال هذة اللغة سيسهل عليك التعامل مع كثير من دوال السيرفر وتحديثها بشكل مستمر
و أيضا يمكنك حتى صناعة برامج ذات واجهة رسومية (GUI) يعني تحتوي على أزرار و صور و إلخ.. كما يمكنك حتى صناعة ألعاب (2D) و (3D) و طبعاً كل ذلك يتم عن طريق المكتبات البرمجية التي تتمتع بها هذة اللغة فمثلاً أنا أستعمل مكتبة "wxPython" لبناء الواجهة الرسومية و أستعمل أيضا مكتبة "PyGame" لبرمجة و تطوير الألعاب و هناك مكتبتات كثيرة و متنوعة جدا و تذكر لأن هذه اللغة مفتوحة المصدر او مايسمى بـOpen source يعني مثل لغة PHP و لكنها أفضل بمراحل منها, و يكفي أن أنظمة اللينكس (Linux) نصفها مطور بهذه اللغة.


ولكي لانبعد كثيراً عن منحنى موضوعنا الرئيسي عن علاقة Nginx مع تنصيب uWSGI بالسيرفر ولغة البرمجة القوية Python

فسندخل في طريقة التركيب مباشرة ً لـ uWSGI اذا كان سيرفرك يدعم Nginx فستكون الخدمة متوافقة كلياً وستلاحظ الفرق بنفسك مع الوقت عند التعامل معها ومع مدخلاتها ومخرجاتها والبرمجيات المبسطة التي تتيح لك التعامل معها وكأنك تتحدث مع نافذة التكويد بطريقة مباشرة .. وجهاً لوجه !


نأتي لخطوات التركيب :

عن طريق الشل طبق الآمر التالي


أولاً

PHP:
yum update
ثم


PHP:
yum install python python-devel libxml2 libxml2-devel python-setuptools  zlib-devel wget openssl-devel pcre pcre-devel sudo gcc make autoconf  automake
ثم

PHP:
cd /opt/
ثم

PHP:
wget http://projects.unbit.it/downloads/uwsgi-0.9.6.5.tar.gz
ثم

PHP:
tar -zxvf uwsgi-0.9.6.5.tar.gz
ثم

PHP:
mv uwsgi-0.9.6.5/ uwsgi/
ثم

PHP:
cd uwsgi/
ثم

PHP:
python2.4 setup.py build
ثم للتطبيق

PHP:
make
ثم نأتي لآمر المعالجة للبيانات التالي

PHP:
useradd -M -r --shell /bin/sh --home-dir /opt/uwsgi uwsgi
ونعدل التصاريح عن طريق الاوامر التالية

PHP:
chown -R uwsgi:uwsgi /opt/uwsgi
PHP:
touch /var/log/uwsgi.log
PHP:
chown uwsgi /var/log/uwsgi.log
واخيراً نأتي لتطبيق اوامر تسمح لك بضبط اعدادات الخدمة بسيرفرك


الخطوات :

نطبق الاوامر التالية كل واحد على حده


PHP:
cd /opt/

wget -O init-rpm.sh http://library.linode.com/assets/701-init-rpm.sh

mv /opt/init-rpm.sh /etc/init.d/uwsgi

chmod +x /etc/init.d/uwsgi
وسيكون خيار ضبط الاعدادات من خلال المسار التالي

PHP:
cd /etc/init.d/uwsgi



ملاحظة :


ان اي برمجية اردت عملها على سيرفرك سيكون امتدادها بلغة Python بالإمتداد التالي
.py

يجب ان لاتنسى ذلك .. علماً بإن اي برمجية تقوم بتركيبها على سيرفرك بهذة اللغة بعد تركيب الخدمة على سيرفرك ستكون محفوظة في هذا المسار

PHP:
application/wsgi_configuration_module.py
ولمعرفة ما اذا كانت مثبته لديك بالسيرفر ام لا .. طبق الامر التالي

PHP:
python -V

واخيراً وننصح بالتعامل مع ذلك لمن لديه التمكن من خيارات السيرفر بشكل جيد


كما آمل عند النقل ذكر المصدر ..

3478779-7gznet.gif





"إن أصبت فمن الله, وإن اخطأت فمن نفسي والشيطان"


ولأي استفسار نحن في الخدمة..
لكم التحية والتقدير.