السبت، 29 مايو 2010

امكانية الدخول الى phpMyAdmin على الشبكة او على الانترنت

فى الدرس السابق تم شرح كيفية اعداد phpMyAdmin للعمل و قمنا بالدخول اليه عن طريق توجيه متصفح الانترنت الى
http://localhost/phpmyadmin

و لكن هذا يتم على جهاز الكمبيوتر المثبت عليه Apache و phpMyAdmin فقط. اذن ماذا لو كان هناك شبكة محلية مثلا داخل مكتب او شركة بها العديد من المستخدمين؟.؟؟؟؟ هل سنقوم بتنزيل قاعدة بيانات لكل كمبيوتر؟؟؟؟ بالطبع لا. 
و هذا موضوع هذا الدرس. كيف نتمكن من الدخول الى phpMyAdmin سواء عن طريق الشبكة المحلية او الانترنت . لا يوجد فرق فذلك يتم بطريقة واحدة و هى تعتمد على استبدال كلمة localhost من العنوان بــ عنوان IP .

اذن جرب ان تذهب الى كمبيوتر اخر داخل الشبكة و اكتب العنوان التالى فى متصفح الانترنت
http://192.168.16.70/phpmyadmin

يختلف هذا العنوان IP طبعا من كبيوتر الى اخر. اكتب عنوان الكمبيوتر المثبت عليه MySQL و phpMyAdmin.
فى الغالب لن يحدث شئ.... كيف اذن ما اهمية ذلك.. نعم سيقوم الجدار النارى الموجود على الكمبيوتر المثبت عليه MySQL و phpMyAdmin برفض الطلب و سيظهر لك رسالة The Page cannot be displayed
اذن ماذا نفعل؟؟؟

يجب اولا اضافة استثناء للجدار النارى بحيث لا يمنع الطلبات القادمة على port الخاص ببرنامج Apache او اضافة استثناء للطلبات القادمة الى برنامج httpd.exe و هو الملف التنفيذى للخادم Apache server.
و السبب فى ذلك هو ببساطة , عندما نقوم بكتابة http://localhost/phpmyadmin  او حتى 
http://localhost/phpmyadmin  فإننا نقوم بتوجيه المتصفح الى موقع Apache Server. تذكر اننا قمنا بفك ضغط مجلد phpmyadmin داخل مجلد htdocs الموجود تحت Apache Directory و تذكر ايضا فى الدرس الاول قلنا ان برنامج Apache Server اساسى لكى تعمل php.... ما علاقة php بالموضوع هنا؟؟؟؟؟ 
تذكر ان برنامج phpmyadmin هو اصلا عبارة عن موقع مكتوب بلغة php , اذن هو فى حد ذاته موقع مستقل بذاته و لكنه مرتبط بقواعد بيانات MySQL و بما انه مكتوب بلغة php. اذن لكى يعمل يجب ان يعمل من خلال Apache Server  و لذلك نحن نتعامل مع Apache Server. كخادم ويب فهو يقوم بالرد على الطلبات القادمة الى مواقع php  المسجلة على الخادم.راجع الشكل الذى رسمناه للتعبير عن كيفية ترجمة صفحة php.

من خلال الشكل يتضح ان اى تعامل مع php يتم اصلا من خلال Apache.

اضافة استثناء للجدار النارى للويندوز

- فتح نافذة (لوحة التحكم) Control Panel , اختر Security Center من لوحة التحكم.
- من قسم (Virus Protection) اختر Windows Firewall


 و من نافذة Windows Firewall نختار التبويب Exceptions كما فى الصورة


تظهر قائمة بالبرامج المسموح لها باستقبال الطلبات من خلال الجدار النارى بدون منعها , نحن نريد اضافة برنامج Apache Server ايضا الى تلك القائمة.

