ما الجديد
ستار دي في بي | StarDVB

أهلاً وسهلاً بك من جديد في ستار دي في بي StarDVB. تم في الاونة الاخيرة تطوير وتخصيص الموقع ليشمل IPTV و SMART TV بشكل أوسع من السابق. إذا كنت مسجل سابقا يمكنك الدخول باسم المستخدم السابق نفسه، وإن كنت غير مسجل مسبقاً، يمكنك التسجيل الان. نرحب بمشاركاتك واقتراحاتك في أي وقت، نتمنى لك وقتاً ممتعاً معنا.

نظام اللينكس و تعليم نظام التشغيل

elsaid320

ستار جديد
الجزء الأول من دورة Clu
CLU-Part1
http://www.linuxac.org/forum/LinuxAC-Course/CLU/CLU-Part1.pdf
Intro01
http://www.linuxac.org/forum/LinuxAC-Course/CLU/Intro01.ogg
Boot02
http://www.linuxac.org/forum/LinuxAC-Course/CLU/Boot02.ogg
Install03
http://www.linuxac.org/forum/LinuxAC-Course/CLU/Install03.ogg
InstallFinish04
http://www.linuxac.org/forum/LinuxAC-Course/CLU/InstallFinish04.ogg
الجزء هذا يشمل:
- تنصيب توزيعة أوبنتو 8.04 بجوار الويندوز.
- لمحة تاريخية عن البرامج الحرة والمصادر المفتوحة.
- بداية لينوكس.
- تعريف التوزيعات وما هي أشهرها عالمياً.
خواني قد تلاحظون وجود بعض الأخطاء البسيطة في شرح الدورة (أخطاء كلامية)
السبب هو ﻷني قمت بتسجيلها بشكل مباشر إرتجالي من دون التحضير المسبق لها
لكي تكون بالتمام مثل التي بشكل مباشر Online Training ... فأرجوا المعذرة
والسموحة ...
 

elsaid320

ستار جديد
الدرس الثانى : التخطيط Planning

rackserver.png


فى البدأ احب ان اذكر اهم المزايا ريدهات لينوكس (سينتوس) فى النقاط التالية :

1 - نظام متكامل مفتوح المصدر .
2- الثبات وهى من اهم المزايا التى دعت الكثير من الشركات للأنتقال للينوكس .
3- الأمان .
4- يدعم العديد من منصات المعالجات CPU Platforms

ولكن ما فائدة هذه المزايا اذا لم نستفيد منها ؟؟
ولكى نستفيد من الخدمات يجب علينا التخطيط مسبقاً لذلك على النحو التالى ..

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

فى حالتنا هذه هناك جوانب عدة من الواجب اخذها فى الأعتبار ..

-----------------------------------------------------------

1 - العتاد Hardware :
*******************

قبل ان تفكر فى شراء الخادم Server يجب عليك التأكد من مدى توافقة مع
النظام OS والذى فى حالتنا فى Red Hat حتى لا نقع فى مشاكل عدم التوافقية
...

ريدهات لينوكس يدعم منصات المعالجات Platforms التالية :

أ- Intel 32/64-Bit
ب- AMD 32/64-Bit
ج- IBM - POWER and z-series, S/390

كما يمكنكم الأطلاع على موديلات السيرفرات المدعومة من الشركة ومذكور اى الأصدارت من النظام تتوافق معها .

https://hardware.redhat.com/list.cgi?product=Red+Hat+Hardware+Certification&search_type=&component=Red+Hat+Enterprise+Linux&version=5&devel_whiteboard=&devel_whiteboard_type=allwordssubstr&long_desc=&long_desc_type=allwordssubstr&internal_whiteboard=Server&internal_whiteboard=Desktop/Workstation&internal_whiteboard=Laptop&internal_whiteboard=Component/Peripheral


2 -اختيار النظام :
***************

شركة ريدهات تقدم اصدارين من نظامها وهما Red Hat Enterprise
Linux Server Edition وهى الأصدارة الأساسية Basic وأصدارة اخرى تسمى Red
Hat Enterprise Linux Advanced Server Edition وهى الأصدارة المتقدمة
الأكثر احترافية .

لذا اى الأصدارين نستخدم ؟؟
ذلك يرجع للسيرفر الذى سنقوم بتثبيت النظام عليه ويرجع للأستخدامات والمزايا التى نهدف لها ..

أ- الأصدارة الأساسية Basic
* تدعم حتى معالجين فيزيائيين (حقيقيين) فقط supports 2 physical (Socket) CPUs
* تدعم حتى 4 أجهزة وهمية مستضافة فقط Up to 4 virtual guests

ب- الأصدارة المتقدمة Advanced
* تدعم عدد لا نهائى من المعالجات الفيزيائية (حقيقية) supports unlimited physical CPUs
* تدعم عدد لا نهائى من الأجهزة الوهمية المستضافة supports unlimited virtual guests

ملحوظة 1 : حلول الأجهزة الوهمية المدمجة مع
نظام ريدهات لينوكس مقدمة من شركة ريدهات نفسها وليست من برمجيات الطرف
الثالث NOT third-party software مما سضمن توافقية تامة مع النظام ككل .

ملحوظة 2 : يمكنك تركيب ذاكرة Ram للخادم
بدون اى حدود من النظام ريدهات لينكس ولكن الحدود التى ستكون محددة لك هى
امكانيات العتاد Hardware فى تقبلة للذاكرة .

كما ان هناك خدمات تتوفر فى الأصدارين من النظام وخدمات تتواجد فى الأصدارة Advanced فقط

أ- الخدمات المتوفرة فى الأصدارين
* خادم ملفات وخادمن طباعة File & Print Server مثل خادم FTP و NFS
* خادم الويب Web server
* خوادم البنية التحتية للشبكات Infrastructure server مثل DHCP, DNS, Proxy واخرى ..

ب- الخدمات المتوفرة للأصدارة المتقدمة
* خادم تطبيقات Application server مثل Apache Tomcat, JBOSS, Weblogic, WebSphere واخرى ..
* خادم قواعد بيانات Database server مثل MySQL, PostgreSQL, Oracle, Ingres واخرى ..
* Clustering -لم اجد لها ترجمة عربية مناسبة- يمكننا شرحها بانه خدمة
تجعل ان نستفيد من قوة عدد كبير من الأجهزة والخوادم واستخدامها كانها خادم
واحد ذو امكانيات خرافية .
 

elsaid320

ستار جديد
الدرس الثالث : تثبيت ريدهات بالطريقة الأعتيادية من خلال الأسطوانات CDs/DVDs

سنبدأ العمل على ارض الواقع ونبدأ بتثبيت ريدهات على الخادم
Server وسنبدأ بالطريقة التقليدية باستخدام الأسطوانات CDs/DVDs حيث انها
تمثل سهل سبيل فى التثبيت ولكنها قد تكون غير عملية فى احيان اخرى ...

اول شئ نقوم به هو التعديل على تسلسل اولوية الأقلاع Boot sequence فى ال BIOS

وها هى مجموعة من الصور توضح هذه الخطوة من معظم الأجهزة المتواجدة فى الأسواق ..
(هناك عدة شركات تبرمج نظام BIOS مختلف وكل فترة يتم تحديثها وهذا هو سبب اختلاف شكلها واسلوب التعامل معها)

0advancedbootthumb.jpg

award2v.jpg

biosawardboota7v.jpg

setupmenudell.jpg

بالطبع سنقوم بتحديد ال CD/DVD Rom كخيار الأقلاع الأول First Boot ..

بعد ذلك (فى معظم الحالات) نضغط F10 وسيسألك هل ترغب فى حفظ الأعدادات
التى قمت بتغييرها وبالطبع سنوافق بالضغط على حرف Y اى نعم موافق Yes
فسيقوم الجهاز بعمل اعادة اقلاع لجهازك Reboot واثناء ذلك قم بوضع
الأسطوانة الأول CD1/DVD ليقلع منها .

سيظهر لك شاشة اقلاع Boot Screen نظام ريدهات (سينتوس) :
95995182.png

وكما تلاحظوا هناك خيارات عديدة :

1- الضغط على زر Enter من اجل التثبيت Install او الترقية Upgrade من خلال الواجهه الرسومية Graphical mode

2- كتابة الأمر linux text ثم ضغط زر Enter من اجل التثبيت Install او الترقية Upgrade من خلال الواجهه النصية Text mode

3- تضغط على احد الأزرار F1-5 ﻷختيار خيارات اخرى وهى :

F1 : ستتوجه للصفحة الرئيسية والتى نحن متواجدين بها الأن

F2 : تظهر لك اختيارات متعددة لعملية التثبيت Options
191v.png

