اذهب إلى المحتوى

البحث في الموقع

المحتوى عن 'تهيئة الخادم'.

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المحتوى


التصنيفات

  • الإدارة والقيادة
  • التخطيط وسير العمل
  • التمويل
  • فريق العمل
  • دراسة حالات
  • التعامل مع العملاء
  • التعهيد الخارجي
  • السلوك التنظيمي في المؤسسات
  • عالم الأعمال
  • التجارة والتجارة الإلكترونية
  • نصائح وإرشادات
  • مقالات ريادة أعمال عامة

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • PHP
    • Laravel
    • ووردبريس
  • جافاسكربت
    • لغة TypeScript
    • Node.js
    • React
    • Vue.js
    • Angular
    • jQuery
    • Cordova
  • HTML
  • CSS
    • Sass
    • إطار عمل Bootstrap
  • SQL
  • لغة C#‎
    • ‎.NET
    • منصة Xamarin
  • لغة C++‎
  • لغة C
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • لغة Rust
  • برمجة أندرويد
  • لغة R
  • الذكاء الاصطناعي
  • صناعة الألعاب
  • سير العمل
    • Git
  • الأنظمة والأنظمة المدمجة

التصنيفات

  • تصميم تجربة المستخدم UX
  • تصميم واجهة المستخدم UI
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب GIMP
    • كريتا Krita
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • مقالات DevOps عامة
  • خوادم
    • الويب HTTP
    • البريد الإلكتروني
    • قواعد البيانات
    • DNS
    • Samba
  • الحوسبة السحابية
    • Docker
  • إدارة الإعدادات والنشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
    • ريدهات (Red Hat)
  • خواديم ويندوز
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • شبكات
    • سيسكو (Cisco)

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • مقالات عمل حر عامة
  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • العمل الحر المهني
    • العمل بالترجمة
    • العمل كمساعد افتراضي
    • العمل بكتابة المحتوى

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
    • بريستاشوب
    • أوبن كارت
    • دروبال
  • الترجمة بمساعدة الحاسوب
    • omegaT
    • memoQ
    • Trados
    • Memsource
  • برامج تخطيط موارد المؤسسات ERP
    • تطبيقات أودو odoo
  • أنظمة تشغيل الحواسيب والهواتف
    • ويندوز
    • لينكس
  • مقالات عامة

التصنيفات

  • آخر التحديثات

أسئلة وأجوبة

  • الأقسام
    • أسئلة البرمجة
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات

التصنيفات

  • كتب ريادة الأعمال
  • كتب العمل الحر
  • كتب تسويق ومبيعات
  • كتب برمجة
  • كتب تصميم
  • كتب DevOps

ابحث في

ابحث عن


تاريخ الإنشاء

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


رشح النتائج حسب

تاريخ الانضمام

  • بداية

    نهاية


المجموعة


النبذة الشخصية