- اضغط (Add Program) لكى يتم اضافة برنامج جديد الى القائمة.
- تظهر لنا قائمة بالبرامج المثبتة و المكتشفة تلقائيا من خلال ويندوز و لكن برنامج Apache Server لا يظهر ضمنها , فنقوم نحن بالوصول الى مساره و تحديده ( لاحظ الصورة)


نضغط Browse لتحديد الملف التنفيذى لبرنامج Apache Server , نذهب الى المسار التالى 
C:\Apache\bin\

و هو المسار المثبت فيه Apache Server , نقوم بفتح مجلد bin الموجود تحت مجلد تثبيت Apache Server و نختار ملف httpd.exe و له رمز يحمل شعار برنامج Apache. نقوم بتحديده و نختار open.
 
الان يظهر ملف httpd.exe فى قائمة البرامج المثبتة التى نختار منها البرنامج.
 
- اضغط Change Scope , فى هذه الخطوة نحن نختار مدى الدخول الى برنامج Apache كما فى الصورة التالية


و تحتوى على 3 خيارات الاول
1 - Any Computer (including those on the Internet)
 
 و هذا معناه ان يتم السماح بالدخول الى برنامج Apache من خلال اى كمبيوتر على شبكة الانترنت و لكن بشرط طبعا ان يكون للكمبيوتر real IP و هو غير متوفر عند الجميع و لكن مستخدمى المودم لايزال بإمكانهم استخدام هذا الاختيار او مستخدمى الشركات التى لها real IP على شبكة الانترنت مثل Yahoo و Google ... الخ.

- الخيار الثانى 
2 - My Network (subnet only)
 
و هذا معناه امكانية الدخول الى Apache عن طريق الاجهزة الموجودة فى الشبكة المحلية التى ينتمى اليها جهاز الخادم المثبت عليه Apache فقط. لا يمكن الدخول اليه عن طريق الانترنت
هذا الخيار يمكن للجميع استخدامه ولا يلزم الحصول على real IP لأنه بطبيعة الحال كل الاجهزة الموجودة داخل نفس الشبكة المحلية الواحدة يمكنها الدخول الى بعضها البعض عن طريق خدمة مشاركة المجلدات و خدمات الشبكة المحلية. 
 
- الخيار الثالث (تخصيص)
3 - Custom list 

يجعلنا نختار قائمة بإرقام IP او العناوين المسموح لها الدخول الى Apache و هذه القائمة من العناوين يمكن ان تحتوى على مجموعة من real IP على شبكة الانترنت او مجموعة من عناوين الشبكة المحلية او الاثنين معا فى نفس الوقت.

- نختار الاختيار المناسب كما نرغب و نضغط ok  ثم Ok  مرة اخرى لغلق نافذة Windows Firewall
- الان اصبح الدخول الى Apache ممكنا من خلال عناوين اخرى غير الكمبيوتر المحلى المثبت عليه Apache Server و بالتالى يمكن لعدد كبير من المستخدمين فى نفس الوقت الدخول الى phpMyAdmin و التعامل مع قاعدة البيانات MySQL بكتابة عنوان IP يتبعه مسار phpMyAdmin كالتالى : 
http://(Apache Server IP)/phpmyadmin

يتم العمل عن بعد كأن الخادم مثبت لديك و سرعة تبادل المعلومات تتوقف طبعا على سرعة اتصالك بالكمبيوتر المثبت عليه الخادم.

phpMyAdmin

phpMyAdmin هو برنامج يمكنك من العمل بكفاءة و سهولة مع قواعد بيانات MySQL, فقد تم تصميمه لكى يعمل من خلال متصفح الويب كل ما عليك توجيه متصفحك الى عنوانه و من ثم يمكنك العمل مع قواعد البيانات بسهولة و له ميزة رائعة ايضا و هى امكانية عمل اكثر من مستخدم فى نفس الوقت على الشبكة المحلية او الانترنت على نفس قواعد البيانات