الأختيار الأول : نكتب اﻷمر linux noprobe حتى لا يتم فحص اجزاء العتاد Hardware
اﻷختيار الثانى : نكتب اﻷمر linux mediacheck حتى يتم فحص Check الوسيط media المستخدم فى عملية التثبيت والذى فى حالتنا الأن هو الأسطوانات CDs/DVDs
الأخيار الثالث : نكتب الأمر linux rescue من اجل ادخالنا لبيئة انقاذ Rescue mode نظام مثبت مسبقاً .
الأختيار الرابع : نكتب الأمر linux dd وسنكون
مطالبين باعطاء النظام اثناء التثبيت اسطوانات التعريفات Drivers disk من
اجل تثبيتها اثناء تثبيت النظام .
الأختيار الخامس : نكتب الأمر
linux askmethod من اجل ان يتم سؤالك Ask عن الأسلوب Method الذى تريد ان
تثبيت النظام به سواء من خلال الشبكة Network او غيرها .. (الطريقة
الأفتراضية من خلال الأسطوانات)
الأختيار السادس : نكتب الأمر linux updates فسيطالبك باسطوانات التحديثات التى لديك وبالتالى سيتم تثبيت النظام محدث
الأختيار السابع : نكتب الأمر memtest86

F3 : ستظهر لك اختيارات عامة General قد تحل لك مشكلة تواجهك فى عملية التثبيت


Click here to view the original image of 630x469px.
191v.png


فمثلاً اذا واجهتك مشكلة فى ابعاد الشاشة Resolution اثناء
التثبيت يمكنك ادخال امر لتحديد الأبعاد فمثلاً يمكنك ان تختار الأبعاد
800*600 او 1024*768 بكتابة الأمر linux resolution=1024x768

F4 : ان تضيف اوامر عند بدأ عمل النواة لتأدية وظيفة معينة


Click here to view the original image of 632x463px

http://img153.imageshack.us/img153/6240/193b.png
فمثلاً نطلب من النواة ان تتجاهل ان الخادم Server به ذاكرة Ram مساحتها
256MB فقط والتى اقل من المساحة التى يطلبها تثبيت النظام وذلك بكتابة
الأمر linux mem=256M noprobe

F5 : يخبرك معلومات عن بيئة اﻷنقاذ Rescue mode والتى قد نحتاجها اذا وجهنا مشاكل فى اقلاع Boot او عمل النظام بعد تثبيته


Click here to view the original image of 633x466px
http://img696.imageshack.us/img696/8934/52237811.png
بيئة الأنقاذ Rescue mode تحتوى على ادوات عديدة مفيدة من اجل اعادة نظامك
للعمل فى حالة توقفة ويمكن الدخول الى بيئة الأنقاذ بكتابة الأمر linux
rescue

فى حالتنا لا نحتاج لاختيارات خاصة للتثبيت لذا سنضغط Enter بدون كتابة اي اوامر ...


Click here to view the original image of 667x373px
18480140.png

لاننا نقوم بالتثبيت من اسطوانات CDs/DVDs فمن المحتمل ان تكون نسخت
تالفة او تلفت مع الوقت او بسبب خدوش بسطح الأسطوانة لذا يطالبك الأن بعمل
فحص لها من اجل التأكد من سلامتها او عدمة .. فى حالتنا الأن نحن نقوم
بتثبيت النظام على جهاز وهمى Virtual Box من خلال ملف ISO (تم فحصة بواسطة
الخوارزمية MD5 أو SHA1 أو اخرى ..) لذا سنطلب الا يقوم بعمل الفحص وذلك
باختيار Skip .

(ملحوظة : يجب عليك ان تفحص ملفات ال ISO Image بمجرد تنزيلك لها من
الأنترنت لتتأكد من سلامتها وذلك من خلال الطرفية Terminal بكتابة الأمر
md5sum file.iso)


Click here to view the original image of 667x367px
سيبدأ عمل برنامج اناكوندا Anaconda المسئول عن عملية التثبيت فى توزيعة فيدورا والتوزيعات المبنية عليها مثل ريدهات (سينتوس) ..
اول شئ يقوم اناكوندا بفحصة قبل البدأ هى كارت الشاشة لديك حيث اذا تم
التعرف عليه مثل الأن كما يتضح من الصورة حيث ان تم التعرف على موديل كارت
الشاشة Video Card : Innotek ... لذا سيبدأ التثبيت من خلال الواجهه
الرسومية Graphical mode اما لم يتعرف على ال Video Card سيقوم بتحويلك
للتثبيت من خلال الواجهه النصية Text mode بشكل تلقائى اجبارى .

مصطلحات هامة :
BIOS اختصار ل Basic Input/Output System اى نظام اساسى للأدخال والأخراج
GUI اختصار ل Graphical User Interface اى واجهه المستخدم الرسومية

سنبدأ الأن فى عملية التثبيت من خلال Anaconda بواجهه رسومية Graphical mode ...

43392115.png


من الأشياء التى معظم الأشخاص عند تثبيتهم النظام هى ملاحظات الأصدار
Release Notes والتى فى الغالب تحتوى على معلومات هامة للغاية مثل مشاكل
معروفة Known Issues او روابط Links لمواقع وصفحات قد تفيدك وتسهل عملك وما
الى ذلك .. لذا يفضل ان تكون اول خطواتك هى الأطلاع على ملاحظات الأصدار
Release notes ...


Click here to view the original image of 667x500px
screenshot1nk.png

بعد اﻷنتهاء من قرائتها قم باغلاقها وأضغط Next ...
87737372.png

يتم سؤالك عن اللغة التى ترغب فى اكمال عملية التثبيت بها (توجد
العربية) مع ملاحظة ان هذا الأختيار لا يعنى ان النظام بعد تثبيته سيدعم
العربية ولكن هذا الأختيار يعنى ان ستقوم بمتابعة عملية التثبيت
Installation باللغة التى العربية .

سنختار الأنجليزية English ثم نضغط Next ..
46188644.png

عليك أختيار لوحة مفاتيحك Keyboard التى تستخدمها سواء كانت امريكية او فرنسية او غيرها ..
فى معظم دول المشرق العربى نستخدم Keyboard US. English ومعظم دول المغرب العربى يستخدموا Keyboard French .. ثم نضغط Next

تظهر رسالة تخبرنا ان جدول اقسام الهارد ديسك Hard disk partition table
(عبارة عن جدول يتم تحديد فيه حجم كل قسم Partition ومعلومات اخرى عنه ..)
لم يتم تجهيزة بعد او غير مقروء وان النظام سيقوم بعمل Partition table
جديد مما قد يتسبب فى ضياع جميع بياناتك ..
فى حالتنا هذا الهارد ديسك جديد ولا يحتوى على اى ملفات ولم يتم تجهيز
له Partition table لذا ظهرت لنا هذه الرسالة .. فسنقوم بالموافقة Yes ...

ملحوظة : فى حالة انك تستخدم توزيعة ريدهات سيسألك بعد هذه الخطو مباشرة
عن Installation Number والذى تسمية شركات برمجية اخرى بعدة اسامى مثل
Product key, Serial number ,etc وهو رقم ترخيص شرائك للدعم من شركة ريدهات
.

يمكنك ان تتجاهلها وتضغط Skip ولكن ذلك يعنى التالى :

* النظام سيكون تجريبى ل 60 يوم فقط .
* لن تستطيع ان تتمتع بالدعم الفنى من مهندسى شركة ريدهات .
* هناك حزم Packages كثيرة لن يمكنك تنصيبها ولن تكون متاحة لك الا بعد شراء الترخيص .
* لن تتمكن من الحصول على التحديثات Updates سواء الأمنية او التطويرة للنظام .


Click here to view the original image of 667x501px

45092969.png


ن اجل تثبيت ريدهات على الهارد ديسك لدينا اختيارات متعددة لعملية التعامل مع الهارد ديسك فى عملية التقسيم Partitioning وهى :

1- حذف جميع الأقسام التى تم عملها من قبل ويقوم النظام بتقسم الهارد ديسك باسلوبة الأفتراضى Remove all partitions ...
2- يحذف النظام اى اقسام مثبت عليها لينوكس مسبقاً واستخدامها لريدهات Remove linux partitions ...
3- ان يستخدم المساحات الفارغة فى الهارد ديسك لعمل اقسام لريدهات لينوكس مع الأبقاء على الأقسام المستخدمة كما هى Use free space ...
4- ان تقوم انت بنفسك بتخصيص التقسيم بالكامل Create custom layout

فى حالتنا سنفضل ان يتم التقسيم بشكل مخصص لنحدد ما هو مناسب بالنسبة لعمل ال Server .. لذا سنختار الأختيار الرابع ونضغط Next ...

ملحوظة : اذا كان هناك اكتر من هارد ديسك متصل
بالجهاز سيتم تسيمتهم اما hda,hdb وهكذا حتى hdz اذا كان الهارد ديسك يعمل
بتقنية PATA اما اذا كان يعمل بتقية SCSI أو Serial-ATA سيتم تسميتهم
sda,sdb وهكذا حتى sdz
60776708.png

