لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 03/09/23 في كل الموقع
-
السلام عليكم ورحمة الله وبركاته ، - ماهي لغة البرمجة القوية والجيدة لصناعة العاب ثلاثية الابعاد ؟ - ماهي لغة البرمجة المناسبة لصناعة الالعاب ثنائية الابعاد ؟1 نقطة
-
import './App.css'; import React from 'react'; import {useState,useEffect} from 'react' import Header from './components/header'; import images from '../src/img/images.jpg'; import images1 from '../src/img/images1.jpg'; import images2 from '../src/img/images2.jpg'; import images3 from '../src/img/images3.jpg'; const App =()=>{ const [img,setImg]=useState(images); let imagesArray=[images,images1,images2,images3]; let random =Math.floor(Math.random()* imagesArray.length); useEffect(()=>{ setInterval(()=>{ setImg(imagesArray[random]); console.log(img) },8*1000); },[]) return ( <div style={{backgroundImage:`url(${img})`}} className='landing-page'> <div className='overlay'> </div> <Header></Header> <div className="introduction-text"> <h1>We are <span>Creative</span> agency</h1> <p>Welcom to you i can help you four what do you need about web develpement</p> </div> </div> ) } export default App ; جربت هذه الطريقة الصورة تتغير لكن بعشوائية ولا تتبع الزمن المحدد اي 8 ثواني1 نقطة
-
المشكلة في الشرط الثاني في دالة addNewTransaction()، حيث أنه يتم التحقق فقط من طول النص وليس من طول المبلغ، مما يعني أنه إذا تم إدخال نص ونسي المبلغ، فإنه سيتم تمرير الشرط الثاني وإظهار رسالة الخطأ الأخيرة. يمكنك حل هذه المشكلة عن طريق إضافة التحقق من طول المبلغ في الشرط الثاني، مثل هذا: const addNewTransaction = () => { if (text.length === 0 && amount.length === 0) { setErrorText("Please Enter A text") setErrorAmount("Please enter An Amount") setValidate(true) } else if(amount.length === 0 && text.length !== 0 ) { setErrorAmount("Please enter An Amount") setValidate(true) } else if(text.length !== 0 && amount.length === 0) { setErrorText("Please Enter A text") setValidate(true) } else { setDummyTransactions([...dummyTransactions,{id: new Date(), text: text, amount: +amount}]) setAmount('') setText('') setValidate(false) } } بهذا الشكل، سيتم التحقق من طول المبلغ في الشرط الثاني وإذا كان المبلغ غير موجود، سيتم عرض رسالة الخطأ المناسبة وعكس الحال إذا تم إدخال المبلغ ونسي النص.1 نقطة
-
أعتقد أن هذه المشكلة تحدث عندما يكون لديك برنامج قارئ الشاشة مفعل في نظام التشغيل الخاص بك. يقوم PowerShell بتعطيل PSReadLine لتحسين التوافق مع برامج قراءة الشاشة. إذا كان هذا هو السبب وكنت ترغب في استخدام PSReadLine، يمكنك تعطيل قارئ الشاشة أو استخدام PowerShell ISE بدلاً من PowerShell console. ويمكنك استخدام PowerShell ISE من خلال الضغط زر الويندوز + R, سوف تفتح لك نافذة RUN قم بكتابة الأمر التالي ثم أضغط Enter. PowerShell ISE وسوف يتم فتح نافذة PowerShell ISE.1 نقطة
-
في البداية يجب معرفة أن PSReadLine هو امتداد لـ PowerShell و يوفر ميزات تحرير نصية أكثر تطورًا من الميزات الافتراضية في PowerShell. أيضًا يتضمن PSReadLine وظائف مثل التعديل التفاعلي للأوامر والتاريخ والإكمال التلقائي للأسماء والمتغيرات والأساليب والخيارات والقراءة الاستنادية إلى السطر والتأشير اللوني والإدراج والحذف والتحريك والتحديد والنسخ واللصق. ويساعد PSReadLine على تسهيل تجربة استخدام PowerShell ويجعل عملية التحرير أسرع وأكثر فاعلية. ومع ذلك، قد يتم تعطيل PSReadLine بشكل افتراضي في حالة استخدام برنامج قراءة الشاشة، وذلك لضمان التوافق مع برامج قراءة الشاشة المختلفة. يمكنك تجاهل هذا التحذير واستخدام PSReadLine بشكل عادي، على الرغم من أن بعض الوظائف قد لا تعمل بشكل صحيح مع برامج قراءة الشاشة. لتجاهل التحذير، يمكنك إضافة الأمر التالي في ملف Microsoft.PowerShell_profile.ps1: $ENV:DISABLE_UNRELIABLE_INPUT = "1" يتم ذلك عن طريق فتح PowerShell واستخدام الأمر التالي: notepad $profile وأيضًا لتمكين PSReadLine بشكل دائم في PowerShell، يمكنك إضافة الأمر التالي في ملف Microsoft.PowerShell_profile.ps1 كذلك: Import-Module PSReadLine سيفتح هذا الأمر ملف نصي جديد، يتم تحريره لتضمين الأمر المذكور أعلاه، ثم حفظ الملف وإغلاقه. بعد ذلك، يمكنك إعادة فتح PowerShell والبدء في استخدامه كالمعتاد، وسيتم تمكين PSReadLine بشكل دائم.1 نقطة
-
في هذا الدليل، سنوضح لك كيفية بناء متجر إلكتروني متعدد اللغات ويدعم اللغة العربية باستخدام أحدث إصدار من نظام ماجنتو 2، وهو حتى كتابة هذه الأسطر إصدار 2.4.5. يُعَد ماجنتو Magento منصة تجارة إلكترونية مفتوحة المصدر، مشهورةً للغاية، مكتوبة بلغة PHP، وتديرها شركة Adobe Inc، فهي نظام مرن للغاية وتحتوي على مجموعة كبيرة ومتنوعة من الميزات التي تمكنك من بناء متجر على الإنترنت. وتقدم شركة أدوبي إصدارين من هذا النظام نذكرهما في الآتي: الإصدار المجتمعي Community: وتقدم شركة أدوبي هذا الإصدار تحت اسم Magento Open Source، وهي نسخة مجانية ومصممة أساسًا للأفراد و/ أو الشركات الصغيرة. الإصدار المؤسسي Enterprise: وتقدم شركة أدوبي هذا الإصدار تحت اسم Magento Commerce Cloud، وهي نسخة مدفوعة ومصممة أساسًا للشركات المتوسطة والكبيرة. ماذا ستتعلم؟ سنبني متجرًا إلكترونيًا متعدد اللغات ويدعم اللغة العربية، وسنعرض في هذا المتجر منتجات خاصة بمفروشات الأَسِرَّة، لذلك أُعِدَّ هذا الدليل التعليمي المكون من 8 دروس لأي شخص لديه معرفة أساسية بـ HTML و CSS ولديه رغبة في تطوير المتاجر الإلكترونية والتي إن كنت على غير دراية بها، فننصحك بالاطلاع على مسار أساسيات تطوير الويب من دورة تطوير واجهات المستخدم المقدمة من أكاديمية حسوب لتتعلم أساسيات كل من HTML و CSS وكيفية التعامل بها للحصول على واجهة مواقع إلكترونية مناسبة. سيعلمك هذا الدليل أساسيات نظام ماجنتو 2 التي يمكنك من خلالها إنشاء متجر إلكتروني بسهولة، وبعد الإنتهاء من هذا الدليل ستجد نفسك على مستوى معتدل من الخبرة في تطوير المتاجر الإلكترونية باستخدام نظام ماجنتو Magento 2. ماذا ستحتاج؟ يجب تثبيت نظام ماجنتو على خادم ويب، إما على بيئة استضافة محلية تكون على حاسوبك، أو خادم محلي، وذلك لأغراض الاختبار الخاصة ببناء المتجر، أو بيئة استضافة عامة من أحد مزودي خدمات الاستضافة وشراء اسم نطاق لجعل متجرك الإلكتروني متاحًا لبقية العالم؛ كما أنك ستحتاج مصادر لصور منتجاتك وأدوات لتعديل هذه الصور لتتناسب مع متجرك. 1. بيئة الاستضافة المحلية سوف تحتاج إلى خادم محلي يعمل بنظام تشغيل لينكس أو ويندوز، وفي حالة عمل الخادم بنظام التشغيل لينكس، سوف تحتاج إلى تثبيت الأدوات التالية: خادم Apache أو خادم NGinx حزمة PHP والإضافات المطلوبة لتثبيت ماجنتو. خادم قاعدة البيانات MySQL حزمة elasticsearch أو حزمة Opensearch أما في حالة عمل الخام المحلي بنظام ويندوز، فسوف تحتاج إلى تثبيت الأدوات التالية: خادم XAMPP حزمة elasticsearch 2. بيئة الاستضافة العامة سوف تحتاج إلى شراء اسم نطاق يعكس علامتك التجارية، وخادم استضافة من نوع VPS يعمل بأحد توزيعات نظام التشغيل لينكس التالية: RedHat Enterprise Linux CentOS Ubuntu Debian ونستنتج من ذلك أن نظام ماجنتو لا يدعم نظام التشغيل Microsoft Windows ونظام التشغيل macOS، أما بالنسبة للأدوات التي ستحتاج إلى تثبيتها على خادم الاستضافة العامة، فهي نفس الأدوات التي ذكرناها في بيئة الاستضافة المحلية. 3. الحصول على نظام ماجنتو 2 منذ أن استحوذت شركة أدوبي على نظام ماجنتو في شهر مايو من عام 2018، لم يَعُد الحصول على النظام بضغطة زر كما كان السابق، فقد بات من الضروري تنفيذ الإجراءات التالية: إنشاء حساب على متجر ماجنتو للحصول على مفتاح الوصول العام والخاص حتى تتمكن من تحميل النظام على الخادم. تثبيت أداة Composer لتحميل نظام ماجنتو، أو الحصول عليه من مستودع Github. استخدام موجه الأوامر لكتابة أوامر التحميل والتثبيت للنظام. التأكد من صحة عملية التثبيت، وذلك بفتح الواجهة الأمامية والخلفية دون مواجهة أي مشاكل. تثبيت ماجنتو 2.4.5 على نظام التشغيل Ubuntu يفترض هذا الدليل أن لديك على الأقل معرفةً أساسيةً بنظام Linux والتي إن لم تكن لديك بعد، فيمكنك أخذها من مسار أنظمة التشغيل ونظام لينكس لدورة علوم الحاسوب المقدمة من أكاديمية حسوب. يتطلب الدليل أيضًا معرفةً بكيفية استخدام أوامر shell، لكن في حالة كنت أحد الوافدين الجدد على النظام، فلا تقلق، فقد قسمت لك عملية التثبيت هذه إلى أجزاء بسيطة لتتمكن من استيعاب جميع إجراءاتها، وستكون خطواتنا في عملية التثبيت كما يلي: تثبيت Apache2 تثبيت MySQL وإنشاء قاعدة بيانات لمتجرنا تثبيت PHP والإضافات المطلوبة تثبيت وتكوين Elasticsearch تثبيت Composer تنزيل وتثبيت ماجنتو 2.4.5 تنزيل عينة من البيانات (خطوة اختيارية) لكن قبل أن نبدأ في عملية التثبيت، أريد منك الاطلاع على المتطلبات التي يجب توافرها لكل خطوة من الخطوات السابقة، وذلك حتى تتمكن من تثبيت ماجنتو بنجاح، فعلى سبيل المثال، يتطلب إصدار ماجنتو 2.4.5 أن يكون لديك إصدار PHP 8.1؛ أما إصدار ماجنتو 2.4.3 فيتطلب أن يكون لديك إصدار PHP 7.4، فإن حاولت تثبيت إصدار ماجنتو 2.4.3 وأنت لديك إصدار PHP 8.1، فستفشل عملية التثبيت. الخطوة الأولى: تثبيت Apache2 يتوفر خادم Apache في مستودعات برامج Ubuntu الافتراضية، ولهذا السبب سنبدأ بتحديث فهرس الحزمة المحلي للحصول على أحدث التغييرات، لذا اتصل فقط بالخادم المحلي أو العام الخاص بك باستخدام بروتوكول ssh مع صلاحية الوصول root، أو افتح موجه الأوامر Terminal من على سطح المكتب ثم نفذ الأمرين التاليين: sudo apt update ثم ندخل الأمر: sudo apt upgrade بعد ذلك، نثبت حزمة apache2. sudo apt install apache2 سوف يعرض لك النظام رسالةً يخيرك فيها بين متابعة التثبيت أو إلغاء التثبيت، لذا انقر على مفتاح Y، ثم انقر على مفتاح Enter لمتابعة عملية التثبيت. وبمجرد انتهاء التثبيت، يمكنك التحقق من إصدار Apache المثبت بالأمر التالي: sudo apache2ctl -v رائع، بهذا يكون قد أصبح لدينا إصدار خادم Apache متوافق مع متطلبات نظام Magento 2.4.5، والآن دعنا نتحقق مما إذا كان خادم Apache2 قد ثُبت بطريقة صحيحة، فقط أدخل عنوان IP هذا في متصفحك 127.0.0.1. فإذا كانت النتيجة هي الصفحة الافتراضية لخادم أباتشي كما بالصورة التالية، فهذا معناه أن كل شيء على ما يرام. ولتمكين بدء تشغيل خادم Apache تلقائيًا في كل مرة يُعاد فيها تشغيل الخادم الخاص بك، استخدم هذا الأمر: systemctl is-enabled apache2 الخطوة الثانية: تثبيت MySQL وإنشاء قاعدة بيانات لمتجرنا الآن نثبت خادم قواعد البيانات MySQL باستخدام الأمر التالي: sudo apt install mysql-server انقر على مفتاح Y، ثم انقر على مفتاح Enter لمتابعة عملية التثبيت. وبمجرد انتهاء التثبيت، يمكنك التحقق من إصدار MySQL المثبت بالأمر التالي: mysql -V بهذا يكون قد أصبح لدينا إصدار خادم MySQL متوافق مع متطلبات نظام Magento 2.4.5، والآن يجب علينا تأمين خادم MySQL بإزالة بعض الإعدادات الافتراضية غير الآمنة ومنع الوصول إلى نظام قاعدة البيانات، وذلك باتباع الآتي: أولاً: نسجل الدخول إلى خادم MySQL من خلال الأمر التالي: sudo mysql ثانيًا: تعيين كلمة مرور قوية للمستخدم root الخاص بخادم MySQL، لأن الوضع الافتراضي يكون المستخدم root بدون كلمة مرور وهذا أمر غير مقبول بالطبع، اكتب الأمر التالي ثم انقر على مفتاح Enter. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'اكتب هنا كلمة مرورك'; ثالثًا: تسجيل الخروج من خادم MySQL. exit رابعًا: تأمين الوصول إلى خادم MySQL، وذلك من خلال كتابة الأمر التالي الذي سيطلب منك إدخال كلمة مرور المستخدم root الخاصة بالنظام، ثم كلمة مرور المستخدم root الخاصة بخادم MySQL: sudo mysql_secure_installation الآن ستظهر لك عدة رسائل تطلب منك اتخاذ إجراء معين، فالرسالة الأولى تطلب منك إعداد مكون VALIDATE PASSWORD لتحديد قوة كلمة المرور المراد استخدامها. أما الرسالة الثانية فتطلب منك تعيين كلمة مرور للمستخدم root الخاص بخادم MySQL، ويمكنك تجاوز هذه الرسالة لأننا قد عَينَّا كلمة المرور فعلًا. أما الرسالة الثالثة فتطلب منك إزالة المستخدم المجهول، فافتراضيًا يكون لتثبيت MySQL مستخدم مجهول يسمح لأي شخص بتسجيل الدخول إلى MySQL دون الحاجة إلى حساب مستخدم، وهو أمر مرفوض بالطبع. بينما تطلب منك الرسالة الرابعة عدم السماح بتسجيل دخول المستخدم root إلى خادم MySQL عن بعد. في حين أن الرسالة الخامسة تطلب منك إزالة قاعدة بيانات باسم test والوصول إليها. أما الرسالة الأخيرة فتطلب منك إعادة تحميل جداول الامتيازات لتنفيذ التغييرات التي أجريناها. خامسًا، إنشاء مستخدم MySQL جديد، إذ من المستحسن عدم استعمال المستخدم root، لذلك سننشئ مستخدم جديد له صلاحيات root كما يُفضل أن تكون له كلمة مرور جديدة. في البداية سجل الدخول إلى خادم MySQL من خلال المستخدم root وكلمة المرور الخاصة به بكتابة الأمر التالي: mysql -u root -p الآن اكتب الأمر التالي لإنشاء المستخدم الجديد وكلمة المرور الخاصة به: CREATE USER 'أكتب هنا اسم المستخدم'@'localhost' IDENTIFIED BY 'أكتب هنا كلمة المرور'; ثم اكتب الأمر التالي لتأكيد كلمة المرور للمستخدم الجديد: ALTER USER 'أكتب هنا اسم المستخدم'@'localhost' IDENTIFIED WITH mysql_native_password BY 'أكتب هنا كلمة المرور'; بعد ذلك نمنح المستخدم الجديد جميع الصلاحيات من خلال كتابة الأمر التالي: GRANT ALL PRIVILEGES ON *.* TO 'أكتب هنا اسم المستخدم'@'localhost' WITH GRANT OPTION; بعد ذلك سجل خروج من خادم MySQL باستخدام أمر تسجيل الخروج exit أو \q. أخيرًا: إنشاء قاعدة بيانات متجرنا الإلكتروني. في البداية سجل دخول إلى خادم MySQL باستعمال المستخدم الجديد وكلمة المرور الخاصة به، وذلك بكتابة الأمر التالي: mysql -u أكتب هنا اسم المستخدم -p بعد ذلك ننشئ قاعدة البيانات بكتابة الأمر التالي: CREATE DATABASE أكتب هنا اسم قاعدة البيانات; وفي النهاية سجل خروج من خادم MySQL. الخطوة الثالثة: تثبيت PHP والإضافات المطلوبة في هذه الخطوة سوف نثبت PHP والإضافات المطلوبة لتثبيت ماجنتو على خادم الاستضافة، وتحديدًا الإصدار PHP 8.1 لأنه من متطلبات تثبيت إصدار ماجنتو 2.4.5. لكن قبل أن نبدأ، دعنا أولاً نحدِّث مستودعات APT الخاصة بالنظام. sudo apt update بعد ذلك نثبت إصدار PHP 8.1 باستخدام الأمر التالي: sudo apt install php8.1 libapache2-mod-php php-mysql تنويه: في حالة كتابة الأمر هكذا install php دون تحديد لرقم الإصدار، افتراضيًا سوف يثبت النظام أحدث إصدار من PHP أو أي حزمة أخرى. بعد ذلك تحقق من إصدار PHP الذي ثبته على النظام باستخدام الأمر التالي: php -v بعد ذلك سوف نعمل على تعديل ملف الإعدادات الخاص بخادم أباتشي، وذلك باستخدام الأمر التالي: sudo nano /etc/apache2/mods-enabled/dir.conf الآن عَدِّل ترتيب ملف index.php ليكون في مقدمة فهرس الدليل، ليبدو ملف dir.conf بعد التعديل كما يلي: وبعد الانتهاء من التعديل، انقر على مفتاحي Ctrl + O من لوحة المفاتيح ثم مفتاح Enter لحفظ التعديل، وبعد ذلك انقر على مفتاحي Ctrl + X لغلق المحرر. اعمل الآن على تثبيت وتمكين الإضافة mbstring، وذلك بكتابة الأمرين التاليين: sudo apt install php8.1-mbstring sudo phpenmod mbstring والآن بات علينا أن نُفعِّل الإضافة Apache rewrite، وذلك بكتابة الأمر التالي: sudo a2enmod rewrite بعد ذلك سوف يطلب منك النظام إعادة تشغيل خادم أباتشي، وذلك من خلال كتابة الأمر التالي: systemctl restart apache2 في هذه المرحلة علينا تثبيت إضافات PHP المطلوبة لتثبيت نظام ماجنتو 2.4.5 على خادم الاستضافة، لذا اكتب الأمر المجمع التالي: sudo apt install php8.1-bcmath php8.1-intl php8.1-soap php8.1-zip php8.1-gd php8.1-curl php8.1-cli php8.1-xml php8.1-xmlrpc php8.1-gmp php8.1-common بعد ذلك أعد تحميل Apache لتصبح التغييرات سارية المفعول، وذلك من خلال كتابة الأمر التالي: sudo systemctl reload apache2 وفي الأخير، من أجل تكوين إعدادات PHP، سنحتاج إلى العثور على مسار ملف php.ini لكي نجري عليه التعديلات المطلوبة، لذلك سنطلب من النظام إخبارنا بمسار هذا الملف وذلك من خلال كتابة الأمر التالي: php -i | grep "Configuration File" سوف يعطينا النظام المسار إلى ملف php.ini، لذلك افتح هذا الملف بواسطة المحرر لتعديل بعض الإعدادات، وذلك من خلال كتابة الأمر التالي: sudo nano مسار الملف الذي أعطاه لك النظام ابحث في ملف php.ini عن القيم التالية بالنقر على مفتاحي Ctrl + W، ثم كتابة جزء من الكلمة التي تبحث عنها ثم النقر على مفتاح Enter لإيجادها، الآن عَدِّل هذه القيم لتصبح على النحو التالي: max_execution_time=18000 max_input_time=1800 memory_limit=4G في النهاية، وبعد تنفيذ هذه التعديلات، احفظ الملف كما تعلمنا سابقًا، ثم أعد تحميل خادم أباتشي مرةً أخرى، وسوف تحافظ هذه القيم على عملية التثبيت بطريقة صحيحة دون انقطاع. sudo systemctl reload apache2 الخطوة الرابعة: تثبيت وتكوين Elasticsearch منذ إصدار ماجنتو 2.4 أصبح Elasticsearch مكونًا إلزاميًا لتثبيت وتشغيل نظام ماجنتو، لذلك سنعمل في هذه الخطوة على تثبيت وتكوين Elasticsearch على خادم الاستضافة. أولاً: تثبيت Java، وذلك لأن عملية تثبيت Elasticsearch تعتمد على وجود جافا بالنظام، لذا اكتب الأمر التالي: sudo apt install openjdk-17-jdk بعد ذلك تحقق مما إذا كان java قد ثُبِّتَ بطريقة صحيحة على خادم الاستضافة بالتحقق من إصداره، وذلك باستخدام الأمر التالي: java -version ثانيًا: استيراد مفتاح GPG لحزم Elasticsearch باستخدام الأمر التالي: sudo apt install curl وبمجرد الانتهاء من تثبيت curl، نفذ الأمر التالي: sudo curl -sSfL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --no-default-keyring --keyring=gnupg-ring:/etc/apt/trusted.gpg.d/magento.gpg --import ثالثًا: إضافة مستودع Elasticsearch إلى النظام، وذلك باستخدام الأمر التالي: sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list' رابعًا: منح صلاحية القراءة والكتابة لمفتاح GPG، وذلك باستخدام الأمر التالي: sudo chmod 666 /etc/apt/trusted.gpg.d/magento.gpg خامسًا: بعد الانتهاء من الخطوات المذكورة أعلاه، يجب عليك تحديث مستودعات APT الخاصة بالنظام، وذلك باستخدام الأمر التالي: sudo apt update سادسًا: تثبيت حزم Elasticsearch على النظام باستخدام الأمر التالي: sudo apt install elasticsearch بعد ذلك أدخل الأوامر الثلاث التالية لتشغيل وتمكين حزم Elasticsearch لكي تعمل تلقائيًا على الخادم في حالة إعادة تشغيله: sudo systemctl daemon-reload sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service سابعًا: تكوين إعدادات Elasticsearch، فبعد أن ثبتنا Elasticsearch و Java، سنحتاج إلى تكوين إعدادات خادم Elasticsearch الموجودة في ملف elasticsearch.yml المسؤولة عن اسم الخادم (العقدة) والمجموعة التي يرتبط بها، كما نحتاج إلى تكوين إعدادات جافا الموجودة في ملف jvm.options المسؤولة عن إعدادات الذاكرة. لنبدأ في تحرير ملف elasticsearch.yml، افتحه باستخدام nano أو محرر النصوص المفضل لديك: sudo nano /etc/elasticsearch/elasticsearch.yml الآن احذف الحرف # من بداية السطر node.name والسطر cluster.name لإلغاء التعليق عليهما، ثم غيِّر قيمهما لتبدو كما التالي: 1. node.name: "My First Node" 2. cluster.name: my-application بعد ذلك ابحث عن السطر الذي يحتوي على network.host ثم احذف الحرف # لإلغاء التعليق عنه، ثم عدِّل القيمة إلى 0.0.0.0 للاستماع إلى جميع الواجهات وإتاحته للجمهور؛ أما إذا كنت تريد تكوينه ليكون خاصًا/ محليًا لجهازك فقط، فسيتعين عليك ضبط network.host إلى القيمة 127.0.0.1، وبالتالي فإن المحتوى لن يكون عامًا. تنويه: يأتي Elasticsearch بإعدادات افتراضية معقولة لمعظم الإعدادات، لذلك يمكنك تجاوز هذه الخطوة والاعتماد على الإعدادات الافتراضية. وفي حالة إذا كان خادم الاستضافة يحتوي على 1 جيجابايت فقط من ذاكرة الوصول العشوائي، فيجب عليك فتح ملف jvm.options وتعديل الإعدادات التالية: sudo nano /etc/elasticsearch/jvm.options الآن عدِّل قيمة Xms وقيمة Xmx إلى 256 ميجابايت. أيضًا في حالة ما إذا كان خادم الاستضافة يحتوي على 1 جيجابايت فقط من ذاكرة الوصول العشوائي، فستحتاج إلى فتح ملف elasticsearch.service لتهيئة وقت انتظار بدء التشغيل، ثم تعديل قيمة TimeoutStartSec إلى قيمة مناسبة للخادم الخاص بك، وفي حالتي عدلتها إلى 900 ثانية. sudo nano /usr/lib/systemd/system/elasticsearch.service الآن نعيد تشغيل Elasticsearch من خلال الأمر: sudo systemctl daemon-reload والأمر: sudo systemctl start elasticsearch.service تنويه: اترك بعض الوقت لبدء Elasticsearch في العمل قبل أن تحاول استخدامه، لأن بخلاف ذلك قد تحصل على خطأ في الاتصال. أخيرًا: اختبار عمل Elasticsearch، ويمكنك عمل ذلك إما من خلال المتصفح بكتابة هذا العنوان 127.0.0.1:9200، أو من خلال كتابة الأمر التالي في موجه الأوامر: curl -X GET 'http://localhost:9200' ومن المفترض أن ترى الرد التالي: الخطوة الخامسة: تثبيت Composer في هذه الخطوة سنعمل على تحميل وتثبيت Composer حتى نتمكن من تحميل وتثبيت نظام ماجنتو. أولاً: حَمِّل Composer باستخدام الأمر التالي: curl -sS https://getcomposer.org/installer -o composer-setup.php ثانيًا: ثَبِّت Composer باستخدام الأمر التالي: sudo php composer-setup.php --install-dir=/usr/bin --filename=composer أخيرًا: لنتحقق من إصدار Composer الذي ثبتناه على خادم الاستضافة: composer تهانينا، خادم الاستضافة الآن جاهز لتحميل وتثبيت نظام ماجنتو، وتحديدًا الإصدار 2.4.5 الخطوة السادسة: تنزيل وتثبيت ماجنتو 2.4.5 بعد أن انتهينا من خطوات إعداد خادم الاستضافة لتثبيت نظام ماجنتو عليه، إليك خطوات تنزيل وتثبيت ماجنتو على الخادم، وهي كما يلي: أولاً: اذهب إلى مجلد html من خلال موجه الأوامر، وذلك بكتابة الأمر التالي: cd /var/www/html ثانيًا: أنشئ مشروع Composer جديدًا باستخدام الإصدار المجتمعي المجاني Magento Open Source أو باستخدام الإصدار المؤسسي المدفوع Magento Commerce، وذلك باستخدام أحد الأمرين التاليين: sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 <اسم مجلد المشروع> و sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition=2.4.5 <اسم مجلد المشروع> تنويه: بالأمرين السابقين يوجد رقم بعد علامة = وهو رقم الإصدار الخاص بنظام ماجنتو، يمكنك تعديل هذا الرقم إلى أي إصدار تريده، سواءً كان إصدارًا أقدم من 2.4.5 أو الإصدارات المستقبلية، وبعد رقم الإصدار ضع اسم للمجلد الذي سيحتوي على ملفات ومجلدات المشروع كما هو موضح بالصورة التالية. ثالثًا: بعد كتابتك لأمر إنشاء مشروع ماجنتو سيًطلب منك إدخال مفتاح الوصول العام والخاص من متجر ماجنتو. رابعًا: الأن نذهب إلى متجر ماجنتو ثم ننقر على زر Sign in with Adobe ID لتسجيل الدخول إلى المتجر. سوف يعطيك الموقع عدة خيارات لتسجيل الدخول، إما بحسابك على أدوبي، أو حسابك على جوجل، أو حسابك على الفيسبوك، أو حسابك على آبل، لذا عليك تحديد الخيار المناسب لك. بعد ذلك من أعلى يمين النافذة، انقر على اسم الحساب الخاص بك لفتح القائمة المنسدلة، ثم اختر منها My Profile. بعد ذلك انقر على الرابط Access Keys الموجود ضمن التبويب Marketplace. بعد ذلك انقر على زر Create A New Access Key، ومن النافذة التي ستظهر اُكتب أي اسم مناسب لهذا المفتاح، ثم اُنقر على زر Ok. الآن أصبح لديك مفتاح عام وخاص يمكنك استخدامهما للحصول على نظام ماجنتو. خامسًا: الآن نعود إلى موجه الأوامر مرةً أخرى، انسخ مفتاح الوصول العام Public Key من متجر ماجنتو، ثم الصقه في موجه الأوامر في حقل Username، ثم اُنقر على مفتاح Enter، وبعد ذلك انسخ مفتاح الوصول الخاص Private Key من المتجر، ومن ثمة الصقه في موجه الأوامر في حقل Password، ثم انقر على مفتاح Enter، واكتب حرف Y لتخزين بيانات الاعتماد في المسار المذكور بالرسالة، بعدها انقر على مفتاح Enter. الآن انتظر حتى ينتهي Composer من عملية تنزيل وإنشاء ملفات المشروع. سادسًا: يجب تعيين أذونات القراءة والكتابة للمجلد الذي يحتوي على ملفات المشروع قبل تثبيت Adobe Commerce أو Magento Open Source، ويُعَد ذلك ضروريًا حتى يتمكن سطر الأوامر من كتابة الملفات داخل مجلد المشروع. في البداية اذهب إلى مجلد المشروع من خلال موجه الأوامر بكتابة الأمر التالي: cd /var/www/html/<اكتب هنا اسم مجلد المشروع> الآن اكتب الأوامر الأربعة التالية: sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} + و sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} + و sudo chown -R اكتب هنا اسم المستخدم ذو صلاحيات الرووت:www-data . و sudo chmod u+x bin/magento سابعًا: تثبيت ماجنتو على خادم الاستضافة، سوف أعرض لك الأمر الافتراضي لتثبيت ماجنتو، وبعدها سوف أشرح لك هذا الأمر وما هي النقاط التي يجب عليك تعديلها قبل تنفيذ هذا الأمر ليتناسب مع مشروعك، وما هي النقاط التي يمكنك تعديلها بعد تثبيت ماجنتو. إليك الأمر الافتراضي: php bin/magento setup:install --base-url=<اكتب هنا اسم نطاق المتجر> --db-host=<اكتب هنا عنوان خادم قاعدة البيانات> --db-name=<اكتب هنا اسم قاعدة البيانات> --db-user=<اكتب هنا اسم المستخدم بقاعدة البيانات> --db-password=<اكتب هنا كلمة مرور المستخدم بقاعدة البيانات> --admin-firstname=Admin --admin-lastname=Admin --admin-email=admin@admin.com --admin-user=admin --admin-password=<اكتب هنا كلمة مرور الواجهة الخلفية> --language=en_US --currency=USD --timezone=America/Chicago --backend-frontname=admin --search-engine=elasticsearch7 --elasticsearch-host=localhost --elasticsearch-port=9200 حسنًا، إليك النقاط التي يجب عليك تعديلها قبل تنفيذ هذا الأمر: --base-url: هنا يجب عليك كتابة اسم النطاق (الوهمي للاستضافة المحلية أو الحقيقي الذي اشتريته للاستضافة العامة) أو عنوان الـ IP الخاص بخادم الاستضافة، وبما أننا نبني متجر لعرض مفروشات الأَسِرَّة على خادم استضافة محلية، فسوف أستخدم اسم النطاق الوهمي هذا http://bedding.store.com. --db-host: هنا يجب عليك كتابة عنوان خادم قاعدة البيانات، وبما أننا قد ثبتنا خادم قاعدة البيانات في خادم الاستضافة نفسه، فسوف يكون عنوان خادم قاعدة البيانات في هذه الحالة هو localhost؛ أما في حالة تثبيت قاعدة البيانات في خادم منفصل، فيجب أن تكتب اسم هذا الخادم. --db-name: هنا يجب أن تكتب اسم قاعدة البيانات التي أنشأناها لمشروعنا بالخطوة الثانية، وفي حالتنا كان اسم قاعدة البيانات التي أنشأناها هو: magento2. --db-user: هنا يجب أن تكتب اسم المستخدم بقاعدة البيانات ذو الصلاحيات root الذي أنشأناه بالخطوة الثانية، وفي حالتنا كان اسم المستخدم الذي أنشأناه هو: magento2. --db-password: هنا يجب أن تكتب كلمة المرور التي عيناها للمستخدم بقاعدة البيانات، وفي حالتنا كانت كلمة المرور الخاصة بالمستخدم magento2 هي: Admin@123456. --admin-email: هنا يجب أن تكتب عنوان بريد إلكتروني حقيقي، حتى تتمكن من استرداد كلمة مرور الواجهة الخلفية في حالة نسيانها. --admin-password: هنا يجب أن تكتب كلمة مرور خاصة للوصول لصفحة التحكم بالواجهة الخلفية للمتجر، يمكنك كتابة أي كلمة مرور تريدها، لكن راعي أن تكون قويةً وغير مكررة. --backend-frontname: هذا الأمر مسؤول عن تحديد عنوان URL الخاص بالواجهة الخلفية، فإن تركت قيمته الافتراضية كما هي admin فسيكون رابط الوصول للواجهة الخلفية لمتجرنا هو: http://bedding.store.com/admin لذلك من إجراءات الأمان الموصى بها أن تغير القيمة الافتراضية لهذا الأمر، أو أن تحذف هذا الخيار للسماح لأمر التثبيت بإنشاء عنوان URL عشوائي تلقائيًا، وذلك لكي يصعب على المتسللين أو البرامج الضارة تخمين عنوان URL العشوائي، وسوف يُعرض لك عنوان URL في وحدة التحكم الخاصة بك عند اكتمال التثبيت. يمكنك تعديل القيم الخاصة باللغة والعُملة والمنطقة الزمنية، أو تركها كما هي وتعديلها من الواجهة الخلفية أفضل لأنك لو كتبت قيمةً غير مدعومة من النظام فستفشل عملية التثبيت. الآن، اكتب الأمر بعد إجراء التعديلات التي تناسبك، ليبدأ Composer في تثبيت ماجنتو 2.4.5 على خادم الاستضافة، وسوف تستغرق عملية التثبيت بعض الوقت حسب سرعة الخادم والإنترنت لديك. وإليك الأمر في حالته النهائية بعد تعديله لبناء متجر مفروشات الأَسِرَّة الخاص بنا وبدء عملية التثبيت موضحين بالصورة التالية: تهانينا، لقد ثَبَّتَّ نظام المتاجر الإليكترونية Magento 2.4.5 على خادم استضافة يعمل بنظام التشغيل ubuntu بنجاح. ثامنًا: تعديل ملف default.conf بإضافة مسار المجلد pub الموجود داخل مجلد المشروع الخاص بنا إلى توجيه DocumentRoot، وأيضًا إضافة اسم النطاق الخاص بمتجرنا (في حالة إن كنت تنوي بناء أكثر من متجر إليكتروني على نفس خادم الاستضافة) إلى توجيه ServerName، ثم إضافة شيفرة نحدد فيها المسار إلى مجلد html، والسماح له بتجاوز الجميع. اكتب الأمر التالي في البداية لفتح ملف default.conf: sudo nano /etc/apache2/sites-available/000-default.conf بعد ذلك عدّل الشيفرة الموجودة داخل هذا الملف لتصبح كما يلي: <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/اكتب هنا اسم مجلد المشروع/pub ServerName اكتب هنا عنوان نطاق المتجر ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html"> AllowOverride all </Directory> </VirtualHost> الآن احفظ الملف بعد الانتهاء من إجراء التعديلات، ثم أعد تشغيل خادم أباتشي لتصبح التغييرات التي أجريناها سارية المفعول، وذلك باستخدام الأمر التالي: sudo systemctl restart apache2 تاسعًا: تعديل ملف hosts بإضافة اسم نطاق متجرنا إلى عنوان IP الخاص بـ localhost، وهو: 127.0.0.1 في البداية اكتب الأمر التالي لفتح ملف hosts: sudo nano /etc/hosts بعد ذلك أضف السطر التالي بهذا الملف كما يلي: 127.0.0.1 اكتب هنا عنوان نطاق المتجر الآن، احفظ الملف بعد الانتهاء من إجراء التعديلات، ثم اكتب الخمسة أوامر التالية لإعادة فهرسة وترقية قاعدة البيانات، ونشر ملفات العرض الثابتة، ومسح ذاكرة التخزين المؤقتة، وإلغاء خاصية التحقق بخطوتين أثناء تسجيل الدخول للواجهة الخلفية، وهذه الأوامر مجمعة بسطر واحد كما يلي: sudo php bin/magento indexer:reindex && sudo php bin/magento setup:upgrade && sudo php bin/magento setup:static-content:deploy -f && sudo php bin/magento cache:flush && sudo php bin/magento module:disable Magento_TwoFactorAuth أخيرًا: حان الوقت لجني ثمار المجهود الذي بذلناه، بأن نتحقق من عمل الواجهة الأمامية والخلفية للمتجر دون مشاكل، لذا اذهب إلى المتصفح واكتب أحد عناوين خادم الاستضافة مثل: localhost أو 127.0.0.1 أو عنوان الـ IP المحلي للخادم، أو اسم النطاق، لفتح الواجهة الأمامية للمتجر. في حالتنا هذه سأكتب اسم النطاق الخاص بمتجرنا، وهو: http://bedding.store.com ومن المفترض أن ترى مخرجات كما بالصورة التالية: الآن ومن خلال المتصفح أيضًا، سنتحقق من عمل الواجهة الخلفية دون مشاكل، وذلك من خلال كتابة عنوان لوحة التحكم الرئيسية، والتي تكون افتراضيًا بإضافة كلمة admin إلى عنوان خادم الاستضافة، إلا في حالة إن كنت قد عدلتها أثناء كتابتك لأمر تثبيت ماجنتو كما ذكرنا سابقًا. في حالتنا هذه سأكتب عنوان لوحة التحكم الرئيسية الخاص بمتجرنا، وهو: http://bedding.store.com/admin، وعندها سوف تفتح لك نافذة تسجيل الدخول، اكتب عندها اسم المستخدم وكلمة المرور اللذان قد عينَّاهم في أمر تثبيت ماجنتو، ومن المفترض أن ترى مخرجات كما بالصورة التالية: تهانينا، فكل شيء بالمتجر يعمل على ما يرام. الخطوة السابعة: تنزيل عينة من البيانات (خطوة اختيارية) هل لاحظت أن الواجهة الأمامية للمتجر خالية من المنتجات؟ لهذا السبب سنعمل في هذه الخطوة على إضافة عينة من البيانات لمتجرنا لملئه ببعض المنتجات والقوائم والفئات والصور ليبدو المتجر الخاص بك على النحو التالي: وكما ذكرت، تُعَد هذه الخطوة اختياريةً ويمكنك تجاوزها ومتابعة الدروس القادمة لتعلم كيفية بناء المتجر من البداية؛ أما من يرغب في تثبيت عينة البيانات هذه لكي يتدرب عليها، فيمكنه كتابة الخمسة أوامر التالية لجلب عينة البيانات، وإعادة فهرسة وترقية قاعدة البيانات، ونشر ملفات العرض الثابتة ومسح ذاكرة التخزين المؤقتة، وهذه الأوامر مجمعة بسطر واحد كما يلي: sudo php bin/magento sampledata:deploy && sudo php bin/magento indexer:reindex && sudo php bin/magento setup:upgrade && sudo php bin/magento setup:static-content:deploy -f && sudo php bin/magento cache:flush أحسنت، الآن أعد تحميل صفحة المتجر واستمتع بمراجعة المنتجات والقوائم التي أُضيفت إلى متجرك. وفي حالة عدم ظهور صور المنتجات على المتجر كما بالصورة التالية، يمكنك حل هذه المشكلة بكتابة الأمر التالي: sudo php bin/magento catalog:image:resize تثبيت ماجنتو 2.4.5 على نظام التشغيل Windows بعد أن انتهينا من تثبيت ماجنتو على نظام التشغيل Ubuntu، حان الوقت لتثبيت ماجنتو على نظام التشغيل Windows، وستكون خطواتنا في عملية التثبيت كما يلي: الخطوة الأولى: تثبيت خادم XAMPP الخطوة الثانية: تثبيت Composer الخطوة الثالثة: تثبيت Elasticsearch الخطوة الرابعة: تكوين ملف php.ini الخطوة الخامسة: إنشاء قاعدة البيانات الخطوة السادسة: تنزيل وتثبيت ماجنتو 2.4.5 الخطوة السابعة: تنزيل عينة من البيانات (خطوة اختيارية) الخطوة الأولى: تثبيت خادم XAMPP خطوتنا الأولى ستكون تثبيت Xampp، وهو خادم ويب يساعد المطورين على إنشاء واختبار تطبيقاتهم على خادم ويب محلي، فهو يحتوي على PHP و MySQL و Apache، وهي كما تعلم مكونات مطلوبة للحصول على نظام Magento. في البداية، إذهب إلى الموقع الرسمي لخادم XAMPP، ثم انقر على القائمة Download، بعدها حدد أحدث إصدار من الخادم المتوافق مع نظام التشغيل Windows، ثم انقر على زر Download لتنزيله على الحاسوب، وعادةً ما يكون أحدث إصدار متواجد في نهاية القائمة كما هو موضح بالصورة التالية: بعد انتهاء عملية التنزيل، شغّل ملف إعداد التثبيت وتابع جميع الخطوات لتثبيت خادم Xampp، وفي خطوة تحديد المكونات تأكد من تحديد Apache و Mysql و PHP و PHPmyadmin. الآن افتح لوحة تحكم خادم XAMPP وانقر على زر Start الموجود بجوار Apache و Mysql لتشغيلهم، ويشير اللون الأخضر إلى أنهم يعملون دون مشاكل. الخطوة الثانية: تثبيت Composer Composer هي أداة لإدارة المكتبات في PHP. توفر لنا هذه الأداة الكثير من الوقت بتثبيت الحزم الضرورية التي يحتاج لها مشروعك لاستخدامها، وما عليك سوى التصريح عنها، وسيعمل Composer تلقائيًا بتنزيل هذه المكتبات من خلال خوادمها. في البداية إذهب إلى الموقع الرسمي لأداة Composer، ثم انقر على زر Download. ومن النافذة التالية، انقر على "Composer-Setup.exe" لتنزيل الأداة على الحاسوب. بعد انتهاء عملية التنزيل، شغل ملف إعداد التثبيت وتابع جميع الخطوات لتثبيت أداة Composer، وفي خطوة تحديد مسار سطر أوامر PHP، حدد ملف php.exe الخاص بخادم XAMPP وستجده في المسار التالي: C:/xampp/php/php.exe سنتحقق الآن مما إذا كان Composer قد ثُبِّتَ بنجاح عن طريق فتح موجه أوامر Windows، واكتب كلمة composer؛ فإذا عرضت لك شاشة موجه الأوامر النتيجة كما بالصورة التالية، فذلك يعني أن Composer قد ثُبِّتَ بطريقة صحيحة. الخطوة الثالثة: تثبيت Elasticsearch Elasticsearch هو الآن أداة مطلوبة لتثبيت نظام Magento، وأثناء عملية التثبيت، سيتحقق النظام مما إذا كان Eleasticsearch قد ثُبِّتَ وهُيِّئ بطريقة صحيحة، فإذا كان هناك خطأ في التحقق من Elasticsearch، فستتوقف عملية التثبيت. في البداية إذهب إلى الموقع الرسمي لأداة Elasticsearch، ثم تأكد من اختيار نظام التشغيل Windows. ومن القائمة المنسدلة، انقر على زر التنزيل كما هو موضح بالصورة التالية. لكن أنصحك باستخدام الإصدار 7.17.0 من Elasticsearch، فهو متوافق مع إصدار ماجنتو 2.4.5، واستخدامه غير مُعقد مثل الإصدارات الحديثة من Elasticsearch. بعد انتهاء عملية التنزيل، استخرج المجلد المضغوط ثم انقله داخل مجلد htdocs الموجود بمجلد الخادم XAMPP، وستجده في المسار التالي: C:/xampp/htdocs. الآن انتقل إلى المجلد elasticsearch\bin، ثم انقر بزر الفأرة الأيمن على ملف elasticsearch.bat وحدد "تشغيل كمسؤول". اترك النافذة السوداء هذه تعمل دائمًا في الخلفية، وللتحقق مما إذا كان Elasticsearch يعمل على نظامك، افتح المستعرض الخاص بك واكتب هذا العنوان: localhost:9200، فإذا رأيت النتيجة كما بالصورة التالية فذلك يعني أن Elasticsearch يعمل دون مشاكل. الخطوة الرابعة: تكوين ملف php.ini قبل تثبيت نظام ماجنتو تأكد من تثبيت وتمكين جميع إضافات PHP المطلوبة، وتكوين بعض قيم PHP لجعل التثبيت يسير بسلاسة. أولاً، تثبيت وتمكين جميع إضافات PHP المطلوبة، كما هو مذكور في متطلبات نظام Magento نحتاج إلى تثبيت وتمكين امتداد php التالية: bcmath ctype curl dom gd hash iconv intl mbstring openssl pdo_mysql simplexml soap xsl zip ext-sockets. وبخلاف نظام التشغيل Ubuntu، تُثبت جميع هذه الإضافات تلقائيًا على نظام التشغيل Windows عند تثبيت PHP عليه، وسنحتاج فقط إلى تفعيل 6 إضافات من مجموع الإضافات المطلوبة. في البداية، اذهب إلى لوحة تحكم خادم XAMPP، ثم انقر على زر Config الخاص بخادم أباتشي، ومن القائمة التي ستظهر اختر منها php.ini. من الملف الذي سيفتح ابحث عن الإضافات التالية: extension=gd extension=intl extension=soap extension=xsl extension=sockets extension=sodium الآن، احذف علامة (;) من بداية كل سطر لهذه الإضافات، ثم احفظ الملف. ثانيًا: تكوين بعض إعدادات PHP، وفي نفس الملف php.ini ابحث عن القيم التالية وغيرها على النحو التالي: max_execution_time=18000 max_input_time=1800 memory_limit=4G ستحافظ هذه القيم على تنفيذ عملية التثبيت دون انقطاع، والآن احفظ الملف ثم أغلقه، ومن خلال لوحة تحكم خادم XAMPP انقر على زر Stop الخاص بخادم أباتشي ثم انقر على زر Start لإعادة تشغيل خادم أباتشي حتى تُطبق التعديلات التي أجريناها. الخطوة الخامسة: إنشاء قاعدة البيانات قبل أن نبدأ في تثبيت ماجنتو، يتعين علينا إنشاء قاعدة بيانات لمتجرنا حتى نتمكن من تخزين جميع الإعدادات المتعلقة بالمنتجات، الكتالوج، المستخدمين وتكوين المتجر. في البداية، اذهب إلى لوحة تحكم خادم Xampp، ثم انقر على زر Admin الخاص بخادم MySQL لفتح phpMyAdmin من خلال المستعرض. الآن، ومن النافذة التي ستظهر لك، انقر على New، ثم اكتب اسم لقاعدة البيانات الجديدة (في حالتنا أسميناها magento2)، ثم انقر على زر تكوين لإنشاء قاعدة البيانات. وكما نعلم، خادم MySQL يأتي افتراضيًا بدون كلمة مرور للمستخدم root، لذلك يجب علينا تعيين كلمة مرور له، اذهب إلى لوحة تحكم خادم Xampp ثم انقر على زر Shell لفتح موجه الأوامر. بعد ذلك أدخل الأمر التالي لتعيين كلمة مرور للمستخدم root الخاص بالخادم MySQL mysqladmin.exe -u root password اكتب هنا كلمة المرور الآن، وحتى تستطيع استخدام phpMyAdmin مرةً أخرى، ستحتاج إلى تعديل ملف config.inc.php لإضافة كلمة المرور التي عيناها للمستخدم root به، لذلك اذهب إلى لوحة تحكم خادم Xampp، ثم انقر على زر config.inc.php. من الملف الذي سيفتح، ابحث عن كلمة Password ثم اكتب كلمة المرور الجديدة كما هو موضح بالصورة التالية: وفي النهاية، أعد تشغيل خادم أباتشي كما تعلمنا سابقًا حتى تُطبق التعديلات التي أجريناها. الخطوة السادسة: تنزيل وتثبيت ماجنتو 2.4.5 الآن انتهينا من كل خطوات الإعداد، ويمكننا البدء في تثبيت Magento 2.4.5 على خادم الاستضافة الذي يعمل بنظام التشغيل ويندوز. أولاً: من خلال موجه الأوامر اكتب الأمر التالي: cd C:/xampp/htdocs ثانيًا: أنشئ مشروع Composer جديدًا باستخدام الإصدار المجتمعي المجاني Magento Open Source أو باستخدام الإصدار المؤسسي المدفوع Magento Commerce، وذلك باستخدام أحد الأمرين التاليين: sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.5 <اسم مجلد المشروع> و sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition=2.4.5 <اسم مجلد المشروع> ثالثًا: بعد كتابتك لأمر إنشاء مشروع ماجنتو سيًطلب منك إدخال مفتاح الوصول العام والخاص من متجر ماجنتو، ولقد وضحنا خطوات حصولك عليهم بالخطوة السادسة من تثبيت ماجنتو على نظام التشغيل Ubuntu. رابعًا: بعد حصولك على مفتاحي الوصول العام والخاص من متجر ماجنتو، انسخ مفتاح الوصول العام Public Key، ثم الصقه في موجه الأوامر في حقل Username، ثم انقر على مفتاح Enter، بعد ذلك انسخ مفتاح الوصول الخاص Private Key ثم الصقه في موجه الأوامر في حقل Password، ومن ثمة انقر على مفتاح Enter، بعدها اكتب حرف Y لتخزين بيانات الاعتماد في المسار المذكور بالرسالة، وانقر على مفتاح Enter. الآن انتظر حتى ينتهي Composer من عملية تنزيل وإنشاء ملفات المشروع. خامسًا: نحتاج إلى ضبط مجلد الجذر إلى pub، لمنع زوار المتجر من الوصول إلى المناطق الحساسة في نظام ملفات Magento من خلال المستعرض. وللقيام بذلك، افتح الملف httpd-vhosts.conf الموجود بالمسار التالي: C:\xampp\apache\conf\extra\httpd-vhosts.conf، ثم أضف الشيفرة التالية في أسفل الملف: <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/اكتب هنا اسم مجلد المشروع/pub" ServerName اكتب هنا اسم النطاق </VirtualHost> <VirtualHost *:80> DocumentRoot "C:/xampp/htdocs" ServerName localhost </VirtualHost> سادسًا: تعديل ملف hosts بإضافة اسم نطاق متجرنا إلى عنوان IP الخاص بـ localhost وهو: 127.0.0.1 في البداية اذهب إلى المسار التالي: C:\Windows\System32\drivers\etc\hosts، ثم أضف السطر أدناه في أسفل الملف: 127.0.0.1 اكتب هنا اسم النطاق سابعًا، أعد تشغيل خادم أباتشي كما تعلمنا سابقًا حتى تُطبق التعديلات التي أجريناها. ثامنًا، أدخل الآن الأمر التالي لبدء تثبيت Magento 2.4.5 (تأكد من تشغيل Elasticsearch و Apache و Mysql قبل تنفيذ هذا الأمر): في البداية اذهب إلى مجلد المشروع من خلال موجه الأوامر بكتابة الأمر التالي: cd C:/xampp/htdocs/اكتب هنا اسم مجلد المشروع الآن اكتب الأمر التالي بعد تعديل ما يلزم به كما تعلمنا في الخطوة السادسة من تثبيت ماجنتو على نظام التشغيل Ubuntu: php bin/magento setup:install --base-url="اكتب هنا اسم النطاق" --db-host="localhost" --db-name="اكتب هنا اسم قاعدة البيانات" --db-user="اكتب هنا اسم مستخدم قاعدة البيانات" --db-password="اكتب هنا كلمة مرور مستخدم قاعدة البيانات" --admin-firstname="admin" --admin-lastname="admin" --admin-email="user@example.com" --admin-user="admin" --admin-password="Admin@123456" --language="en_US" --currency="USD" --timezone="America/Chicago" --use-rewrites="1" --backend-frontname="admin" --search-engine=elasticsearch7 --elasticsearch-host="localhost" --elasticsearch-port=9200 حسنًا، نظرًا لأن نظام التشغيل Windows ليس مدعومًا لتشغيل ماجنتو عليه مثل نظام التشغيل Ubuntu، فستواجهك عدة مشاكل أثناء عملية التثبيت، وأولى هذه المشاكل ستكون بعد تشغيل الأمر السابق، وهي عبارة عن خطأ في سطر 170 بملف PatchApplier.php، وخطأ في سطر 72 بملف Gd2.php كما هو موضح بالصورة التالية: ولحل هذه المشكلة، افتح الملف Gd2.php الموجود بالمسار التالي: C:\xampp\htdocs\magento2\vendor\magento\framework\Image\Adapter\Gd2.php ثم عدل الشيفرة البرمجية بالسطر التالي: if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes)) { لتصبح كما يلي: if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes) && !file_exists($filename)) { الآن، احفظ الملف وأعد تشغيل أمر تثبيت ماجنتو السابق مرةً أخرى في موجه الأوامر، ومن المفترض أن تكتمل عملية التثبيت بنجاح هذه المرة. تهانينا، لقد ثَبَّتَّ Magento 2.4.5 بنجاح على خادم استضافة يعمل بنظام التشغيل ويندوز. أخيرًا: حان الوقت لجني ثمار المجهود الذي بذلناه، بأن نتحقق من عمل الواجهة الأمامية والخلفية للمتجر دون مشاكل، لذا عليك هنا الذهاب إلى المتصفح وكتابة أحد عناوين خادم الاستضافة. في حالتنا سأكتب اسم النطاق الخاص بمتجرنا، وهو: http://bedding.store.com المشكلة الثانية التي ستواجهك هي عدم عرض الواجهة الأمامية للمتجر بطريقة سليمة كما هو موضح بالصورة التالية. ولحل هذه المشكلة، افتح الملف Validator.php الموجود بالمسار التالي: C:\xampp\htdocs\magento2\vendor\magento\framework\View\Element\Template\File\validator.php ثم عدّل الشيفرة البرمجية بالسطر التالي: $realPath = $this->fileDriver->getRealPath($path); لتصبح كما يلي: $realPath = str_replace('\\', '/', $this->fileDriver->getRealPath($path)); بعد ذلك افتح الملف di.xml الموجود بالمسار التالي: C:\xampp\htdocs\magento2\app/etc/di.xml، ثم عدل الشيفرة البرمجية بالسطر التالي: Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink لتصبح كما يلي: Magento\Framework\App\View\Asset\MaterializationStrategy\Copy الآن، اكتب الخمسة أوامر التالية لإعادة فهرسة وترقية قاعدة البيانات، من خلال نشر ملفات العرض الثابتة، ومسح ذاكرة التخزين المؤقتة وإلغاء خاصية التحقق بخطوتين أثناء تسجيل الدخول للواجهة الخلفية، وهذه الأوامر مجمعة بسطر واحد كما يلي: php bin/magento indexer:reindex && php bin/magento setup:upgrade && php bin/magento setup:static-content:deploy -f && php bin/magento cache:flush && php bin/magento module:disable Magento_TwoFactorAuth في النهاية، أعد تحميل الواجهة الأمامية والخلفية للمتجر وستجدهم يعملان دون مشاكل. الخطوة السابعة: تنزيل عينة من البيانات (خطوة اختيارية) لإضافة عينة من البيانات لمتجرنا لملئه ببعض المنتجات والقوائم والفئات والصور كما فعلنا في نظام Ubuntu، اكتب الخمسة أوامر التالية لجلب عينة البيانات، من خلال إعادة فهرسة وترقية قاعدة البيانات، ونشر ملفات العرض الثابتة ومسح ذاكرة التخزين المؤقتة، وهذه الأوامر مجمعة بسطر واحد كما يلي: php bin/magento sampledata:deploy && php bin/magento indexer:reindex && php bin/magento setup:upgrade && php bin/magento setup:static-content:deploy -f && php bin/magento cache:flush وفي حالة عدم ظهور صور المنتجات على المتجر، يمكنك حل هذه المشكلة بكتابة الأمر التالي: php bin/magento catalog:image:resize أحسنت، بهذا يكون أصبح لديك الآن متجر بنظام ماجنتو 2.4.5 يعمل على خادم استضافة بنظام ويندوز وبه عينة من البيانات. خاتمة وإلى هنا نكون قد وصلنا إلى نهاية هذا الدرس من هذا الدليل الذي تعرفنا فيه على خطة بناء متجر إلكتروني متعدد اللغات ويدعم اللغة العربية، وتعرفنا على الأدوات التي سنستخدمها لمساعدتنا في بناء متجرنا، ثم بدأنا في إعداد خادم الاستضافة بالأدوات اللازمة لتحميل وتثبيت أحدث إصدار من نظام ماجنتو وهو الإصدار 2.4.5 وثبتناه على نظامي التشغيل Ubuntu و Windows. وبما أن عملية تثبيت نظام ماجنتو منذ أن استحوذت شركة أدوبي عليه تُعَد أمرًا محبطًا للغاية وقد يستسلم العديد من المستخدمين نظرًا لكثرة خطوات تثبيته ووجود العديد من المشكلات أثناء عملية التثبيت، فإن واجهتك أي مشاكل أو لو كانت لديك استفسارات فلا تتردد في ذكرها لنا في التعليقات لنساعدك على تخطيها. وفي النهاية نتمنى أن يكون هذا الدرس قد أضاف لكم معلومات جديدة ومفيدة، وفي الدرس القادم سوف نشرح الإعدادات الأساسية لتكوين المتجر. اقرأ أيضًا مقدمة إلى نظام ماجنتو ومفهوم التجارة الإلكترونية إضافة المنتجات البسيطة إلى ماجنتو الإعدادات الأساسيّة لمتجر ماجنتو – الجزء الأوّل نظرة على المنتجات في ماجنتو1 نقطة
-
علي حسب غرضك من الجهاز بمعني إذا كان غرضك هو تعلم الموشن جرافيك فأنا أتفق من الأخ مصطفي في المواصفات المطلوبة ولكن إذا كان غرضك هو تعلم البرمجة يجب أن تقوم في البداية بتحديد أي مجال من مجالات البرمجة سوف تتعلم, وهذه بعض مجالات البرمجة: تطوير الويب بأنواعه الثلاثة: التطوير الكامل وتطوير الواجهة الخلفية وتطوير الواجهة الأمامية تطوير سطح المكتب تطوير تطبيقات الهاتف التخصص في مجال DevOps إدارة قواعد البيانات الأمن السيبراني تطوير الألعاب التعلم الآلي يمكنك معرفة الكثير عن كل مجال من هذه المجالات ومجالات أخري من خلال هذه المقالة. ولنأخذ علي سبيل المثال تطوير تطبيقات الهاتف و تطوير تطبيقات الويب. في مجال تطوير تطبيقات الهاتف تحتاج إلي مواصفات أكبر بسبب البرامج التي سوف تستخدمها في عملية التطوير مثل Android Studio و المحاكيات و ما إلى ذلك. ولكن في تطوير تطبيقات الويب لن تحتاج إلى هذه البرمج أنت فقط سوف تحتاج إلى متصفح مثل Google Chrome و محرر أكواد مثل Visual Studio Code فقط.1 نقطة
-
بالنسبة لمجال البرمجة عموماً لا تحتاج مواصفات عالية ولكن في مجال برمجة تطبيقات الأندرويد بواسطة ال android studio تحتاج لرامات عالية (8جيجا أو كثر ) وبروسيسور عالي نسبياً جيل حديث أما بالنسبة لمجالات البرمجة الأخرى لا تحتاج إلى مواصفات عالية لذلك إذا لم يكن بإمكانك شراء حاسوب حالياً فلديك هذه النصائح لمتابعة العمل والتعلم زيادة الرامات لفتح عدة برمجيات في نفس الوقت إضافة ssd لزيادة وتحسين سرعة الحاسوب تثبيت إي توزيعة من نظام linux حيث لا يستهلك الكثير من الموارد حيث يعتبر نظام أسلس من ال windows استخدام برمجيات اخف مثلاً بدلاً من google chrome يمكن استخدام edge فهو أسرع من google chrome بدلاً من استخدام IDE يمكنك استخدام محرر أكواد مثل vs code أسرع بكثير بدلاً من android studio يمكنك استخدام برمجيات بديله ولكن هذا يأتي على حساب المميزات الموجودة في android studio1 نقطة
-
ليس اجباريا أن يكون لديك حاسوب قوي لعملية التعلم وممارسة البرمجة والعمل بها, ولكن بالتأكيد يفضل ان يكون لديك حاسوب ذو مواصفات قوية ومناسبة لتعلم البرمجة, لكي لا تواجه بطؤ أثناء عملية التعلم وتطبيق الأكواد, فتشعر بالاحباط خلال عملية التعلم وخلال تنفيذ الاكواد مما يؤدي الى بطؤ في عملية التقدم واكتساب الخبرة واحيانا اتخاذ قرار بأن لا تتعلم البرمجة ولذلك مهم أن يكون الحاسوب يتميز بمواصفات نوعا ما قوية, مساحة الرام التي لديك تعتبر قليلة ويفضل زيادتها لتكن على الاقل 8 جيجا, لأن الووندوز يستهلك مساحة كبيرة من الرام وأيضا برنامج محرر الأكواد يستهلك من الرام, والمتصفح الذي يستهلك بشكل كبير من الرام وبالتالي 4 جيجا تعتبر قليلة ويفضل زيادتها1 نقطة
-
لا بالطبع لا يجب أن يكون لديك حاسوب بمواصفات عالية للتعلم والعمل. يمكنك البدء في التعلم والعمل بأي جهاز كمبيوتر يعمل بنظام التشغيل المناسب للمهام التي تريد القيام بها. ومع ذلك، يمكن أن يكون لديك حاجة إلى زيادة سعة الذاكرة العشوائية RAM وتحسين المعالج وبطاقة الرسومات في بعض الحالات لتشغيل بعض البرامج الثقيلة بشكل مريح، ولكن هذا يعتمد على نوع العمل الذي تقوم به. مواصفات الحاسوب المناسب للبرمجة: المعالج: يفضل اختيار معالج بسرعة عالية ويفضل أن يكون بـ 4 أو أكثر من النوى. الذاكرة العشوائية (RAM): يجب أن تكون بحجم كافي لتشغيل برامج التطوير، يفضل 8 جيجابايت أو أكثر. القرص الصلب (HDD) أو قرص الحالة الصلبة (SSD): يجب أن يكون بحجم كافي لتثبيت النظام والبرامج، ويفضل استخدام SSD لتسريع عملية التحميل والإقلاع. بطاقة الشاشة: يفضل استخدام بطاقة شاشة متوسطة الأداء أو عالية الأداء إذا كنت ستعمل على تطوير برامج الجرافيك أو الألعاب. مواصفات الحاسوب المناسب لبرامج الجرافيك: المعالج: يفضل اختيار معالج بسرعة عالية ويفضل أن يكون بـ 4 أو أكثر من النوى. الذاكرة العشوائية (RAM): يجب أن تكون بحجم كافي لتشغيل برامج الجرافيك، يفضل 16 جيجابايت أو أكثر. القرص الصلب (HDD) أو قرص الحالة الصلبة (SSD): يجب أن يكون بحجم كافي لتثبيت النظام والبرامج، ويفضل استخدام SSD لتسريع عملية التحميل والإقلاع. بطاقة الشاشة: يفضل استخدام بطاقة شاشة عالية الأداء مثل NVIDIA GeForce أو AMD Radeon. ملحوظة: يمكن العمل على البرمجة وبرامج الجرافيك بحاسوب بمواصفات أقل، ولكن المواصفات المذكورة أعلاه ستساعد على تحسين سرعة العمل وجودة الأداء. في المجمل، يمكن البدء في التعلم والعمل بأي جهاز كمبيوتر متاح لديك، ثم ترقية الموارد تباعًا حسب الحاجة وقدرتك على ذلك. بالنسبة لطريقة التقديم على دورات أكاديمية حسوب: ستجدي هنا شرح كامل لطريقة الإشتراك وطرق الدفع وهما باي بال و البطاقة الإئتمانية. عند اشتراكك بإحدى دورات حسوب، ستحصلي تلقائيًا على وصول لأول مسار من بقية الدورات بشكل مجاني لتتعرفي على محتواها، وبعد ذلك يمكنك الاشتراك بدورة ثانية في حال أردتِ إكمال المسارات في هذه الدورة الجديدة. يمكنك الحصول على المزيد من التفاصيل حول الدورات وإن كان لديك أي سؤال من مركز المساعدة.1 نقطة
-
إذا كنت تريد إنشاء ذلك بواسطة لغة javascript فالأمر بسيط يمكنك إنشاء ذلك بواسطة هذا الكود : var x = 2; while (x <= 100){ console.log(x); x += 2; //القيمة التي سوف تضاف لتجعل العدد زوجي } x هو المتغير الذي سوف يبدأ التكرار عنده وداخل شرط while هي القيمة التي سوف يتوقف عندها التكرار . وإذا كنت تريد عمل ذلك بواسطة c++ : #include <iostream> using namespace std; int main() { /* Initialize i with 1. */ int i=1; /* If i is less than or equal to 100. */ while( i <= 100){ /* If number is divisible by 2, then print.*/ if(i % 2 == 0){ cout <<i<< " "; } /* Increment i. */ i++; } return 0; } وأيضاً إذا كنت تريد عمل ذلك بواسطة python : n = 2 while n <= 100: print (n) n += 21 نقطة
-
تعرفنا في المقالات السابقة على مفهوم قواعد البيانات، وعرضنا مقدمة عن لغة الاستعلام البنائية SQL وأنواع الجمل فيها، وتعرفنا أيضا على كيفية بناء الجدول في قاعدة البيانات والتعديل على هيكله. سنتطرق في هذا المقال إلى مفهوم القيود الموجودة في قواعد البيانات، وسنتكلم عن أنواع البيانات التي يمكن استخدامها. أنواع البيانات Data Types في قاعدة البيانات يُحدّد نوع البيانات طبيعة وشكل القيمة التي من الممكن أن يأخذها العمود في الجدول، ويجب علينا أن نحدد اسم العمود ونوع بياناته عند إنشاء هذا الجدول وذلك في جملة إنشائه. توجد أنواع بيانات معيارية حدّدتها مؤسسة ANSI، ولكن ليس كل أنظمة إدارة قواعد البيانات توفر هذه المعايير وتطبقها على نحو كامل. يلخص الجدول التالي أهم وأشهر الأنواع المستخدمة هناك أنواع معيارية أخرى مثل XML، ARRAY، MULTISET ولكنها غير متداولة على نطاق واسع، ويجب الانتباه إلى أن نظم إدارة قواعد البيانات تختلف في تسمية وتعريف بعض أنواع البيانات، فمثلاً، نوع البيانات الرقم يسمى في قواعد بيانات أوراكل بـ Number ولكن في قواعد البيانات MySQL وPostgreSQL يسمى Int أو Integer. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن القيود يعدّ موضوع القيود من المواضيع الهامة جدا في قواعد البيانات، ويجب على المبرمج ومسؤول قواعد البيانات الإلمام بأنواع القيود وكيفية تعريفها والتعامل معها. الهدف العام من القيود هو الحفاظ على سلامة البيانات Data integrity ودقتها. نستطيع أن نُعرّف القيد على أنه شرط يحكم العمود أو الجدول ويُتأكد من الالتزام بهذا الشرطعند إجراء عمليات مثل الإضافة والتعديل والحذف (على سبيل الذكر لا الحصر)، وفي حال لم يُحترَم الشرط فإن العملية مصدر الأمر تُرفَض ويوقَف تنفيذها ويُتراجع عن أي أثر أحدثته. مجال القيود تُطبَّق القيود على مستويين: مستوى العمود: يُعَرَّف القيد ضمن تعريف العمود ويطبق القيد على مستوى هذا العمود فقط. مستوى الجدول: يُعَرَّف القيد منفصلا عن أي عمود (عادة في نهاية تعريف الجدول)، ويمكن أن يطبق القيد على واحد أو أكثر من الأعمدة. أنواع القيود قيد “العمود غير الفارغ” Not Null Constraint: نستطيع إعطاء قيمة فارغة لعمود ما لم نُعرف هذا القيد عليه، والذي نقصد به منع إدخال أو إعطاء العمود قيمة فارغة Null عند إجراء عمليات مثل الإضافة أو التعديل على السجلات. يعرف المثال التالي جدولًا Persons مع تطبيق قيد العمود غير الفارغ على أول ثلاث أعمدة (طبقنا المثال على MySQL 5.7 وOracle XE): CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255) NOT NULL, Age int ); قيد القيمة الفريدة UNIQUE Constraint: مهمة هذا القيد هي ضمان عدم تكرار قيمة عمود في أي من سجلات الجدول، بحيث تكون هذه القيمة فريدة ومختلفة. نستطيع تعريف أكثر من قيد فريد في الجدول على أكثر من عمود، كما أن قيد المفتاح الرئيسي (انظر بالأسفل) يقدم ضمان القيمة الفريدة للعمود بجانب القيد الفريد. يُعرَّف القيد الفريد بالطريقة التالية: CREATE TABLE Persons ( ID int NOT NULL UNIQUE, LastName varchar(255) NOT NULL, FirstName varchar(255) NOT NULL, Age int ); أو CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, UNIQUE (ID) ); وفي حال أردنا أن نعرف القيد على مستوى أكثر من عمود: CREATE TABLE Persons ( ID int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT UC_Person UNIQUE (ID,LastName) ); قيد المفتاح الرئيسي Primary Key Constraint: يُطبَّق هذا القيد على عمود أو أكثر بحيث تكون قيمة العمود أو قيمة الأعمدة مجتمعة تُعَرِّف كل سجل على نحو فريد عن السجلات الأخرى في الجدول. يُعدّ قيد المفتاح الرئيسي قيدًا فريدًا أضيف إليه قيد غير فارغ. خصائص قيد المفتاح الرئيسي: يمكن تعريف قيد مفتاح رئيسي واحد على مستوى الجدول. لا يمكن تعريف قيد المفتاح الرئيسي على أعمدة من نوع BLOB،CLOB،NCLOB،ARRAY. قيم العمود المطبق عليه قيد المفتاح الرئيسي لابد أن تكون فريدة لكل سجل وألا تأخذ قيمة فارغة. تُعَرف قيود المفتاح الأجنبي بأخذها مَرجِعاً من مفتاح قيد رئيسي في جدول آخر، وذلك لبناء علاقة بين جدولين. يُعرَّف قيد المفتاح الرئيسي كالتالي: CREATE TABLE Persons ( ID int PRIMARY KEY, LastName varchar(255) NOT NULL, FirstName varchar(255), Age int ); أو CREATE TABLE Persons ( ID int , LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, PRIMARY KEY (ID) ); نعرّف في ما يلي قيد مفتاح رئيسي على أكثر من عمود ونعطيه الاسم PK_Person: CREATE TABLE Persons ( ID int , LastName varchar(255) NOT NULL, FirstName varchar(255), Age int, CONSTRAINT PK_Person PRIMARY KEY (ID,LastName) ); قيد المفتاح الأجنبي Foreign Key Constraint: يعرّف قيد المفتاح الأجنبي عمودًا - أو أكثر - في الجدول على أنه مرجع من عمود يوجد في جدول آخر، بحيث تكون قيمة العمود مأخوذة من هذا العمود المرجعي بشرط أن يُعرَّف عليه قيد فريد أو قيد مفتاح رئيسي (في الجدول الآخر). يعدّ هذا القيد وسيلة لربط جداول قاعدة البيانات وبناء علاقات بينها، ومن الممكن تعريف أكثر من قيد أجنبي في الجدول الواحد. نستطيع أن نعرف القيد الأجنبي في الجدول كالتالي: CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), FOREIGN KEY (PersonID) REFERENCES Persons(ID) ); لإعطاء القيد الأجنبي اسما مخصَّصا نستخدم الطريقة التالية: CREATE TABLE Orders ( OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY (OrderID), CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID) REFERENCES Persons(ID) ); إن أردت الاستزادة، فارجع إلى توثيق أنواع البيانات في لغة SQL من موسوعة حسوب.1 نقطة