كما نرى فى الصورة يمكنك التعامل مع الجداول و المستخدمين و كل عناصر قاعدة البيانات بسهولة و سرعة و دون الحلجة للعمل مع قاعدة البيانات عن طريق MySQL Client الشاشة السوداء.

و لكى نقوم بإعداده للعمل نقوم بالخطوات التالية : 

1 - تنزيل برنامج phpMyAdmin من موقعه , يظهر لك صفحة بها اسماء ملفات للتحميل كلهم يؤدوا نفس الغرض , على سبيل المثال اختر ملفا بامتداد zip لوجود برامج كثيرة تعمل مع هذا الامتداد على الويندوز.

2 - بعد تنزيله على الكمبيوتر نقوم بفك الضغط الى مجلد htdocs الموجود تحت مجلد Apache لأن phpMyAdmin سيعمل كأنه موقع مستقل بذاته. و قم بإعادة تسميته الى phpmyadmin

3 - اذهب الى مجلد phpMyAdmin و قم بفتح الملف (config.inc.php) اذا لم تجد هذا الملف , يوجد ملف اسمه (config.sample.inc.php) قم بعمل نسخة منه فى نفس المجلد و قم بإعادة تسميته الى (config.inc.php) ثم بفتح الملف (config.inc.php) ببرنامج Notepad او من خلال برنامج wordpad اى محرر نصوص , لأننا سنقوم بعمل تعديلات به.

هذا الملف هو عبارة عن ملف php به اعدادت معينة يجب ان تكون معدة بكيفية معينة من اجل ان يعمل phpMyAdmin بشكل صحيح , لأنه يتم قراءة هذا الملف فى كل مرة نقوم بتشغيل phpMyAdmin.

4 -   ابحث عن الجملة 
$cfg['Servers'][$i]['auth_type'] = 'config';
و قم بتغييرها الى  
 $cfg['Servers'][$i]['auth_type'] = 'cookie';

 5 - بنفس الطريقة ابحث عن جملة 
$cfg['blowfish_secret'] = '';
و قم بتغيير قيمة هذا المتغير الى اى قيمة ,  على سبيل المثال انا كتبتها كالتالى
 $cfg['blowfish_secret'] = 'holla';
 قم بحفظ التغييرات على الملف ثم اغلق الملف و الان تريد ان تجرب , حسنا نجرب معا
افتح نافذة مستعرض الانترنت و اكتب العنوان التالى:
http://localhost/phpmyadmin

تظهر لك الشاشة الافتتاحية للبرنامج و يطلب منك اسم المستخدم و كلمة المرور و هما نفس اسم المستخدم و كلمة المرور الخاصة MySQL.

الجمعة، 28 مايو 2010

محررات PHP

يوجد العديد من محررات PHP و هى البرامج التى تمكنك من كتابة أكواد PHP بسهولة و كفاءة.
و منها البرنامج الشهير Adobe Dreamweaver .و من مزاياه

1 - برنامج Adobe Dreamweaver :
  • الاكمال التلقائى و عرض قائمة بأسماء الدوال و المتغيرات
  • رؤية التصميم اثناء كتابة الكود
  • استخدام خطوات سهلة لبناء المواقع الديناميكية
  • محرر CSS
 فى الصورة يظهر الكود فى نفس وقت التصميم

2- برنامج phpDesigner :

ايضا يوجد برنامج اخر اسمه phpDesigner و هو برنامج صغير خفيف له ميزة رائعة و هى الاكمال التلقائى و لكنه لا يحتوى على نفس امكانيات Adobe Dreamweaver , و هذه صورة له


للحصول على معلومات اكثر عن البرنامج يمكنك زيارة موقعه من هنا

3 - محرر ++ Notepad :

برنامج ++ Notepad و هو برنامج Open source احد البرامج مفتوحة المصدر و يمكن استخدامه كمحرر PHP و ميزته هى استخدام الوان و تنسيقات مختلفة للاكواد , و للمزيد من المعلومات و تحميل البرنامج توجه الى هذا الرابط