يظهر امامنا الهارد ديسك الوحيد المتصل والذى مساحته 8GB والذى سنقوم بتقسيمة Partitioning الأن لعدة أقسام Partitions
نضغط على New لعمل قسم جديد ..


Click here to view the original image of 667x499px
53842140.png

سنقوم بعمل اول قسم للاقلاع Boot Partition والذى سيحتوى على محمل
الأقلاع جروب Grub Boot Loader والنواة Kernel المرفقة مع النظام ..

سنقوم باختيار نظام الملفات EXT3 Filesystem .

سنقوم بتحديد مساحة محددة للقسم Fixed size تكون 200MB مثلاً

ملحوظة : عند تحديث النواة Kernel لا يتم حذف
النواة القديمة ولكن يتم الأحتفاظ بالجديدة والقديمة لتفادى اى مشاكل قد
تواجهنا نتيجة لعدم توافق النواة الجديدة مع احد اجزاء ال Hardware
24855013.png

89368406.png

ثانى قسم سيكون للمنزل Home والذى يحتوى على كافة ملفات المستخدمين
(Desktop, Documents, Applications Profile) لذا وجودها فى قسم منفصل سيكون
جيداً حتى اذا حدثت مشكلة فى النظام يمكننا ان نعيد تثبيته دون التعرض
لملفات المستخدمين Users .

سنقوم باختيار نظام الملفات EXT3 Filesystem .

سنحدد لهذا القسم مساحة محددة Fixed size ولتكن 3GB مثلاً ...



نقوم بعمل قسم للجذر Root Partition والذى يحتوى على ملفات النظام والحزم Packages والبرامج المثبتة وملفات اخرى ..

سنقوم بتحدبد مساحة 4GB لهذا القسم
87883029.png

سنقوم بعمل قسم Swap (قسم مساعد للذاكرة Ram حيث انه يمثل مساحة أضافية
للنظام فى حالة احتياجة لمساح اكبر من الرام الحقيقية) وبالطبع سنختار فى
هذه المرة نظام الملفات Swap filesystem .

سنجعل هذا القسم يستغل المساحة المتبقية من الهارد ديسك (اقصى مساحة ممكنة) وذلك باختيار Fill to maximum allowable size


Click here to view the original image of 667x502px
23044004.png

نقوم الأن بالقاء نظرة سريعة على الأقسام لنتأكد اننا قمنا بتحديدها بشكل صحيح .

ثم نضغط Next ..
81798756.png

هنا نقوم باعداد محمل الأقلاع جروب Grub boot loader حيث يمكننا اضافة Add
انظمة اخرى مثل ويندوز الى قائمة جروب Grub menu حتى يتسنى لنا الأختيار
بين النظامين عند بدأ تشغيل الجهاز .

يمكننا التعديل Edit فى الأنظمة التى تظهر فى Grub menu كما يمكننا الحذف Delete أيضاً

يفضل وضع كلمة سر على محمل الأقلاع Use a boot loader password حتى لا يتاح
ﻷحد التعديل على خيارات الأقلاع والتى قد تمكنه من استخدام المستخدم الجزر
Root user والذى لديه كل الصلاحيات Permissions على الجهاز وبالتالى يمكنه
تخريبه او العبث فى الملفات ..

ثم نضغط Next ...

ملحوظة : ينصح خبراء الحماية باستخدام كلمات السر
المعقدة مما يصعب كسرها والتى قد تحتوى على حروف كبيرة وصغيرة Upper &
Lower Case بالأضافة الى ارقام Numbers ورموز خاصة Special Characters .



سنقوم الأن باعدادات الشبكة الخاصة بال Server ...

اسم الخادم Hostname يفضل ان يعبر هذا الأسم عن الخادم حتى يسهل عليك العمل
عند حدوث مشكلة فمثلاً تسمى احدهم FTP Server واخر Web Server وهكذا ..
اما اذا لدينا خادم اخر يقوم بتوزيع الأسامى Hostnames بشكل تلقائى Automatically via DHCP سيكون علينا جعل الأسم تلقائى من خلاله .

لنقوم باعدادات عناوين بروتكول الأنترنت IP (Internet Protocol) Address بشكل يدوى نضغط على Edit ..

ملحوظة : يتم تسمية كروت الشبكة Network cards كالتالى eth0, eth1 وهكذا ..


Click here to view the original image of 667x501px.
24934871.png

نظام عناوبن IP هناك اﻷصدار الرابع منه IPv4 (وهو الأكثر انتشاراً حتى اﻷن) والأصدار السادس IPv6 ..
من الممكن جعل خادم DHCP Server يوزع هذه العناوين او وضعها يدويا Manual ..
فى معظم الأحيان يتم تحديد عنوان IPv4 بشكل يدوى للخادم فمثلا يمكننا ان
نعطية عنوان 192.168.1.100 وأيضا اعطائة Netmask (قناع النت) والذى من
خلاله يتم تقسيم الشبكة وذلك سيتم شرحة بالتفصيل لاحقاً .
ولكن معظم الأوقات يتم توزيع IPv6 بشكل تلقائى .

سنتركها الأن باعدادتها الأفتراضية ..

أضغط Next .
13338934.png

من هنا نختار المدينة من اجل اعدادات التوقيت ..
اذا كنت تعيش فى احدى البلاد التى يتم تغيير الساعة فى فصل الصيف للأستفادة من ساعات النهار قم بختيار System Clock uses UTC

ثم Next ...


Click here to view the original image of 667x499px
http://img405.imageshack.us/img405/6261/95910531.png
هنا نقوم بتحديد كلمة مرور للمستخدم الجذر root user password .
وكما وضحنا سابقاً انه من المهم ان تكون كلمة المرور معقدة .

ثم أضغط Next ...


Click here to view the original image of 667x502px

39461932.png


من هنا نقوم باختيار البرامج والخدمات التى نرغب بتثبيتها مع النظام ..
فمثلاً نقوم باختيار مجموعة الحزم Packages المسماه Software Development
والتى تحتوى على مجموعة كبيرة من الحزم المهمة للمبرمجين ولنا حيث ان
بدونها لن يمكننا عمل Compile للكود المصدرى Source Code للبرامج المصدرية
.. حيث انها تحتوى على GCC, G++ , etc

واذا كنت تريد ان تخصص برامج بشكل كام الأن تختار Customize now اما اذا كنت ترغب فى ذلك لاحقاً اختار Customize later ..

سأختار تخصيصها الأن Customize now ثم أضغط Next ...
22296160.png

كما تلاحظوا ان البرامج والحزم مقسمة الى تقسيمات رئيسية وتقسيمات فرعية مما يسهل علينا عملية الأختيار ..

قمت هنا باختيار الحزم Packages المسئولة عن دعم اللغة العربية وسأقوم بتخصيص بقية البرامج لاحقاً .

ثم أضغط Next ...



يقوم الأن بفحص اﻷعتماديات Dependencies للبرامج التى قمنا باختيار
تثبيتها حيث ان برامج لينوكس ليست منفصله بذاتها عن باقى البرامج ولكن كل
برنامج يعتمد على حزم Packages ومكتبات اخرى ..
40562864.png


نحن الأن فى المرحلة النهائية من عملية التثبيت ..

يخبرنا الأن بمعلومة هامة وهى ان النظام يحتفظ فى المسار /root بملف يسمى
install.log وهو عبارة عن سجل Log يوضح ما تم فى عملية التثبيت وهو سيفيدنا
فى حالة توقف عملية التثبيت ﻷن باطلاعنا عليه سنعلم سبب التوقف وسبب
المشكلة مما يسهل من حلها .

كما ان فى نفس المسار /root يحتفظ بملف اخر يسمى anaconda-ks.cfg وهو ملف
سيفيدنا فى عملية التثبيت بطريقة Kick Start والتى سنتناولها بالتفصيل
لاحقاً .

أضغط Next لبدأ عملية التثبيت ...

97946093.png

الأن يتم التثبيت ...


Click here to view the original image of 667x496px.
61704304.png


مبروك .. تم التثبيت بنجاح

أضغط على Reboot ﻷعادة تشغيل الجهاز ..


Click here to view the original image of 636x478px

40822662.png


ريدهات (سينتوس) تقلع Booting ﻷول مرة ...
 

elsaid320

ستار جديد
الدرس الرابع : تثبيت ريدهات من خلال ذاكرة فلاش Flash Memory

image33zy.jpg


فى الكثير من الأحيان قد نواجهه مشكلة فى قارئ الأقراص CD/DVD Rom مما
يجعلنا نتجهه للتفكير لطرق اخرى للتثبيت مثل عن طريق الشبكة Network او من
خلال ذاكرة فلاش Flash Memory ...