تم العثور على 1 نتيجة

  1. حزمة LEMP هي مجموعة من البرامج التي يمكن استخدامها لتٌقدّم صفحات الويب الديناميكية وتطبيقات الويب. وهو عبارة عن اختصار يصف نظام تشغيل لينكس مع خادم Nginx (يُنطق "Engine-X"). البيانات الخلفية تكون مخزنة في قاعدة بيانات MySQL وتقوم PHP بالمعالجة الديناميكية. يشرح هذا المقال كيفية تثبيت حزمة LEMP على خادم أوبونتو 18.04. يتكفل نظام أوبونتو بالمتطلب الأول. سنشرح هنا كيفية تجهيز باقي المكونات وتشغيلها. المتطلبات قبل البدء، تحتاج لمستخدم عادي غير مسؤول بصلاحيات sudo. يمكنك إعداد ذلك باتباع مقال الإعداد الأولي لخادم أوبونتو 18.04. عندما تنتهي من تجهيز المستخدم، يمكنك بدء الخطوات التالية. خطوة 1 - تثبيت خادم الويب Nginx كي نتمكن من عرض صفحات الويب لزوار الموقع، سنثبِّت خادم الويب الحديث والفعال Nginx. جميع البرامج المستخدمة في هذا المقال متوفرة في مخزن حزم أوبونتو الافتراضي. ما يعني أنه يمكننا استخدام نظام إدارة الحزم apt لإنهاء التثبيتات الهامة. في أول مرة نَستخدم فيها apt في أي جلسة، نبدأ بتحديث محتوى الحزمة ثم نثبت الخادم: $ sudo apt update $ sudo apt install nginx Nginx مُعد كي يعمل تلقائيا بعد التثبيت على أوبونتو 18.04. إن كان جدار حماية ufw يعمل لديك كما تم الشرح في مقال الإعداد الأولي، فستحتاج للسماح باتصالات Nginx. يُسجل Nginx في ufw تلقائيا خلال التثبيت ما يجعل العملية أسهل. يُستحسن السماح للمنفذ الذي سيتيح لحركة المرور بالوصول مع أعلى قيود ممكنة. لأننا لم نقم بإعداد SSL بعد، فستحتاج لإتاحة حركة المرور في المنفذ 80 فقط. لتفعيل ذلك: $ sudo ufw allow 'Nginx HTTP' للتأكد من التغييرات: $ sudo ufw status سَتعرض مخرجات هذا الأمر أن حركة المرور خلال HTTP متاحة: المخرجات: Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6) بعد إضافة هذا الإعداد إلى جدار الحماية يمكنك اختبار إن كان الخادم يعمل عبر الدخول إلى اسم نطاق الخادم أو عنوان بروتوكول الإنترنت العام للخادم عبر المتصفح. إن كنت لا تملك اسم نطاق محدد للخادم وكنت لا تعلم عنوان بروتوكول الإنترنت العام للخادم يمكنك إيجاده من خلال تنفيذ لأمر: $ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' هذا الأمر سيزودك بمجموعة من عناوين بروتوكول الإنترنت، يمكنك تجريبها على متصفحك. كطريقة بديلة، يمكنك التحقق إن كان عنوان بروتوكول الإنترنت متاح من مكان آخر على الإنترنت: $ curl -4 icanhazip.com أدخِل عنوان بروتوكول الإنترنت الذي حصلت عليه في متصفحك، وستظهر لك صفحة Nginx الرئيسية: http://server_domain_or_IP (صورة) إن رأيت الصفحة التي في الأعلى، فإن Nginx مُثبّت بنجاح. خطوة 2 - تثبيت MySQL لإدارة بيانات الموقع الآن وبما أنه أصبح لديك خادم ويب، ستحتاج لِتثبيت MySQL (نظام إدارة قواعد بيانات) وإدارة بيانات الموقع. ثبّت MySQL باستخدام الأمر: $ sudo apt install mysql-server تم تثبيت قاعدة بيانات MySQL لكن إعدادها لم يكتمل بعد. لتأمين التثبيت، تُرفق MySQL بسكربت يسألك إن كنت تريد تغيير الإعدادات الافتراضية الغير آمنة. لبدء السكربت: $ sudo mysql_secure_installation سيسألك السكربت إن كنت تريد إعداد VALIDATE PASSWORD PLUGIN. تحذير: يجب أن تفهم هذه الميزة قبل تفعيلها. فعند تفعيل هذه الميزة، سيرفض MySQL أي كلمة مرور لا تطابق معاييره المحددة وسيظهر خطأ. مما يتسبب في بعض المشاكل في حال كنت تستخدم كلمة مرور ضعيفة بالإضافة إلى برنامج يُعِد بيانات مستخدمي MySQL تلقائيا مثل حزمة phpMyAdmin. يُفضل عدم تفعيل هذا الأمر لتفادي مثل هذه الأخطاء. لكن، يُفضَّل أن تستخدم كلمات مرور قوية وفريدة لمستخدمي قواعد البيانات دائما. أجب Y للتفعيل أو أي حرف آخر للاستمرار بدون تفعيل الإضافة. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: في حال اخترت تفعيل التحقق، فَسَيسألك السكربت لاختيار مستوى تحقق كلمة المرور. تذكر أنه إن اخترت 2 -أقوى مستوى - فسترى بعض الأخطاء عند إدخال كلمة مرور لا تحتوي على أرقام، أحرف كبيرة وصغيرة، ورموز أو أي كلمة اعتيادية من قاموس اللغة. There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 ثم سيُطلب منك إدخال وتأكيد كلمة مرور مستخدم مسؤول: Please set the password for root here. New password: Re-enter new password: لباقي الأسئلة قم بالضغط على Y ثم ENTER في كل شاشة. بهذه الطريقة، سيتم حذف بعض المستخدمين المجهولين، وفحص قاعدة البيانات، وتعطيل تسجيل دخول المستخدمين المسؤولين عن بعد، ويعيد تحميل الإعدادات الجديدة كي يقوم MySQL بتطبيقها مبشرة. لاحظ أنه في اصدارات MySQL 5.7 وما يليها على أوبونتو يُعد المستخدم المسؤول للمصادقة باستخدام إضافة auth_socket افتراضيا بدلا من التصديق باستخدام كلمة مرور. هذه الميزة توفر أمانًا أكبر وسهولة استخدام في حالات متعددة، لكنها قد تكون معقدة عندما تريد السماح لبرامج خارجية مثل (phpMyAdmin) بالوصول للمستخدم. إن كان استخدام إضافة auth_socket للوصول إلى MySQL يتناسب مع طبيعة عملك يمكنك الاستمرار بالخطوة 3. لكن إن كنت تفضل استخدام كلمة المرور للاتصال ب MySQL كمستخدم مسؤول فستحتاج لتغيير طريقة مصادقته من auth_socket إلى mysql_native_password. للقيام بذلك، افتح شاشة اوامر MySQL: $ sudo mysql ثم قم بالتحقق من طريقة المصادقة التي يستخدمها كل حساب من مستخدمي MySQL باستخدام الأمر: mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; المخرجات: +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | | auth_socket | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec) يمكنك ملاحظة أن المستخدم المسؤول يستخدم التصديق بإضافة auth_socket. لإعداد حساب المستخدم المسؤول للمصادقة بكلمة مرور، نفّذ أمر ALTER USER التالي. تأكد من استخدامك كلمة مرور قوية من اختيارك: mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ثم نفّذ الأمر FLUSH PRIVILEGES والذي سيجعل الخادم يعيد جداوِل الصلاحيات حتى تعمل التغييرات التي أجريتها: mysql> FLUSH PRIVILEGES; تحقق من طرق التصديق لكل مستخدام مجددًا لتتأكد من أن المستخدم المسؤول لم يعد يستخدم المصادقة باضافة auth_socket: mysql> SELECT user,authentication_string,plugin,host FROM mysql.user; المخرجات: +------------------+-------------------------------------------+-----------------------+-----------+ | user | authentication_string | plugin | host | +------------------+-------------------------------------------+-----------------------+-----------+ | root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost | | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost | | debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost | +------------------+-------------------------------------------+-----------------------+-----------+ 4 rows in set (0.00 sec) يمكنك رؤية أن مستخدم MySQL المسؤول أصبح يستخدم المصادقة بكلمة المرور. بعد تأكدك من هذا على الخادم الخاص بك أغلق شاشة اوامر MySQL: mysql> exit ملاحظة: بعد تغييرك لطريقة مصادقة المستخدم المسؤول إلى كلمة مرور، فلن تستطيع الوصول إلى MySQL باستخدام الأمر sudo mysql المُستخدم سابقا، بدلا عن ذلك يجب أن تنفذ الأمر التالي: $ mysql -u root -p بعد ادخال كلمة المرور التي أعددتها قبل قليل، ستُفتح لك شاشة اوامر MySQL. هكذا يكون نظام قواعد البيانات جاهزًا ويمكنك الانتقال إلى خطوة تثبيت PHP. خطوة 3 - تثبيت PHP وإعداد Nginx لاستخدام معالج PHP أصبح لديك الآن Nginx لعرض صفحات الويب، و MySQL لتخزين وإدارة البيانات. لكن ليس لديك شيء يقوم بتوليد صفحات ويب ديناميكية. هنا يأتي دور PHP. لأن Nginx لا يحتوي على وحدة معالجة PHP مثل باقي خوادم الويب، ستحتاج لتثبيت php-fpm والتي تعني "fastCGI process manager". سنجعل Nginx يُمرر طلبات PHP إلى هذا البرنامج للمعالجة. ملاحظة: اعتمادًا على مزود الخدمة السحابية لديك، قد تحتاج لإضافة مخزن أوبونتو universe الذي يتضمن برامج مجانية ومفتوحة المصدر أنشئت بواسطة مجتمع أوبونتو؛ يمكنك القيام بذلك قبل تثبيت php-fp: $ sudo add-apt-repository universe ثبّت php-fpm مع الحزمة المساعدة php-mysql التي تسمح ل PHP بالتواصل مع قاعدة البيانات. سيجلب التثبيت ملفات PHP الرئيسية: $ sudo apt install php-fpm php-mysql الآن أصبح لديك جميع مكونات حزمة LEMP، لكن ما زلت تحتاج لتعديل بعض إعدادت التكوين حتى تجعل Nginx بتعامل مع معالج PHP لعرض المحتوى الديناميكي. يتم ذلك على مستوى أجزاء الخادم (أجزاء الخادم تشبه مُستضيفوا Apache الوهميون). للقيام بذلك، افتح ملف تكوين جزء خادم جديد في مجلد /etc/nginx/sites-available/. في هذا المثال، سنُسمي ملف جزء السيرفر example.com. يمكنك اختيار الاسم الذي تريده: $ sudo nano /etc/nginx/sites-available/example.com ستتمكن بتعديل ملف تكوين جزء خادم جديد بدلا من تعديل الجزء الافتراضي من استعادة الاعدادات الافتراضية في حال احتجتها. أضف المحتوى التالي المأخوذ من ملف تكوين جزء الخادم الرئيسي مع بعض التعديلات الطفيفة إلى ملف تكوين جزء الخادم الجديد: /etc/nginx/sites-available/example.com server { listen 80; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name example.com; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; } location ~ /\.ht { deny all; } } هذا ما تقوم به التوجيهات وأجزاء التحديد: listen - تُعرف المنفذ الذي يستمع له Nginx، في هذه الحالة يستمع Nginx إلى المنفذ 80، المنفذ الافتراضي ل HTTP. root - يُعرّف المجلد الرئيسي حيث تُخزن ملفات الموقع. index - يقوم بإعداد Nginx كي يجعل الأولوية لعرض الملفات المسماه index.php - إن كانت متاحة عند طلب ملف index. server_name - تعرّف الجزء الذي يجب أن يُستخدم لطلب ما للخادم. حدد هذه التوجيهة إلى اسم نطاق الخادم أو عنوان بروتوكول الإنترنت للخادم. location /‎ - أول جزء تحديد يحتوي توجيهة try_files والتي تتحقق من وجود ملفات تطابق طلب عنوان URI. إن لم يجد Nginx الملف المناسب، يقوم بإرجاع خطأ 404. "location ~ \.php$‎" - جزء التحديد هذا يهتم بالمعالجة الفعلية ل PHP عبر توجيه Nginx إلى ملف تكوين fastcgi-php.conf وملف php7.2-fpm.sock الذي يُعرّف الحزمة المرتبطة ب php-fpm. location ~ /\.ht - آخر جزء تحديد والذي يتعامل مع ملف .htaccess الذي لا يقوم Nginx بمعالجته. بإضافة توجيهة deny all فإن ملفات "‎.htaccess" التي قد تتواجد في المجلد الرئيسي لن تُعرض للزائر. بعد إضافة هذا المحتوى، احفظ الملف واغلقه. فعّل جزء الخادم الجديد بإنشاء رابط رمزي من ملف تكوين جزء الخادم الجديد في المجلد /etc/nginx/sites-available/ إلى المجلد /etc/nginx/sites-enabled/: $ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ ثم ألغِ ربط ملف التكوين الرئيسي من مجلد /sites-enabled/: $ sudo unlink /etc/nginx/sites-enabled/default ملاحظة: إن احتجت لاستعادة الإعدادت الافتراضية، يمكنك ذلك بإعادة إنشاء الرابط الرمزي: $ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/ افحص ملف التكوين الجديد من الأخطاء الإملائية : $ sudo nginx -t إن ظهرت أي أخطاء عد وتحقق من الملف قبل الاستمرار. عند انتهائك أعد تشغيل Nginx كي تُطبّق التغييرات: $ sudo systemctl reload nginx وبهذا ننتهي من تثبيت وإعداد حزمة LEMP. لكن ما زلنا لم نتأكد ما إن كانت جميع المكونات تتواصل ببعضها البعض. خطوة 4 - انشاء ملف PHP للتحقق من الاعدادات الآن، يجب أن تكون حزمة LEMP مُعدة بشكل تام. يمكنك اختبار ذلك للتحقق من أن Nginx يعالج ملفات "‎.php" من معالج PHP بطريقة صحيحة. للقيام بذلك استخدم محرر النصوص لإنشاء ملف PHP تجريبي وسمّه info.php في المجلد الرئيسي. $ sudo nano /var/www/html/info.php أدخل الأسطر التالية إلى الملف. هذا الكود هو كود PHP صحيح والذي سيعرض معلومات عن الخادم: الملف ‎/var/www/html/info.php: <?php phpinfo(); عند انتهائك احفظ الملف واغلقه. يمكن الآن زيارة هذه الصفحة من متصفحك بزيارة اسم نطاق الخادم أو عنوان بروتوكول الإنترنت العام للخادم متبوعا ب /info.php: http://your_server_domain_or_IP/info.php يجب أن ترى صفحة ويب تم توليدها باستخدام PHP تحتوي معلومات الخادم: (صورة) إن رأيت صفحة تشبه الصورة السابقة، فإن إعدادك لمعالج PHP مع Nginx صحيح. بعد التحقق من أن Nginx يعالج الصفحات بصورة صحيحة، يُفضل أن تحذف الملف الذي أنشاته لأنه قد يعطي المستخدمين المخولين بالوصول بعض المعلومات عن إعداد الخادم مما قد يساعدهم في محاولة اقتحامه. يمكنك توليد هذا الملف عند احتياجك له. قم بحذف الملف: $ sudo rm /var/www/html/info.php وبهذا تكون قد أعددت وشغّلت حزمة LEMP على خادم أوبونتو 18.04. الخلاصة تعد حزمة LEMP هيكل قوي يمكنك من بناء وتشغيل أي موقع أو تطبيق ويب تقريبا من الخادم الخاص بك. يوجد العديد من الخطوات التي يمكنك القيام بها بعد هذه الخطوة. مثلا، يجب أن تتأكد من أن الاتصالات إلى الخادم آمنة. ختاما، يمكنك تأمين تثبيت Nginx باستخدام تشفير Let's. باتباع هذا المقال، سوف تحصل على شهادة TLS/SSL للخادم الخاص بك كي يخدم المحتوى عبر HTTPS. ترجمة -وبتصرف- للمقال How To Install Linux, Nginx, MySQL, PHP (LEMP stack) on Ubuntu 18.04 لأصحابه الكتاب Mark Drake و Justin Ellingwood.
×
×
  • أضف...