و يمكنك استخدام محرر Notepad الموجود ضمن ويندوز و لكنه لا يحتوى اى مميزات عن هذه البرامج

كما يمكن الكثير و الكثير من محررات php  يمكنك الحصول على المزيد منها اذا كتبت فى محرك بحث جوجلphp editor ستجد المئات من البرامج الموجودة على الانترنت يمكنك تنزيلها.

السبت، 22 مايو 2010

تثبيت PHP

كى يتم تثبيت PHP يجب اولا تثبيت Apache. و اذا كنت ترغب فى استخدام قواعد بيانات MySQL فلابد من تثبيتها اولا

توجه للعنوان التالى
http://httpd.apache.org/download.cgi
لتحميل Apache اولا. عند اكتمال التحميل 



فى الخطوة التى تحمل عنوان Server information يمكنك كتابة اى بيانات.
يتك التأكد من تثبيت الخادم بنجاح عن طريق توجيه المتصفح الى العنوان 
http://localhost
يتم عرض جملة It Works  اذا كان يعمل بنجاح , و هكذا تم تثبيت Apache بنجاح و اصبح الكمبيوتر لديك خادم ويب و جاهز لتثبيت PHP و لكن ماذا لو اردت ان تستخدم قواعد بيانات. لذلك سنقوم بتثبيت MySQL قبل تثبيت PHP.

و الان سنقوم بتثبيت MySQL حتى نتمكن من استخدام قواعد بيانات MySQL اثناء عملنا مع PHP.
اذهب الى الرابط التالى لتحميل MySQL
http://dev.mysql.com/downloads/mysql/

شاهد هذا الفيديو لتثبيت MySQL

فى الخطوة التى يطلب منك تعيين كلمة مرور , اختار كلمة مرور صعبة التخمين لانها ستكون كلمة المرور الخاصة بالمستخدم root 

لكى تتأكد من عمل MySQL بشكل صحيح , يمكنك بدء MySQL كالتالى
يتم عرض نافذة MySQL 

الصورة من موقع ipresent.net

بعد ان تقوم بكتابة كلمة المرور التى قمت بتعيينها اثناء تثبيت البرنامج سترى النافذة فى الاعلى و هى تدل على ان MySQL يعمل بشكل صحيح.

الان يمكنك اضافة مستخدمين اخرين سيتم تسجيل الدخول الى قاعدة البيانات بهم فيما بعد. 
لكى تضيف مستخدمين اخرين الى MySQL
- قم بتسجيل الدخول بالمستخدم root كما فى الصورة بالاعلى
-  استخدم الامر CREATE USER و طريقته كالتالى
CREATE USER 'USER'@'localhost' IDENTIFIED BY 'PASSWORD';
 
 هذا الامر يقوم بانشاء مستخدم اسمه USER على domain اسمه localhost كتبناه اثناء تثبيت Apache 
اذا حاولت الدخول باستخدام هذا المستخدم الان فلن يمكنك تسجيل الدخول لان هذا المستخدم ليس له صلاحية الدخول الى قاعدة البيانات
و لكى يتم اضافة الصلاحية المناسبة للمستخدم:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;
 هذا الامر يقوم بإضافة كافة الصلاحيات (ALL PRIVILEGES) على كل عناصر قواعد البيانات *.* و التى تمثل الجدوال و Views.

جزئية WITH GRANT OPTION تمكن هذا المستخدم من اعطاء اى صلاحيات هو يملكها لمستخدم اخر و هذا يعنى ان هذا المستخدم له صلاحية انشاء مستخدمين اخرين. 

الان يمكنك الدخول الى MySQL باستخدام هذا المستخدم. 

و الان سنقوم بتثبيت PHP !!!!!

سنقوم بتنزيل PHP من موقعها  


فى اعلى الصفحة نقوم بتنزيل الوصلة المكتوب امامها tar.bz2 او tar.gz المهم اننا نريدها مضغوطة لاننا سنقوم بإعداد PHP بشكل يدوى