سنقوم الأن باعداد فلاشة للتثبيت منها .

أولا نحتاج لتجهيز الفلاشة لتكون قادرة على الأقلاع Booting من نظام ريدهات .

ملف الأقلاع الخاص بنظام ريدهات يتواجد داخل القرص CD/DVD داخل المجلد Images ويسمى الملف Boot.iso .


Click here to view the original image of 667x112px

screenshot3bdg.png


سنستخدم برنامج Unetboot لتركيب Boot Image على ذاكرة الفلاش
* البرنامج يعمل على Linux, Windows

يمكنكم تحميل اخر اصدارات البرنامج من

http://unetbootin.sourceforge.net/

عد ذلك نعطى البرنامج صلاحية القابلية للتشغيل Executable كالتالى :

نقوم بفتح الطرفية ونكتب الأمر

من خلال اوبنتو :


كود:

sudo chmod +x /path/unetbootin-linux-000

من خلال فيدورا :


كود:

su -c "chmod +x /path/unetbootin-linux-000"

مع تغيير /path للمسار الصحيح للبرنامج وتعديل اسم ملف البرنامج للصحيح بتعديل 000 لرقم الأصدار الاخير الذى قمت بانزاله

قم بتوصيل ذاكرة الفلاش بجهازك ثم قم بتشغيل البرنامج ..


Click here to view the original image of 530x393px.
screenshot5bo.png


screenshot5bo.png

قم بتحديد ملف ال Boot وأضغط OK


Click here to view the original image of 523x387px.
http://img684.imageshack.us/img684/4664/screenshot4e.png

وبهذا تم تثبيت البوت بنجاح

انتظر لم ننتهى بعد ...

كما لاحظتم اننا قمنا بتثبيت الأقلاع Boot فقط .

قم بنقل ملف ISO Image توزيعة ريدهات لذاكرة الفلاش

قم بتركيب ال Flash Memory بالجهاز المراد تثبيت ريدهات عليه واضبط الأقلاع ليقلع من ذاكرة الفلاش ..

ستظهر لك شاشة الأقلاع الأعتيادية

95995182.png


نضغظ Enter ..




screenshot9t.png


يسألنا عن اللغة فنختار الأنجليزية ونضغط Enter ...
screenshot10t.png

يسألنا عن نوع لوحة المفاتيح KeyBoard التى تستخدمها سواء كانت أمريكية أو اخرى

أختار نوع التى تستخدمها وأضغط Enter ...
screenshot11id.png

من هنا نختار طريقة التثبيت المراد أستخدامها سواء كانت CD/DVD أو من خلال الشبكة أو من خلال ال Hard Drive .

بالطبع لاحظنا عدم وجود أختيار Flash Memory .. ولكن لينوكس يرى ذاكرة
الفلاش مثل ال Hard Drive لذا سنختار هذا الأختيار ونضغط Enter ...
screenshot12g.png

نقوم بأختيار القسم الذى يحتوى على ملفات ال ISO images الخاصة بتوزيعة
ريدهات .. واذا كنت قمت بوضعها داخل مجلد Folder قم بتحديد مساره Path
بكتابته أمام Directory holding images ..

ثم أضغط Enter
19669024.png


سيبدأ فى التعرف على ال Hardware ..

43392115.png
 

elsaid320

ستار جديد
الدرس الخامس : تجهيز خادم lamp

lampmv.jpg


أولا يجب عليك معرفة ماذا تعنى LAMP ..

خادم LAMP هى أختصار ل Linux Apache MySQL PHP/Python/Perl اى ببساطة اعداد
خادم ويب أباتشى Apache Web Server وخادم قواعد بيانات MySQL Database
Server وخادم للغات البرمجة PHP/Python/Perl على نظام لينوكس .

******

1- أعداد خادم LAMP على توزيعة أوبنتو :
ubuntunewlogo.jpg


قم بفتح الطرفية Terminal واكتب الأمر التالى :


كود:

sudo apt-get update

وهو امر يقوم بفحص الحزم الجديدة الموجودة على المستودعات .

سنتكفى بخادم للغة PHP فقط الأن ...

اكتب الأمر التالى فى الطرفية :


كود:

sudo apt-get install apache2 php5 libapache2-mod-php5

وهو سيقوم بتنزيل خادم الويب اباتشى Apache Web Server وخادم لغة PHP5 .

بعد هذه الخطوة تستطيع القول ان لديك Web Server وخادم للغة PHP5 جاهز للعمل ..

اذا رغبت فى تغيير اعدادات الخادم لديك ستقوم بتحرير edit الملف النصى text file الموجود فى المسار التالى :


كود:

/etc/apache2/apache2.conf

ولتقوم باضافة ملفات الى خادم الويب ﻷستخادمها من اى جهاز اخر ستقوم بوضعها فى المسار التالى :


كود:

/var/www

للتأكد من ان خادم Apache يعمل بنجاح قم بفتح اى متصفح ويب Web Browser وقم باداخل رقم ال IP الخاص بك فسيظهر لك التالى :


Click here to view the original image of 647x432px
screenshot2ung.png

وللتأكد من ان خادم PHP5 بعمل بنجاح قم بعمل ملف نصى باى محرر نصوص
مثل Gedit أو Nano ونقوم بكتابة كود برمجى بلغة PHP بسيط كالتالى :


كود:

sudo nano /var/www/test.php

ثم نقوم بكتابة الكود التالى لحفظة فى الملف ..


كود:

# test.php
nano.png


ثم نضغط Ctrl+X لغلق برنامج محرر النصوص Nano فسيقوم بسؤالنا عن رغبتنا فى حفظ الملف ام لا فسنختار نعم بالطبع Yes ثم نضغط Enter ..

قم بفتح اى متصفح ويب Web Browser واكتب فى شريط العنوان Address
bar رقم ال IP الخاص بجهاك متبوع بعلامة / ثم اسم الملف الذى قمنا بأنشائه
كالتالى :

http://ip.address/test.php

او يمكننا استخدام اسم جهازك عوضاً عن رقم ال IP ويصبح العنوان كالتالى :

http://hostname/test.php

اذا ظهرت لديك صفحة مثل التالية (تظهر لك معلومات عن اﻷعدادات الأفتراضية لخادم لغة PHP المثبته لديك)
screenshot3xd.png

مبروك عليك الخادم

ينقصنا الأن تثبيت خادم قواعد البيانات MySQL Database Server ..

لتثبيته نفتح الطرفية Terminal ونكتب الأمر التالى :


كود:

sudo apt-get install mysql-server mysql-client php5-mysql


Click here to view the original image of 660x468px
screenshotwrj.png

ثناء التثبيت سيسألنا عن كلمة المرور Password التى نرغب فى وضعها
لمدير (للجذر Root) الخاص بخادم قواعد البيانات MySQL وسيطلب منك أعادته ثم
أضغط OK

فى حالة رغبتنا فى تعديل اعدادات الخادم فى وقت نقوم بتحرير edit الملف النصى text file الموجود فى المسار التالى :


كود:

/etc/mysql/my.cnf

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

لتثبيت PhpMyAdmin اكتب الأمر التالى :


كود:

sudo apt-get install phpmyadmin

يسألنا الأن عن ما هو خادم الويب Web Server الذى نستخدمة للتكامل معه .. فى حالتنا نختار Apache ثم OK .
screenshot5s.png

يسألنا هل نرغب فى الأعداد التلقائى لخادم قواعد البيانات MySQL ام
لا .. نختار Yes ثم سيطلب منك كلة المرور الخاصة بخادم MySQL الذى حددناه
منذ قليل ثم OK
screenshot9r.png

فى حالة رغبتنا فى تعديل اعدادات PhpMyAdmin فى وقت نقوم بتحرير edit الملف النصى text file الموجود فى المسار التالى :


كود:

/etc/phpmyadmin

للتأكد من ان PhpMyAdmin يعمل نفتح صفحة ويب ونكتب العنوان كالتالى :
ى حالة رغبتنا فى تعديل اعدادات PhpMyAdmin فى وقت نقوم بتحرير edit الملف النصى text file الموجود فى المسار التالى :


كود:

/etc/phpmyadmin

للتأكد من ان PhpMyAdmin يعمل نفتح صفحة ويب ونكتب العنوان كالتالى :

http://domain/phpmyadmin

أو

http://ip-address/phpmyadmin

بالطبع مع تعديل domain ﻷسم الخادم الخاص بنا أو تعديل كلمة ip-address الى عنوان ال IP الخاص بنا .

تظهر لنا شاشة تسجيل الدخول ..
screenshot10z.png

نكتب أسم المستخدم root وكلمة المرور Password التى حددناها مسبقاً
screenshot11h.png


يظهر لنا PhpMyAdmin مما يعنى ان تم تثبيته ويعمل بنجاح