بعد تنزيل الملف قم بفك الضغط الى c:\php5  , هذا المجلد يحتوى على جميع ملفات PHP.

  • قم بفتح مجلد C:\php5 و ابحث عن ملف اسمه PHP.ini-recommended قم بعمل نسخة منه فى نفس المجلد C:\php5 و قم بإعادة تسميته الى php.ini.
  • قم بفتح الملف php.ini باستخدام برنامج notepad و ابحث عن doc_root كما فى الصورة

قم بتغيير القيمة المكتوبة امامها الى المسار الذى قمت بتنزيل Apache فيه و بالطبع هذا المسار يختلف من كمبيوتر لاخر على حسب ما قمت بتحديده فى خطوات التثبيت
لاحظ الصورة . و كيف تم كتابة المسار بهذه الكيفية.
  • بنفس الطريقة قم بالبحث عن extension_dir و غير القيمة المكتوبة امامها الى 
  • لاحظ هذه الصورة 
     اكتب المسار بنفس الطريقة بالصورة , بين علامات التنصيص.
    * ابحث عن الجملتين
    extension=php_mcrypt.dll
    extension=php_mbstring.dll
 تلاحظ  وجود علامة ; قبل كل سطر مكتوب فيه كل جملة , احذف علامة ; فقط من بداية كل سطر
و بعد هذه التعديلات قم بحفظ الملف و اغلاقه
    الان سنقوم بإضافة مسارات PHP الى متغيرات النظام و لعمل ذلك كليك يمين على My Computer   و اختار Properties , ثم اختر التبويب Advanced , ثم اضغط زر Environment variables. اختار المتغير PATH و انقر الزر Edit, ضع المؤشر داخل variable value  و اذهب الى اخر السطر بالضغط على end. و اضف مسارات PHP كما فى هذه الصورة
كتابة المسارات الخاصة بـ PHP فى نافذة متغيرات النظام

 - و الان سنقوم ببعض الاعدادات التى تسمح لــ Apache تشغيل الملفات ذات الامتداد PHP و عدم عرض مربع download اذا كتبت مسار ينتهى بــ php فى نافذة المتصفح. 

- اذهب الى مسار تنزيل Apache , ثم قم بفتح من داخله المجلد conf , و من داخله قم بفتح الملف httpd.conf باستخدام برنامج Notepad.

- فى بداية الملف فى اول سطر قم بكتابة مسار PHP بهذه الطريقة
PHPIniDir "C:\php5"
- ابحث فى هذا الملف عن LoadModule و اضف السطر التالى 
LoadModule php5_module  "C:/php5/php5apache2_2.dll"
كما فى هذه الصورة
 قم بالبحث عن AddType و اضف السطر التالى
AddType application/x-httpd-php .php 
هذا السطر اهميته تمكين Apache  من فهم امتداد php لكى يتم تمريها الى مسار php لترجمتها و عدم عرض مربع download.

قم بحفظ هذا الملف و اغلاقه , لكى يتم تفعيل هذه التأثيرات قم بإعادة تشغيل ويندوز.

بعد إعادة التشغيل تود الان تجربة ما اذا كانت PHP تعمل بشكل صحيح ام لا , قم بعمل ملف جديد باستخدام Notepad و اكتب فيه اى كود PHP و ليكن هذا الكود التالى  
هذه الدالة تقوم بعرض بيانات عن php فى نافذة المتصفح و لتجربة ذلك قم بحفظ الملف بامتداد php , سيتم الحفظ فى مسار الويب الخاص بـــ Apache و هو مسار htdocs الموجود داخل مجلد تثبيت Apache 

اذا قمت بحفظ الملف باسم test.php سيكون عليك تجربته كالتالى
افتح نافذة المتصفح و اكتب
http://localhost/test.php
تظهر لك نافذة كما بالشكل
 هذه النافذة تقوم بعرض كافة البيانات عن PHP و ايضا عن MySQL  اذا كان مثبتا لديك