أعداد خادم LAMP على توزيعة فيدورا :
----------------------------------

fedoralogo.png


لمن يملك ال DVD الخاص بتوزيعة فيدورا يمكنه الأستفادة من وجود حزم
Packages الخاصة بالخوادم المختلفة فى أختيارها لتثبيتها بسهولة أثناء
تثبيت التوزيعة كما بالصورة
fedoralamp.png


أما فى حالة ان التوزيعة مثبته لديك مسبقاً أو انك تملك النسخة ال CD ستقوم بالتالى :


1- بدأ الأعداد :

لقد قمت باستخدام اسم server1.example.com كاسم للخادم hostname الذى أقوم
بعملة واستخدمت عنوان ال IP التالى 10.0.2.15 ... بالطبع قم باستبدالهم
بالخاص بك .

******

2- تثبيت خدام قواعد البيانات MySQL Database Server :

نقوم فى الأول بفتح الطرفية Terminal ثم الولوج Login بالمستخدم الجذر root باستخدام الأمر التالى :


كود:

su



من اجل تثبيت MySQL نقوم بكتابة الأمر التالى :


كود:

yum install mysql mysql-server



يخبرنا بمساحة الحزم Packages التى سيتم تحميلها من الأنترنت والمساحة التى
سيتم استغلالها من ال Hard disk وهل نريد التثبيت ام لا .. بالطبع نخبره
بنعم Yes .
screenshot2r.png


لجعل خادم MySQL يعمل اثناء الأقلاع Booting نكتب الأمر التالى :


كود:

chkconfig --levels 235 mysqld on



وليبدأ عمل MySQL Server نكتب الأمر التالى :


كود:

/etc/init.d/mysqld start



لعمل كلمة مرور Password للمستخدم الجذر root لخادم MySQL نكتب الأمر التالى :


كود:

mysqladmin -u root password yourrootsqlpassword



ولعمل اتصال connect بخادم MySQL الخاص بموقعنا server1.example.com نكتب الأمر التالى :


كود:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword

******

3- تثبيت خادم الويب أباتشى Apache Web Server :

من اجل تثبيت Apache نقوم بكتابة الأمر التالى :


كود:

yum install httpd



يخبرنا بمساحة الحزم Packages التى سيتم تحميلها من الأنترنت والمساحة التى
سيتم استغلالها من ال Hard disk وهل نريد التثبيت ام لا .. بالطبع نخبره
بنعم Yes .

لجعل خادم Apache يعمل اثناء الأقلاع Booting نكتب الأمر التالى :


كود:

chkconfig --levels 235 httpd on



وليبدأ عمل Apache نكتب الأمر التالى :


كود:

/etc/init.d/httpd start



لنتأكد من عمل Apache Web Server نقوم بفتح اى متصفح انترنت Web Browser ونكتب عنوان ال IP الخاص بالخادم Server :
screenshotfu.png


بظهور هذه الصفحة يعنى ان الخادم يعمل بنجاح

ملحوظة:

ملف أعدادات خادم اياتشى فى المسار التالى


كود:

/etc/httpd/conf/httpd.conf



كما ان هناك ملفات اعدادات اخرى فى المسار التالى


كود:

/etc/httpd/conf.d/

******
4- تثبيت خادم لغة PHP :

من اجل تثبيت خادم PHP نقوم بكتابة الأمر التالى :


كود:

yum install php



ثم نقوم باعادة تشغيل خادم Apache ليعمل خادم PHP وذلك بكتابة الأمر التالى :


كود:

/etc/init.d/httpd restart

******

5- تجربة خادم PHP :

سنقوم بعمل ملف نصى باى برنامج تحرير ويتم وضعة فى المسار /var/www/html/
وسنقوم بتسميته info.php وذلك بكتابة الأمر التالى (فى الأمر نستخدم محرر
النصوص Nano) :


كود:

nano /var/www/html/info.php



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


كود:

phpinfo();
?>
screenshot1yi.png

الأن نقوم بفتح ال Web Browser ونكتب عنوان ال IP متبوع باسم الملف الذى قمنا بأنشائه


كود:

http://10.0.2.15/info.php
screenshot2vt.png


ظهور هذه الصفحة يعنى ان الخادم يعمل بنجاح

اذا قمت بتصفح الصقحة السالف ذكرها ستجد انها تعرض أيضاً معلومات عن
الملحقات Modules المرفقة مع خادم PHP ... ولكنك ستجد ان ليس منها خادم
قواعد البيانات MySQL !!

******

6- أضافة دعم قواعد البيانات MySQL الى خادم PHP :

من اجل تثبيت حزمة php-mysql نقوم بكتابة الأمر التالى :


كود:

yum install php-mysql



ملحوظة: يمكنك تثبيت المزيد من ال Modules للخادم مثل


كود:

php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-eaccelerator php-magickwand php-magpierss php-mapserver php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidy



ثم نقوم باعادة تشغيل خادم Apache لتعمل ال Modules التى قمنا بتثبيتها وذلك بكتابة الأمر التالى :


كود:

/etc/init.d/httpd restart



الأن قم بأعادة تحميل reload للصفحة التى قمنا بفتحها مسبقاً (http://10.0.2.15/info.php) لنتأكد من عمل ال Module



بظهور هذه الصفحة يعنى ان Module يعمل بنجاح

******

7- تثبيت PhpMyAdmin :

ان PhpMyAdmin عبارة عن واجهه ويب Web interface ﻷدارة قواعد بيانات manage MySQL databases

من اجل تثبيت PhpMyAdmin نقوم بكتابة الأمر التالى :


كود:

yum install phpmyadmin



ﻷعداد PhpMyAdmin سنحتاج الى تحرير ملف الأعدادات Conf وذلك باستخدام اى محرر نصوص (مثلاً Nano) كالتالى :


كود:

nano /etc/httpd/conf.d/phpMyAdmin.conf



لنتمكن من أستخدامة (PhpMyAdmin) نقوم بأضافة الأعدادات التالية :


كود:

# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL

Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
#
# order deny,allow
# deny from all
# allow from 127.0.0.1
# allow from ::1
#

# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#

Order Deny,Allow
Deny from All
Allow from None


# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#
#
# SecRuleInheritance Off
#
#



ثم نقوم باعادة تشغيل خادم Apache ليعمل PhpMyAdmin وذلك بكتابة الأمر التالى :


كود:

/etc/init.d/httpd restart



لنتأكد من عمل PhpMyAdmin نقوم بفتح اى متصفح انترنت Web Browser ونكتب
عنوان ال IP الخاص بالخادم Server متبوع ب /phpmyadmin كالتالى :


كود:

http://10.0.2.15/phpmyadmin/

screenshot4mu.png

هور هذه الصفحة يعنى ان PhpMyAdmin يعمل بنجاح

******

بهذا أنتهى الدرس الخامس
 

elsaid320

ستار جديد
دورة في قواعد البيانات مع Gambas

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

إن شاء الله سنبدأ مع قواعد البيانات في لغة البرمجة Gambas

بالنسبة للGambas فهي تتعامل مع العديد من قواعد البيانات من أهمها MySql و SQLite وسنبدأ مع هذان النوعان لأهميتهما

تختلف SQLite عن MySql أن الثانية تحتاج لخام يجب تثبته في الجهاز أو عبر
الشبكة بمافيها الأنترنيت ويتم الاتصال بقاعدة البيانات عبر منفذ في الغالب
يكون 3306 .
أما SQLite فلا تحتاج لخام بل يتم التعامل معها عبر ملف قاعدة البيانات مباشرة.
فلو أردنا التعامل مع الشبكات سيكون الاختيار الانسب هو MySql ولو كان
تعاملنا لا يحتاج للشبكات حيكون الاختيار الأنسب هو SQLite هذا باختصار،
الأن ندخل في الموضعنا هو التعامل مع قواعد البيانات وسوف نتعامل مع
النوعين معا بحيث لا يوجد بينهما اختلاف من ناحية الإستعلام فكهما يتعامل
مع لغة SQL فلا داعي للقلق.

كنت قبل ذلك شرحت كيفية ربط الاتصال البرنامج مع قواعد البيانات فلا داعي للتكرار ولمن


الان سوف أقوم بالشرح على أساس أنكم اطلعتم على الدرس لي في الرابط

كما رأينا في الدروس السابقة كيفية إنشاء والاتصال بقاعدة البيانات كما في الكود التالي:
MySQL :

كود PHP:


PUBLIC hcon AS NEW Connection

PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result

hCon.Type = "mysql"
hCon.Host = "localhost"
hCon.Port = "3306"
hCon.Name = "test3"
hCon.Login = "root"
hCon.Password = ""
hCon.Open()

END






بالنسبة SQLite


كود PHP:


PUBLIC hcon AS NEW Connection

PUBLIC SUB Form_Open()
DIM pat AS String
DIM hT AS Table
DIM hResult AS Result

pat = Application.Path
pat = pat & "/"
hCon.Close()
hCon.Type = "sqlite3"

IF Dir(pat).Exist("data.db") THEN
hCon.Name = pat & "data.db"
ELSE
hCon.Host = pat
hCon.Open()
hCon.Databases.Add("data.db")
hCon.Close
hCon.Host = ""
hCon.Name = pat & "data.db"
END IF
hCon.Open()
END






هذا فيما يخص الاتصال بقاعدة البيانات
أما فيما يخص بإنشاء جدول في داخل قاعدة البيانات فيكون الكود كالتالي :

كود PHP:


WITH hCon
IF NOT .Tables.Exist("Tel") THEN
hT = .Tables.Add("Tel", "MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci")
WITH hT
.Fields.Add("id",db.Serial)
.Fields.Add("nickname", db.String, 32)
.Fields.Add("Tel", db.String, 50)
.Fields.Add("Address", db.String, 0)
.PrimaryKey = ["id"]
.Update
.Indexes.Add("nickname", "nickname", TRUE)
END WITH
END IF
END WITH
Message.Info("لقد تم الاتصال بقاعدة البيانات وإنشاء الجدول بنجاح")






الأن بعدما أنشأنا قاعدة البيانات نريد إدخال البيانات فيها :


كود PHP:



hCon.Begin()
hResult = hCon.Create("Tel")
hResult!nickname = "bouhssini"
hResult!Tel = "0123456"
hResult!Address = "Maroc"
hResult.Update
hCon.Commit()






الان قد أدخلنا بيانات للقاعدة ، نريد الأن عرض البيانات :


كود PHP:


hResult = hCon.Exec("SELECT * FROM Tel;")
hResult.MoveFirst
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address






هنا نفذنا الاستعلام وعرضنا البيانات في صناديق العرض
لو أردنا الانتقال لأول سجل في الجدول Tel نستخدم الأمر هذا

كود:

hResult.MoveFirst

ولو أردنا السجل التالي نستخدم الأمر هذا

كود:

hResult.MoveNext

ولو أردنا السجل السابق نستخدم

كود:

hResult.MovePrevious

أما لو أردنا السجل الأخير

كود:

hResult.MoveLast
 

elsaid320

ستار جديد
الدرس الثاني

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

كما وعدناكم ها نحن سنكمل الدروس في التعامل مع قواعد البيانات في Gambas
عرفنا فيما سبق :


ربط البرنامج بقواعد البيانات
وإنشاء جدول داخل القواعد البيانات
إدخال البيانات في الجدول
عرض البيانات والتنقل داخل السجلات

اليوم سوف نتعلم كيفية البحث داخل قواعد البيانات
نبدأ أولا بطريقة البحث عن طريق لغة الاستعلام SQL ، نفترض أننا نريد البحث عن
شخص اسمه مثلا : bouhssini
وإليكم المثال التالي :


كود PHP:


hResult = hCon.Exec("SELECT * FROM Tel WHERE nickname = 'bouhssini' ;")

IF hResult.Available THEN
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
ELSE
Message.Info("لا يوجد أي بيانات بالبحث الذي أدخلت")
END IF






ممكن نبحث عن طريق الاسم ورقم الهاتف كما في الكود التالي :


كود:

hResult = hCon.Exec("SELECT * FROM Tel WHERE nickname = 'bouhssini' AND Tel = '0123456';")

وهكذا يعني نستخدم لغة الاستعلام SQL عادي .

الان نذهب لطريقة البحث الثانية ، نفس المثال لكن بطريقة ثانية إليكم المثال

كود PHP:


hResult = hCon.Find("Tel", "nickname = &1 AND Tel = &2", "bouhssini", "0123450")
IF hResult.Available THEN
T1.Text = hResult!id
T2.Text = hResult!nickname
T3.Text = hResult!Tel
T4.Text = hResult!Address
ELSE
Message.Info("لا يوجد أي بيانات بالبحث الذي أدخلت")
END IF






هنا استخدمنا أمر Find الذي هو عنصر من عناصر hCon ، في هذا العنصر يحدد لنا أول خيار
لتعريف الجدول الذي نبحث بداخله ، ثاني خيار هي عبارات البحث ونرمز للمتغييرات بـ :

كود:

&1 &2 &3 ...

حسب العدد المتغييرات لي نستخدمها في البحث ، وأخيرا الخيار الرابع عبارة عن قيمة هذه المتغييرات
كما في مثالنا ونفصل بينها بفاصلة

كود:

"bouhssini","0123456",...

وهكذا.

في درسنا الاحق إن شاء الله سنتعلم كيفية ربط صنادق الحوار بقاعدة البيانات تلقائيا
والان أستودعكم الله وأسأل الله الكريم أن أكون قد أفذت إخوتي.

وأحب أن أبشر الاخوة أني بصدد تصميم برنامج بلغة Gambas للشات يدعم الصوت والصورة
مثل برنامج MSN لكن الميزة لي حتتوفر لنا أن البرنامج سوف يدعم الصوت والصورة وأيضا
سوف أعمل نسخة لأصحاب الوندوز باستخدام VB6 بمعنى أنه ممكن تتكلم مع شخص
يستخدم الوندوز وأنت تستخدم لينكس ، وأن شغال عليه هذه الايام ، وهذه صورة أولية للبرنامج
attachment.php
 

elsaid320

ستار جديد
نقاش و شرح للiptables حدث على قناة المجتمع في IRC

هذا نص الحوار بعد التعديل عليه بما يتناسب مع الموضوع.

سلام مرة اخرى
عليكم السلام مرة أخرى
شو؟ ع بالكم درس بالiptables?
لما لا
طيب
بس 2 د
* center has quit (Ping timeout: 264 seconds)
* egyDev (~egyDev@fedora/ahmed-araby) has joined #linuxac
* EXp1r3d has quit (Ping timeout: 265 seconds)
* center (~center@109.205.114.74) has joined #linuxac
حسنا سنبدأ الدرس
center,
نعم
درس في الiptables اي الحماية
درس في الiptables اي الحماية عن طريق الfirewall
* hicham (~hicham@fedora/hicham) has joined #linuxac
طيب
راح اعطيكم رابط
الرجاء فتحه
http://www.netfilter.org/documentati...g-HOWTO-5.html
السلام عليكم و رحمة الله تعالى و بركاته
هذا مثال على الiptables
hicham, و عليكم السلام
و عليكم السلام و رحمة الله و بركاته
وعليكم السلام
جدار النار في لينيكس اسمه iptables
الجدار ممكن انه يقبل المعلومة اي ACCEPT
لاحظ المثال
او رفضها
أي REJECT
الجدار ممكن انه يرفضها المعلومة اي DENY
اقصد DROP بدل من DENY
الجدار ممكن انه يرفضها المعلومة اي DROP
اي يسقطها
و ممكن ايضا انه يتركها تمر من خلاله.. لكن هذا في حاله نسميها FORWARD
و هذه تنفع لمشاطرة الانترنت مثلا
نكمل
صحيح يا هشام
superlinux, وايه الفرق بين الرفض والاسقاط
الرفض هو الإسقاط
هناك ثلاثة جداول تضع فيها قوانين او شروط مرور المعلومة
hicham, هناك فرق
ما هو superlinux ؟
الرفض اي REJECT يعطي رسالة خطأ كما اذكر
!google iptables reject vs drop
egyDev, * Google: http://seclists.org/basics/2003/Apr/195 More: http://www.google.com/search?q=iptables+reject+vs+drop
لكن الاسقاط هو كما الاهمال..
يعني انك لا تكترث..
هناك ثلاثة جداول تضع فيها قوانين او شروط مرور المعلومة
هناك جدول التصفية اي filter
و هذا الجدول هو الجدول المفترض اذا لم تحدد الجدول
به تعمل على تصفية المعلومات
الجدول الثاني هو المتعلق بترجمة العناوين اي NAT
جدير بالذكر أن فيدورا تأتي بواجهة رسومية ل iptables
هو يُستعمل كثيرا عند تمرير المعلومة عبر الجدار و عند مشاطرة الانترنت
الجدول الاخير هو للتغيير في المعلومة التي وصلت حد الجدار . يسمى mangle
اذا لم تخني الذاكرة فإن NAT هو ترجمة عنوان أيبي على الشبكة إلى عنوان ماك خاص
لا
غلط
* egyDev يعتقد ان NAT=Network Address Translation=Network L3 Address translation
الNAT هو التعبير عن عنوان في الشبكة الداخلية بعنوان من الشبكة الخارجية.
الشبكة الخارجية كل و جل ما تظنه هو ان هناك جهازا واحدا عاديا. لكن الحقيقة عكس ذلك
مثلما انا شرحتها هو التعريف العملاني
المبني على التطبيق و الخبرة
* achilles has quit (Quit: Leaving)
اي اسئلة؟
* meGenius (~meGenius@ner-as23824.alshamil.net.ae) has joined #linuxac
هناك ايضا خمس حلقات او مراحل في الجدار
1- الادخال اي INPUT. و هو اي معلومة تدخل الى قلب الجدار
2- الاخراج\المخرج اي OUTPUT. و هو اي معلومة تخرج من قلب الجدار
3- التمرير اي FORWARD. و هو اي معلومة تمر عبر الجدار
4- ما-قبل-تغيير-الطريق اي PREROUTING
5- ما-بعد-تغيير-الطريق اي POSTROUTING
هنا طريق او وِجهة المعلومة
اي اسئلة؟
عاشت ايدك
اوك
center, نكمل
هذه هو مخترعها في المثال "block"
هو عمل طريقة لتجميع الشروط في مجموعة سماها block

بمعنى حظر او صندوق
center: -N
فقام في آخر سطرين قال كل مَنْ في الblock
يروحو الى الINPUT و الFORWARD
تتم مقارنة المعلومات بالشروط المذكورة فيblock
آه يا center
هذه "N-" لاختراع مجموعة شروط في بوتقة واحدة
superlinux, ok
هي "A-" لإضافة شرط الى بوتقة.
و هنا يضيف الشرط الى البوتقة block
ال "ppp0 !"
تعني انه اي شيء عدا ppp0
هو الفاكس مودم مثلا ppp0
ال i- هو اشارة الى ما هو المنفذ\كارت الشبكة التي تدخل من خلاله المعلومة. و هنا هو ppp0
>superlinux< ال m- هو بداية للمقارنة و التحقق من هوية المعلومة. بناء على ما يليها يتم القبول او الرفض او الاسقاط.
superlinux, ok
و بس هذا هو باختصار
كده انتهى
 

elsaid320

ستار جديد
شرح إدارة نظام التشغيل لينكس بالصوت والصورة اعتمادا على دورات ريدهات

لسلام عليكم
الإخوة الكرام ...
لقد قمت بالفعل بالبدء بشرح وتسجيل كورس لينكس يعتمد على redhat fast track
كمرجعية ... وقمت بإضافة جزء في البداية لشرح الأساسيات essentials حيث لا
يحتوى ال fast track على الاساسيات ...

وبإذن الله ستجدون أن الشرح رائع جدا ومُفيد ويحتوى الكثير من النقاط الإضافية التي تأتي من الخبرة العملية ...
وقد تم بالفعل تسجيل حوالي 25 ساعة ... تم الانتهاء فيهم من الشرح المكثف
لكورس ال essentials كاملا "بإيجاز ولكن بتركيز عى النقاط المهمة في حوالي
18 ساعة " ... وكذلك تم شرح بعض الأجزاء من ال fast track ...

أنا أرغب الآن في المساعدة في مونتاج تلك الفيديوهات ومراجعتها حيث أنه ليس
لدي الوقت الكافي لذلك ... بحيث أنه سوف يتم رفع تلك الفيديوهات بجودة
عالية للتحميل مجانا من archive.org وتحت رخصة http://creativecommons.org/licenses/by-nc-sa/3.0/ Non-commercial Modifiable share-alike ...
 

elsaid320

ستار جديد
دورة البرمجة بإستخدام Gambas (( المقدمة + برنامج الترحيب ))

يشرح المطور الرئيسي لجامباس Benoît Minisini الحاجة والدافع لإصدار هذه اللغة:






هذا المشروع يهدف إلى بناء بيئة تطوير رسومية استناداً إلى مترجم بيسك
BASIC حتى يكون لدينا لغة مشابهة لـ Visual Basic ™ تعمل على ™ Linux.

ولازالة اى إلتباس . gambas لم يكن متوافقاً مع Visual Basic و لن يكون
كذلك ابدا. انا مقتنع انهما متشابهان في بناء اللغة ولكن خصائص Gambas أفضل
بكثير من خصائص VB;-)






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