هكذا انتهينا من تثبيت و اعداد PHP للعمل
اذا رغبت فى عمل ملفات php يجب حفظها فى مجلد htdocs الموجود داخل مجلد تثبيت Apache

الخميس، 13 مايو 2010

ما هى PHP

لغة PHP هى لغة برمجة لصفحات الويب تمتاز بالسهولة و بساطة الجمل التركيبية. تشبه هذه الجمل التركيبية لغة C الى حد كبير.
و تحتوى على عدد من الدوال للتعامل مع الدوال الحرفية و الرقمية و قيم التاريخ و الوقت و غيرها فهى مستقلة بذاتها و بها امكانيات كثيرة.
أيضا يمكنها العمل بكل سهولة و مرونة و قوة مع قواعد البيانات فهى تحتوى على عدد كبير جدا من الدوال التى تتعامل مع قاعدة بيانات MySQL بمنتهى البساطة

يمكن للغة PHP ان تعمل على انظمة تشغيل ويندوز او يونكس هى غير معتمدة على نوع نظام التشغيل او مايسمى platform-independent

ماذا نحتاج؟؟؟

يجب ان يتوافر خادم ويب Server بالاضافة الى تثبيت منصة عمل PHP فهو برنامج يمكن الخادم من فهم الكود المكتوب بلغة PHP

كيف تعمل


لاحظ الرسم التالى , يمكنك من خلاله فهم كيف تعمل لغة PHP


عندما تقوم بطلب صفحة PHP فى المستعرض على سبيل المثال
http://ahmedsalah.agilityhoster.com/Login.php

1 - مستعرض الانترنت هو Client فى هذا الرسم يتم من خلاله طلب صفحة PHP.
يتم ارسال طلب عرض صفحة PHP الى الخادم, يستقبل Apache الطلبات القادمة من المستعرض حيث انه يمثل خادم الويب.
يمكنك بالطبع استخدام اى خادم ويب غير Apache لكن بشرط ان يكون متوافق مع PHP. و من هذه الخوادم خادم ColdFusionو Zend. او حتى خادم IIS الذى يأتى مع ويندوز اكس بى

2 - يرسل الخادم طلب الى مترجم PHP بترجمة الصفحات لانه بالطبع خادم الويب لا يفهم معنى كود PHP.
يتم معالجة الكود عند مترجم PHP.

3 - احيانا يحتوى الكود على دوال MySQL تتعامل مع قواعد بيانات MySQL, و لكن ضرورى ان يكون قاعدة بيانات MySQL مثبته ايضا و يمكن الوصول اليها من خلال مترجم PHP.

بالنسبة للرسم السابق يمكن الاستغناء عن قاعدة البيانات فليس كل التطبيقات تحتوى على قاعدة بيانات.

لاحظ الرسم التالى يوضح المسار المكتمل لرحلة الطلب من المتصفح الى الخادم و الاستجابة مرة اخرى الى متصفح الانترنت


4 - يتم استرجاع البيانات من قاعدة بيانات MySQL الى مترجم PHP و يتم ارجاع الكود على هيئة HTML الى Apache الذى يفهم HTML. و الدليل على ذلك قم بزيارة الوصلة بالاعلى و عند اكتمال التحميل قم بالضغط كليك يمين


يتم عرض نافذة الكود



تجد الكود عبارة عن اكواد HTML و Javascript فقط اما أكواد PHP لا تظهر لانها Server-side code اى يتم معالجتها فقط عند خادم الويب

خط سير الطلب للخادم و العودة مرة اخرى بالكود للمستعرض اسمى برحلة الذهاب و العودة و لذلك سميت Round-trip request


كانت هذه نبذة قصيرة عن لغة PHP و كيف تعمل. ارجو مراستلى على بريدى it_charisma@yahoo.com لاعطاء اراء او اسئلة.