البرنامج الأول : مرحبا بالعالم Hello World

سأتطرق لطريقتين الأولى الرسومية والثانية النصية

الطريقة الرسومية :

١- نقوم بفتح بيئة التطوير جامباس من قائمة ملف File نختار مشروع جديد New Project لتظهر لك هذه النافذة

attachment.php

هنا أجدها فرصة لشرح المشاريع التي يمكنك عملها بجامباس
١- Graphical application
تطبيق بواجهة رسومية : يتميز هذا النوع بأنه يحدد المكتبة المستخدمة لرسم
البرنامج بناء على البيئة التي تم تشغيله فيها فإن كانت KDE فسيعتمد على QT
وإن كانت Gnome أو Xfce أو lxde فسيعتمد على GTK+

٢-QT graphical application
تطبيق بواجهة رسومية يعتمد على QT

٣-GTK+ graphical application
تطبيق بواجهة رسومية يعتمد على GTK+

٣-commnd-line application
تطبيق نصي أقرب إلى مفهوم ال script

٤- SDL application
تطبيق يعتمد على مكتبة SDL وأغلب إستخدامه في الألعاب

٥- CGI application
لعمل تطبيقات إنترنت قريبة من مفهوم ASP


نختار الخيار الأول Graphical application ونضغط على التالي NEXT نسمي البرنامج hello world

نضغط على الفورمات Forms ثم FMain على الفورم ضغطتين بزر الفارة الأيسر سيظهر لنا محرر الأكواد

نحت الإجراء PUBLIC SUB Form_Open() نكتب التالي

كود:

Message.Info("Hellow World", "OK")


ليكون الشكل النهائي لها هو


كود:

PUBLIC SUB Form_Open()
Message.Info("Hellow World", "OK")
END



سأقوم بشرح مختصر للكود :

كود:

Message.info


هنا نطلب من جامباس أن يقوم بعرض رسالة معلومات عرفناها باللاحقة .info الصيغة العامة للرسائل هي


كود:

message.type("Message Text surounded by qouts","Button1","Button2","Button3")



وهناك خمسة أنواع من الرسائل المضمنة باللغة نأخذها بالترتيب :
أ- Delete رسالة حذف
مثال

كود:

message.Delete("هل تريد حذف الملف؟","نعم","لا")



ب- Error رسالة خطأ

مثال

كود:

message.Error("حدث خطأ أثناء النسخ","أعد المحاولة","إغلاق")


جـ-Info رسالة معلومات

مثال

كود:

message.Info("تمت عملية النسخ","موافق")



هـ-Warning رسالة تحذير

مثال

كود:

message.Warning("سيأخذ الإجراء وقتا طويلا فضلا إنتظر !","موافق")


بعد إنتهائنا نضغط على الزر play أو F5 من لوحة المفاتيح سيظهر لنا الشكل التالي


الطريقة النصية :
من ملف > مشروع جديد نختار command-line application نختار إسم مثلا hellow cmdline ثم التالي
نلاحظ من الصورة أدناه أنه لا يوجد سوى ملف واحد (موديول Module ) وبداخله كتب التالي


كود:

PUBLIC SUB Main()

END



بين السطرين نكتب الجملة التالية

كود:

"PRINT "Hello World



ليكون الشكل النهائي لها كالتالي

كود:

PUBLIC SUB Main()
PRINT "Hello World"
END


نضغط على زر play أو F5 لنرى المخرج في الأسفل

كود:

Hello World







*التعليقات:

التعليقات مهمة جداً في البرامج مفتوحة المصدر , وفي البرامج التي يعمل
عليها أكثر من شخص في وقت مختلف فهي تمكن المبرمج من فهم فائدة الكود
تخيل أمامك كود كبير 500 سطر , يؤدي عدة وظائف وتحتاج للبحث عن وظيفة معينة
ستتعب بالتأكيد من البحث عنها أو تجربة الكود ككل لكن إن كان المبرمج لهذا
الكود قد وضع تعليقات تبين وظيفة كل جزئية , فستفهم الكود بسرعة كبيرة
وستوفر على نفسك الكثير من الوقت

التعليقات هي ببساطة , سلاسل نصية تكتب داخل الكود لتوضيحه, ولكن المترجم يتجاهلها ولا تدخل في التنفيذ
لإدراج تعليق في البرنامج لا تحتاج سوى إلى العلامة (') لتجد أن كل ما يلحقها قد تم تجاهله من قبل المترجم وإعتبره تعليقا

لنطبق ذلك على برنامجنا السابق

نضغط على ملف > إفتح مثال > نذهب الى مكان حفظنا للمشروع

من الجهة اليمنى نضغط مرتين على FMain
لنجد أنه ظهر لنا الكود الذي كتبناه سابقا

كود:

PUBLIC SUB Form_Open()
Message.Info("Hellow World", "OK")
END


نأتي في نهاية السطر التالي


كود:

Message.Info("Hellow World", "OK")



ونكتب بعده مباشر

ليكون الشكل النهائي كالتالي

كود:

PUBLIC SUB Form_Open()
Message.Info("Hellow World", "OK")'إظهار رسالة ترحيب
END


نضغط الزر F5 وسنرى أنه لا تأثير لما كتبناه على سير البرنامج

**هناك ملاحظة يجب أخذها بعين الإعتبار وهي أنه عندما يكون التعليق يحتوي
على أكثر من سطر يجب أن تسبق كل سطر من أسطر التعليق بالعلامة (')
**ملاحظة أخرى يمكنك كتابة العلامة (') اليا بتحديد جملة التعليق والضغط على الزرالموجود أدناه
 

elsaid320

ستار جديد
أساسيات برمجة الـ ShellScript

بسم الله الرحمن الرحيم


كما قلت في الدرس السابق أن هذا الدرس سيكون المدخل إلى
عالم البرمجة بالـ ShellScript و إن شاء الله سيستمر هذا الدرس حتى
الإحتراف بإذن لله...

الكثير يخطلط به الأمر بين bash و sh و الـ Terminal و الـ ShellScript

يُعتبر bash و sh هم المسؤلين عن الترجمه لملفات السكربت أو الأوامر
و الـ Terminal هي النافذه التي نتعامل من خلالها مع سطر الأوامر
أما الـ ShellScript فهي لغةالبرمجة بالـ Shell

هذا
الدرس مقسم إلى عدة أجزاء حتى يسهل إستيعابه و الأمثله الموجوده يستحسن
دائماً أن تكتبها بيدك حتى تكون عادة قراءة و كتابة الكود موجوده عندك بعد
الإنتهاء من سلسلة هذه الدروس , أي لا تعتمد على النسخ و اللصق ( Copy
& Paste )

نبدأ الدرس....

الجزء الأول


إنشاء ملفات ShellScript



يمكنك إنشاء ملف ShellScript عن طريق أي ملف نصي عادي و بعد ذالك نُغير أسم الملف و نُضيف إلى أخر الملف sh. الذي يسمى Extantion

في المثال التالي قمنى بكتابة ShellScript صغير في ملف أسمة hello.sh وظيفتة هي طباعة رسالة ترحيب على الشاشة


كود:



# hello.sh
# This is my first shell script
printf “Hello! Bash is wonderfu.”
exit 0




نلاحظ أن أول سطر بدأ بعلامة # وهذه العلامة تختص بالتعليقات فقط أي أنه يمكنك كتابة أي شيئ بعد هذه العلامة و سيتم تجاهل الـBash لها , و ينتهي التعليق بنهاية السطر .



تكتب التعليقات لتكون غنية بالمعلومات اللازمة عن وظائف هذه الأوامر وليس وظائف أمر أمر , ولكي يسهل عملية الكشف عن الأخطاء فيما بعد وهذا لإحتواء وصف سريع عن وظائف ملف ShellScript معين فبالتالي يمكن إلغائه أو تعديله بسهوله أفضل من إختبار ملف ملف وخاصة في المشاريع التي تعتمد على عدد كبير من ملفات الـShellScript



الأمر exit و متبوع بالصفر 0 , معنها أنه يخبر الـ Bash أن الأوامر قد إنتهت بنجاح



يمكنك الأن تنفيذ السكربت و مشاهدة النتائج








$bash hello.sh







إذا لم يكن هناك أي أخطأ , سيظهر لك الرساله التاليه






Hello! Bash is wonderful.











إنشاء ShellScript بطريقة أحترافيه



نفترض أنك تريد الأن تنفيذ الأمر sync عندما تكون متأكد أنه لا يوجد أحد على النظام .

لتنفيذ هذا الأمر تابع هذا السكربت


كود:



USERS=`who | wc -l`
if [ $USERS -eq 0 ] ; then
sync
fi


هذا العمل سليم وثابت على الـBash , ولاكن راعي هذه الأسئله التاليه :



كيف سيعرف لينكس أن هذا Bash Script

إذا كان هناك عدد 0 من المستخدمين , فمن الذي سينفذ هذه الأوامر ؟

كيف سأعرف أن هذا السكربت ككل قد نجح النظام في تنفيذها أم لا ؟

ماذا سيحدث إذا تم مسح الأمر sync عن طريق الخطأ قبل تنفيذ هذا السكربت , أو إذا كان مدير النظام قد قام بتغير الصلاحيات في تنفيذ هذه الأمر ؟



لغة الـ ShellScript لغه مرنة جداً , فقط تحتاج أن تعمل عليها بشكل تفاعلي , ولاكن عندما تكتب السكربت يجب مراعات أن هذه المرونه قد تضعك أمام ثغرات أمنيه خطيره أو غير متوقعه تكون أنت المسؤل عنها .

لذالك أستعملها بأسلوب " محترف " , فيجب عليك تنفيذ و قراءة المزيد ولا تعتمد على النسخ و اللصق في التنفيذ .



دعونا الأن نتعمق أكثر في ملفات السكربت

فبُنية ملف السكربت تنقسم إلى خمسة أقسام





The Header

Global declarations

Sanity checks

The main script

Cleanup



جميع الأقسام السابقة تلعب دور كبير جداً في تصميم السكربت , في الخطوات التاليه سترى كيف يمكنك تحسين نفسك في تتبع الأمثله عن طريق هذه الأقسام



The Header



في هذا القسم يحتوى على

نوع الملف السكربت هل هو sh أم bash ... إلخ

من الذي كتب هذا السكربت

ما هو رقم الإصدار

ما وظيفة السكربت أو شرح مبسط عن وظائفه

ما إذا كان هناك إختيارت له أم لا وهل هي إختيارات خارجيه أم داخليه

طريقة التعامل معه



يحتوي أول سطر في جزء الـ header على علامة مميزه وهي علامة ( # ) و هي العلامه الخاصة بالتعليقات كما ذكرت من قبل ولاكن في هذا السطر الأول في بداية ملف السكربت نكتب هذه العلامة ( # ) متبوعة بعلامة ( ! ) و بعدها نكتب مسار المترجم .



ما معنى مسار المترجم ولماذا نضيفة ؟

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

في أغلاب التوزيعات تستخدم Bash و هنا تكون المعلومه قد حددنا ملامحها .. لماذا ؟

لأني سأكتب في أول سطر ملف السكربت مكان تواجد مترجم الـ Bash وهذا سهل جدا تحديده وهذا عن طريق تنفيذ هذا الأمر لكي نعرف مكان المترجم






$which bash
/bin/bash







يمكنني أن أكتب الناتج الأن في أول سطر وهذا لكي يكون السطر الأول بهذه الصوره






#!/bin/bash







ونفس الحال إذا كنت مستخدم للمترجم sh أو غيرهم





الصوره النهائية لمنطقة الـ header تكون بهذه الصوره




كود:

#!/bin/bash
#
# Flush disks if nobody is on the computer
#
# Seif Abaza
# CVS: $Header$


shopt -s -o nounset




وصف سريع لما هو مكتوب :

مسار المترجم الذي سنستعمله

وصف سريع لما يقوم به السكربت

من الذي كتب السكربت

خاصية CVS سأشرحها فيما بعد إن شاء الله



الأمر المكتوب هو أمر يكتشف بعض الأخطاء الإملائية الغير معروفه من قبل الإبلاغ للمتغيرات .



Global declarations



جميع الإعلانات والتي تنطبق على مجمل السكربت ينبغي أن تكون في مقدمة السكربت ، تحت الـ header. وهي منطقة الـ Global فوضعها جميعاً في مكان واحد تجعل من السهل على أي شخص أن يصل إليها أثناء قراءة السيناريو الخاص بالسكربت



مثال :


كود:



# Global Declarations
declare -rx SCRIPT=${0##*/} # SCRIPT is the name of this script
declare -rx who=”/usr/bin/who” # the who command - man 1 who
declare -rx sync=”/bin/sync” # the sync command - man 1 sync
declare -rx wc=”/usr/bin/wc” # the wc command - man 1 wc




Sanity Checks



القسم التالي وهو قسم الـ Sanity Checks يحمي السكربت من التغير الغير متوقع من الجهاز , في العادي عندما تنفذ الأوامر في سطر الأوامر , فيقوم الـ Bash بالبحث عن أماكن الأوامر داخل الجهاز , إذا لم يستطيع العثور عليها فربما من خطأ كتابي في الأمر وعندها سيقوم Bash بإخراج تقرير عن الخطأ , هذا السلوك الذي يتبعه Bash سلوك ممتاز للعمل معه بشكل تفاعلي لأنه بهاذا يوفر عليك الوقت و أي خطأ سيكون من السهل إصلاحة بالقليل من التعديلات
 
أعلى