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

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

المحتوى عن 'lamp'.

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

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

نوع المحتوى


التصنيفات

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

التصنيفات

  • مقالات برمجة عامة
  • مقالات برمجة متقدمة
  • 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

ابحث في

ابحث عن


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

  • بداية

    نهاية


آخر تحديث

  • بداية

    نهاية


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

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

  • بداية

    نهاية


المجموعة


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

تم العثور على 6 نتائج

  1. MySQL هو نظام مفتوح المصدر لإدارة قواعد البيانات، ويُثبت غالبا كجزء من الحزمة الشهيرة LAMP (Linux, Apache, MySQL, PHP/Python/Perl). يستخدم MySQL قواعد بيانات علائقية و SQL (لغة استعلام مهيكلة) لإدارة بياناته. الطريقة المختصرة لتثبيت MySQL سهلة جدا: حدث الحزمة الرئيسية، ثم ثبت حزمة mysql-server ثم شغِّل سكريبت الحماية المضمن. $ sudo apt update $ sudo apt install mysql-server $ sudo mysql_secure_installation متطلبات أولية لإكمال هذا الإعداد، ستحتاج إلى: خادم أوبونتو 18.04 مُعد كما في مقال الإعداد الأولي لِخادم أوبونتو. متضمنا مستخدم غير مسؤول (non-root user) بصلاحيات sudo وجدار حماية. خطوة 1 - تثبيت MySQL تتضمن تلقائيا حزمة مخزن APT في أوبونتو 18.04 أحدث إصدار فقط من MySQL. في الوقت الراهن، أحدث اصدار هو MySQL 5.7. للتثبيت، حدّث الحزمة الرئيسية على الخادم باستخدام الأمر apt: $ sudo apt update ثم ثبت الحزمة الافتراضية: $ sudo apt install mysql-server سيُثبت هذا الأمر MySQL لكنه لن يتيح لك إعداد كلمة مرور أو القيام بأي تعديل على الإعدادات. مما يجعل تثبيت MySQL غير آمن وسيتم شرح ذلك لاحقا. خطوة 2 - إعداد MySQL ستحتاج لِتشغيل سكريبت الحماية المضمن للحصول على تثبيت صحيح. الأمر الذي سيغير بعض الخيارات الأقل أمنا مثل دخول المستخدمين المسؤولين عن بعد أو عينات المستخدمين. كنا نقوم بإعداد هذه البيانات يدويا في إصدارات سابقة، لكن في هذا الإصدار يتم إعدادها تلقائيا. قم بتشغيل السكربت: $ sudo mysql_secure_installation ستنتقل عبر بعض الخيارات حيث يمكنك القيام ببعض التغييرات على إعدادات حماية MySQL المٌعدة أثناء التثبيت. الخيار الأول سيسألك إن كنت تريد إعداد إضافة التحقق بكلمة المرور والمستخدمة لقياس قوة كلمة مرور MySQL. بغض النظر عن خيارك، الخيار التالي سيكون لإعداد كلمة مرور للمستخدم المسؤول ل MySQL. أدخل وأكِد كلمة مرور آمنة. بعد ذلك يمكنك الضغط على Y ثم ENTER لقبول الإعداد الافتراضي لبقية الأسئلة التالية. سيقوم ذلك بحذف بعض المستخدمين المجهولين وقاعدة البيانات التجريبية، وإلغاء تفعيل دخول المستخدمين المسؤولين عن بعد، وسيُحمل الإعدادات الجديدة التي قمت بعملها على MySQL. لإعداد دليل بيانات MySQL يمكنك استخدام mysql_install_db للإصدارات قبل 5.7.6 و mysqld --initialize لتهيئة الإصدار 5.7.6 والإصدارات الأحدث. لكن إن كنت قد ثبتت MySQL من موزع Debian كما في الخطوة 1، فإن دليل البيانات قد تم إعداده تلقائيا ولن تحتاج للقيام بأي شيء. وبحال أو بآخر إن قمت بتنفيذ الأمر، فسترى الخطأ التالي: المخرجات: mysqld: Can't create directory '/var/lib/mysql/' (Errcode: 17 - File exists) . . . 2018-04-23T13:48:00.572066Z 0 [ERROR] Aborting لاحظ أنه حتى إن قمت بإعداد كلمة مرور لمستخدم MySQL المسؤول، فإن هذا المستخدم ليس معدًا للتحقق عبر كلمة المرور عند الاتصال بشاشة اوامر MySQL. إن أردت تغيير هذا الإعداد اتبع الخطوة 3. خطوة 3 - (اختيارية) إعداد مصادقة وصلاحيات المستخدم المستخدم المسؤول في أنظمة أوبونتو التي تستخدم MySQL 5.7 مُعد للمصادقة تلقائيا باستخدام اضافة auth_socket بدلا من كلمة المرور. توفر هذه الإضافة أمانًا أكبر وسهولةً في الاستخدام في حالات متعددة، لكنها تضيف بعض التعقيد عند حاجتك للسماح لبرنامج خارجي بالوصول للمستخدم (مثل phpMyAdmin). حتى تتمكن من الدخول إلى 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 التالي. تأكد من تغيير password إلى كلمة مرور قوية من اختيارك وتذكر أن هذا الأمر سيغير كلمة المرور التي وضعتها في خطوة 2: 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> exit بدلا من ذلك؛ قد يفضل البعض استخدام مستخدم خصص للاتصال ب MySQL. لِإنشاء مستخدم مخصص افتح شاشة اوامر MySQL مجددا: $ sudo mysql ملاحظة: إن كنت تستخدم المصادقة بكلمة المرور للمستخدم المسؤول كما تم الشرح سابقا؛ فستحتاج لاستخدام أمر آخر للدخول إلى شاشة اوامر MySQL. سيقوم الأمر التالي بتشغيل عميل MySQL مع صلاحيات مستخدم عادي. وستحصل على صلاحيات المسؤول فقط عن طريق المصادقة: $ mysql -u root -p بعد ذلك قم بإنشاء مستخدم بكلمة مرور قوية: mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password'; ثم امنح الصلاحيات المناسبة للمستخدم الجديد. كمثال، يمكنك منح المستخدم صلاحيات لجميع جداول قاعدة البيانات، بالإضافة إلى إمكانية إضافة وتعديل وحذف صلاحيات المستخدمين باستخدام الأمر التالي: mysql> GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION; لاحظ أنك لا تحتاج في هذه النقطة لاستخدام أمر FLUSH PRIVILEGES مرة أخرى. تحتاج لاستخدام هذا الأمر فقط عند تعديل جداول منح الصلاحيات باستخدام أحد الأوامر INSERT، أو UPDATE، أو DELETE. ولأنك قمت بإنشاء مستخدم هنا عوضا عن تعديل مستخدم موجود فإن الأمر FLUSH PRIVILEGES غير مهم هنا. أغلق شاشة اوامر MySQL: mysql> exit وأخيرا نختبر صحة تثبيت MySQL. خطوة 4 - اختبار MySQL يجب أن يبدأ MySQL بالعمل تلقائيا بغض النظر عن الطريقة التي قمت بتثبيته بها. للتحقق من ذلك، نقوم بفحص حالته. $ systemctl status mysql.service سترى مخرجات شبيهة بالمخرجات التالية: ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: en Active: active (running) since Wed 2018-04-23 21:21:25 UTC; 30min ago Main PID: 3754 (mysqld) Tasks: 28 Memory: 142.3M CPU: 1.994s CGroup: /system.slice/mysql.service └─3754 /usr/sbin/mysqld إن كان MySQL لا يعمل فيمكنك تشغيله باستخدام الأمر sudo systemctl start mysql. للمزيد من الفحص يمكنك محاولة الاتصال بقاعدة البيانات باستخدام أداة mysqladmin والتي تعتبر أداة عميل تتيح لك تنفيذ أوامر ذات صلاحيات مسؤول. كمثال، الأمر التالي يتصل ب MySQL كمستخدم مسؤول ("‎-u root") ويطلب كلمة مرور ("‎-p") ويعرض الإصدار. $ sudo mysqladmin -p -u root version يجب أن ترى مخرجات كالتالي: mysqladmin Ver 8.42 Distrib 5.7.21, for Linux on x86_64 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 5.7.21-1ubuntu1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 30 min 54 sec Threads: 1 Questions: 12 Slow queries: 0 Opens: 115 Flush tables: 1 Open tables: 34 Queries per second avg: 0.006 هذا يعني أن MySQL يعمل. الخلاصة الآن أصبح لديك الإعداد الأولي ل MySQL على الخادم الخاص بك. هنا بعض الأمثلة على بعض الخطوات اللاحقة: إعداد بعض الميزات الأمنية الاضافية نقل مجلد البيانات ترجمة -وبتصرف- للمقال How To Install MySQL on Ubuntu 18.04 لصاحبه الكاتب Mark Drake.
  2. لعلك تتساءل عن السبب الذي يجعلنا نستخدم Docker لتثبيت lamp أو lemp في حين أننا نستطيع تثبيتهما يدويًا؟ فتثبيتهما سهل ولا يحتاج إلى الكثير من التعقيد، لماذا نلجأ إلى Docker؟ دعني أجيب عن هذا السؤال، إنّ docker برنامج خفيف ويغنينا عن الحاجة إلى الآلات الوهمية مثل Virtualbox أو Xen أو غيرهما لنختبر أو نثبت أنظمة التشغيل. وفائدته معنا في هذا المقال أننا نستطيع استخدامه لسحب نسخ جاهزة من LAMP أو LEMP لتشغيلها في بضع دقائق، بدلًا من التثبيت اليدوي لأباتشي، ثم قاعدة بيانات مثل MariaDB أو mySQL، ثم PHP. وتحدث هذه الحالة التي تحتاج فيها إلى نسخة جاهزة وسريعة لاختبار شيء ما عليها إن كنت مطورًا أو مختبرًا أو شغوفًا بالبرمجة وتريد أن تختبر تطبيقًا يعمل في الويب، فتجد نفسك في حاجة إلى تثبيت كل تلك الخطوات التي ذكرتها في الفقرة السابقة، ولعلك جربت هذا من قبل ووجدتها عملية مرهقة وطويلة، وهنا تبرز ميزة Docker حيث يمكننا تثبيت وتشغيل برامج جاهزة ومعدة مسبقًا مباشرة دون الحاجة إلى خوض تفاصيلها التقنية كأننا نثبتها لأول مرة بأنفسنا. وهو ما سنشرحه في هذا المقال على LAMP أو LEMP. تثبيت LAMP/LEMP باستخدام Docker دعنا نبحث في docker عن نسخ جاهزة من LAMP أو LEMP: $ sudo docker search lamp وسيكون الخرج مشابهًا لهذا: NAME DESCRIPTION STARS OFFICIAL AUTOMATED reinblau/lamp Dockerfile for PHP-Projects with MySql client 17 [OK] dockie/lamp 6 [OK] nickistre/ubuntu-lamp LAMP server on Ubuntu 4 [OK] nickistre/ubuntu-lamp-wordpress LAMP on Ubuntu with wp-cli installed 4 [OK] nickistre/centos-lamp LAMP on centos setup 3 [OK] damienlagae/lamp Docker LAMP with supervisord 3 [OK] boolean93/lamp LAMP based on linode/lamp 2 [OK] drunomics/lamp 1 [OK] avatao/lamp LAMP base image 1 [OK] nickistre/ubuntu-lamp-xdebug LAMP on Ubuntu with xdebug installed 1 [OK] nickistre/centos-lamp-wordpress LAMP on CentOS setups with wp-cli installed 1 [OK] linuxconfig/lamp Automated build LAMP stack environment for... 1 [OK] greyltc/lamp a super secure, up-to-date and lightweight... 0 [OK] kazaoki/lamp ローカルフォルダをマウントす... 0 [OK] greyltc/lamp-gateone LAMP stack with gateone server & webdav 0 [OK] fauria/lamp Modern, developer friendly LAMP stack. Inc... 0 [OK] drunomics/lamp-memcached LAMP + Memcached base image. 0 [OK] rpawel/lamp Apache 2.4 + php5-fpm container 0 [OK] lioshi/lamp Docker image for LAMP + MySql under debian 0 [OK] nickistre/centos-lamp-xdebug LAMP on centos with xDebug 0 [OK] greyltc/lamp-aur LAMP stack (in Arch with php7) with AUR ac... 0 [OK] alledia/lamp General LAMP for our tests, based on phusi... 0 [OK] greatfox/lamp 0 [OK] cnrk/lamp LAMP stack Docker image. 0 [OK] grmanit/lamp Based on tutum/lamp with additional settin... 0 [OK] وكما ترى من النتيجة أعلاه، فهناك الكثير من نسخ LAMP المتوفرة لتوزيعات آرتش وCent OS وأوبنتو، وهي مرتبة وفق تقييم المستخدمين لها. وبالمثل يمكننا أن نبحث عن LEMP أيضًا: $ sudo docker search lemp ثم اختر نسخة lemp مناسبة لك، سأحمّل أنا مثلًا nickistre/ubuntu-lamp: $ docker pull nickistre/ubuntu-lamp ويكون الخرج مشابهًا لهذا: Using default tag: latest latest: Pulling from nickistre/ubuntu-lamp faecf96fd5ab: Pull complete 995977506e98: Pull complete efb63fb8dcb6: Pull complete a3ed95caeb02: Pull complete 61626f5cc06d: Pull complete d42e54d21590: Pull complete 4a32d1f581a1: Pull complete 52f44a8dd6d0: Pull complete ce6c1074ae9e: Pull complete 2fa559435609: Pull complete 93a433221384: Pull complete 521d09b9a2d1: Pull complete 6222edddc59d: Pull complete 8fa401b50efc: Pull complete 683063a5d5e0: Pull complete 1f87fa5088b3: Pull complete c5ee1c14048f: Pull complete Digest: sha256:e913d43c204b3cdb931156c1a680c712acfe8db531225ec7b9e4708fc7ebe93c Status: Downloaded newer image for nickistre/ubuntu-lamp:latest سيحمّل الأمر أعلاه نسخة LAMP لأوبنتو، يمكنك تحميل نسختك الخاصة لتوزيعتك كما أوضحنا قبل قليل. وإن لم ترغب في تحميل واستخدام النسخ التي يوفرها docker من الطرفية، فيمكنك تحميلها من Docker hub حيث تجد آلاف النسخ المستضافة هناك. اذهب إلى الرابط أعلاه وابحث عن نسخة LAMP التي تريدها وحمّلها. في حالتي أنا، فقد اخترت نسخة nickistre/ubuntu-lamp كما قلت قبل قليل: اضغط على النسخة التي تريد لمعرفة مزيد من البيانات عنها مثل كيفية تثبيتها واستخدامها: ستجد النسخ التي تحملها في مجلد var/lib/docker/، ولسرد تلك النسخ نفذ الأمر التالي: $ docker images مثال للخرج: REPOSITORY TAG IMAGE ID CREATED SIZE nickistre/ubuntu-lamp latest 5e750e4f49e4 2 days ago 633 MB reinblau/lamp latest 2813b461f843 9 days ago 697.9 MB hello-world latest 690ed74de00f 5 months ago 960 B والآن نشغّل النسخة بعد أن حمّلناها: $ docker run -it nickistre/ubuntu-lamp /bin/bash ستجد نفسك قد دخلت بشكل آلي إلى المجلد الجذر للحاوية على الويب كمستخدم جذر: root@184851ac9ebd:/# شغّل خدمة أباتشي: # service apache2 start ثم خدمة MySQL: # service mysql start تأكد ما إن كان خادم أباتشي يعمل أم لا، بفتح هذه الصفحة في متصفحك http://container_IP/. ولكي تجد عنوان IP، اكتب ifconfig أو ip addr في طرفية الحاوية، يجب أن ترى هنا صفحة اختبار خادم أباتشي. ويمكنك معرفة إصدارات أباتشي وMySQL وPHP بهذه الأوامر بالترتيب: # apache2 -v # mysql -v # php -v وهكذا نكون قد ثبتنا LAMP في أوبنتو واستخدمناه، ويمكنك الآن أن تختبر تطبيقك كما كنت تريد، دون أن تشغل بالك بتثبيت كل تلك الحزم يدويًا أو على حاسوبك، حتى لو كان في آلة وهمية. ترجمة -بتصرف- لمقال Deploy LAMP and/or LEMP stacks easily using Docker لصاحبه SK
  3. سنعرض في هذا الدرس كيفية تثبيت إطار عمل Laravel وطريقة إعداده ثم نكتشف المجلدات المكوِّنة للإطار. هذا الدرس جزء من سلسلة تعلم Laravel والتي تنتهج مبدأ "أفضل وسيلة للتعلم هي الممارسة"، حيث ستكون ممارستنا عبارة عن إنشاء تطبيق ويب للتسوق مع ميزة سلة المشتريات. يتكون فهرس السلسلة من التالي: مدخل إلى Laravel 5. تثبيت Laravel وإعداده على كلّ من Windows وUbuntu. (هذا الدرس) أساسيات بناء تطبيق باستخدام Laravel. إنشاء روابط محسنة لمحركات البحث (SEO) في إطار عمل Laravel. نظام Blade للقوالب. تهجير قواعد البيانات في Laravel. استخدام Eloquent ORM لإدخال البيانات في قاعدة البيانات، تحديثها أو حذفها. إنشاء سلة مشتريات في Laravel. الاستيثاق في Laravel. إنشاء واجهة لبرمجة التطبيقات API في Laravel. إنشاء مدوّنة باستخدام Laravel. استخدام AngularJS واجهةً أمامية Front end لتطبيق Laravel. الدوّال المساعدة المخصّصة في Laravel. استخدام مكتبة Faker في تطبيق Laravel لتوليد بيانات وهمية قصدَ الاختبار. يتكون جانب التثبيت في هذا الدرس من جزأين، الأول لنظام تشغيل وندوز وسيكون الاعتماد فيه على برنامج Laragon؛ أما الجزء الثاني فهو موجَّه لتوزيعة لينكس Ubuntu 14.04. وقع الاختيار على Laragon لسهولة العمل عليه إذ يأتي مضمَّنا بإطار عمل Laravel ولا يتطلب سوى إعدادات يسيرة، كما أنه يوفر واجهة أوامر Shell تتيح تنفيذ بعض أوامر Linux. يغطي الدرس المواضيع التالية: متطلبات تثبيت Laravel تثبيت Laravel باستخدام Composer التحقق من نجاح تثبيت Laravel بنية المجلدات في Laravel إعداد مشروع عمل جديد في Laravel متطلبات تثبيت Laravel يجب قبل البدء في تثبيت Laravel التأكد من توفر العناصر التالية: خادوم ويب (Apache). الإصدار 5.5.9 من PHP لتثبيت الإصدار 5.2 من Laravel. قاعدة بيانات (MySQL). أداة Composer. تفعيل الوحدات المطلوبة على كلّ من PHP (وهيّ OpenSSL، PDO ،Mbstring وTokenizer) وتعليمة mod_rewrite على Apache . بيئة تطوير IDE (اختياري). تتناول الفقرات التالية آلية تثبيت هذه العناصر على كل من نظام تشغيل Windows و توزيعة Ubuntu 14.04. ملحوظة: سنعتمد في هذه السلسلة على الإصدار 5.2 من إطار العمل Laravel. قد توجد اختلافات طفيفة مع الإصدارات اللاحقة؛ إلا أن المبدأ العام هو نفسه. تهيئة بيئة العمل على Windows توجد برامج عدة تمكن من الحصول على بيئة تطوير Apache PHP MySQL على Windows ومن أشهرها XAMPP وWAMP. يوجد أيضا خيار آخر وهو برنامج Laragon الذي يتضمن خدمات أخرى إضافة للثلاثة المذكورة، من بينها أداة Composer لإدارة الاعتماديات Dependencies والتي تسهل من تثبيت Laravel وإنشاء مشاريع تعمل عليه كما سنرى لاحقا. تثبيت Laragon نبدأ بتنزيل برنامج Laragon من الموقع الرسمي ثم تثبيته. اختر أثناء التثبيت مجلد عمل Laragon: سيقترح عليك المثبِّت تفعيل إنشاء المضيفات الافتراضية Virtual hosts تلقائيا. تمكّن هذه الميزة من إنشاء مضيف افتراضي لكل مجلد يُنشأ ضمن أصل المستند Document root (أي \C:\laragon\www في حالتنا). يعني هذا أنه عند إنشاء مجلد باسم wordpress على المسار \C:\laragon فإن مضيفا افتراضيا باسم wordpress.dev يحيل إلى هذا المجلد سيُعد تلقائيا. نكمل عملية التثبيت: بإكمال تثبيت Laragon نكون قد ثبّتنا كلّا من خادوم ويب Apache، قاعدة بيانات MySQL وأداة إدارة الاعتماديات Composer. نشغل الخدمات بالضغط على زر Start All. تظهر الخدمات المشغَّلة (خادوم ويب Apache وقاعدة بيانات MySQL) في الواجهة الرئيسية للبرنامج. يمكننا الآن إنشاء مشروع Laravel للعمل عليه. سنستخدم سطر الأوامر لهذا الغرض. توجد إمكانية إنشاء مشروع من واجهة البرنامج بالذهاب إلى قائمة: Menu -> Laravel -> Create project -> Laravel 5 اضغط على زر Shell لإظهار سطر الأوامر. تبدو واجهة سطر الأوامر على النحو التالي: إنشاء مشروع Laravel باستخدام أداة Composer تُستخدَم أداة Composer لإدارة الاعتماديات في برمجيات PHP. يقوم مبدأ عملها على التصريح بالمكتبات والعناصر اللازمة للمشروع وستتولى الأداة تثبيتها وإدارة تحديثاتها. اكتب الأمر التالي في نافذة سطر الأوامر: composer create-project --prefer-dist laravel/laravel larashop "5.2.*" ستحصُل على مخرجات مشابهة لما يلي: ننتظر اكتمال تثبيت Laravel وإنشاء مشروع larashop: يثبت الأمر السابق Laravel وينشئ مشروع Laravel باسم larashop في المجلد \C:\laragon\www الذي هو أصل المستند. ملحوظة: إذا كان إصدار Composer المضمّن في Laragon قديما فسيظهر لديك تحذير - قد يكون مصحوبا بخطأ في التثبيت - عند تنفيذ أمر Composer. للتخلّص من هذا التحذير، وتجاوز الخطأ، حدّث Composer بتنفيذ الأمر أدناه في نافذة سطر الأوامر: composer self-update نفعّل بعد اكتمال تثبيت Laravel وإنشاء مشروع larashop، خدمة PHP Server على المنفذ 8000 في واجهة Laragon بالذهاب إلى القائمة Menu ثم خيار Preferences ثم تبويب Services & Ports ثم التأشير على الصندوق المناسب كما في الصورة أدناه. ستلاحظ ظهور سطر جديد في واجهة البرنامج باسم الخدمة التي فعّلناها للتو. اختبار التثبيت يمكننا الآن التحقق من أن كل شيء جرى على ما يُرام؛ إما بالذهاب إلى واجهة Laragon ثم اختيار: Menu -> www -> larashop أو إدخال المسار التالي في شريط عنوان المتصفح: http://localhost/larashop/public/ أو اسم المضيف التالي (إن كنت تركت خيار إنشاء المضيفات الافتراضية تلقائيا أثناء تثبيت Laragon): http://larashop.dev يجب أن تظهر صفحة الويب التالية في المتصفّح دلالة على أن كل شيء وُضع في مكانه الصحيح: تهيئة بيئة العمل الخاصة بـLaravel على لينكس يتلخّص إعداد بيئة العمل الخاصة بـLaravel على لينكس بالخطوات التاليّة. تثبيت Apache، PHP وMySQL نبدأ بتثبيت حزم LAMP على أوبنتو. توجد خطوات التثبيت بالتّفصيل في درس كيف تُثبِّت حِزم MySQL، Apache، Linux :LAMP وPHP على Ubuntu 14.04. نشير هنا إلى أن الإصدر الموجود في المستودعات الرسمية لأوبنتو (5.6.11 أثناء كتابة هذه السطور) يفي بالمتطلبات (5.5.9 فما فوق). تثبيت المتطلبات الأخرى تثبَّت بعض الوحدات المطلوبة لتشغيل Laravel تلقائيا عند تثبيت PHP، في ما تحتاج أخرى لتثبيتها وتفعيلها. يثبت الأمر التالي هذه الوحدات وأدوات إضافية أخرى: sudo apt-get install -y php5-json openssl php5-mcrypt curl git-core أضفنا حزمتي curl و git-core التين تحتاجهما أداة Composer لتنزيل أرشيف Laravel إلى أمر التثبيت. نفعّل وحدة mcrypt على PHP: sudo php5enmod mcrypt نفعّل كذلك تعليمة mod_rewrite على خادوم ويب Apache: sudo a2enmod rewrite نعيد تشغيل خادوم الويب لاعتماد التعديلات: sudo service apache2 restart تثبيت Composer وإعداده نفذ الأمر التالي لتنزيل أداة Composer وتثبيتها: curl -sS https://getcomposer.org/installer | php نغيّر مكان الأداة ليصبح تنفيذها ممكنا دون الحاجة لذكر المسار الكامل للملف: sudo mv composer.phar /usr/local/bin/composer ثم نتأكد من سلامة تثبيت الأداة: composer يجب أن تشبه النتيجة ما يلي: تثبيت Laravel يمكننا الآن تنفيذ الأمر التالي لتثبيت Laravel باستخدام Composer: sudo composer create-project --prefer-dist laravel/laravel /var/www/html/larashop "5.2.*" يثبت الأمر Laravel (الإصدار 5.2) وينشئ مشروعا على المسار /var/www/html/larashop/. ننتظر حتى اكتمال التثبيت ثم نجعل الحساب الخاص بخادوم الويب مالكَ مجلد المشروع ونعطي إذن الكتابة لجميع المستخدمين حتى نتمكن من التعديل على ملفات المشروع: sudo chown -R www-data:www-data /var/www/html/larashop sudo chmod -R 777 /var/www/html/larashop الخطوة الأخيرة هي نقل ملكية المجلد composer./~ إلى المستخدم الحالي: sudo chown -R $USER $HOME/.composer عند الذهاب الآن إلى العنوان http://localhost/larashop/public/ ستظهر الشاشة التالية دلالة على نجاح عملية التثبيت: إنشاء مضيف افتراضي نقدم هنا باختصار طريقة إنشاء مضيف افتراضي Virtual host بحيث يمكننا الوصول إلى واجهة Laravel بكتابة اسم المضيف (اخترنا larashop.dev اسما للمضيف) فقط في المتصفح. للمزيد حول المضيفات الافتراضية راجع هذا الدرس. نفذ الأمر التالي: /etc/apache2/sites-available/larashop.dev.conf أضف المحتوى: <VirtualHost *:80> ServerName larashop.dev DocumentRoot /var/www/html/larashop/public/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/html/larashop/> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> أضف اسم المضيف إلى خادوم الويب: sudo a2ensite larashop.dev عطل اسم المضيف الافتراضي: sudo a2dissite 000-default أعد تحميل إعدادات Apache: sudo service apache2 reload افتح ملف المضيفات لتحريره: sudo nano /etc/hosts أضف السطر التالي مباشرة بعد السطر الأخير من الأسطر التي تبدأ بـ127.X.X.X: 127.0.1.1 larashop.dev يمكن الآن الوصول إلى واجهة Laravel الأمامية بالذهاب إلى العنوان larashop.dev في المتصفح. بنية مجلدات Laravel يلخص الجدول التالي أهم مجلدات Laravel التي تجب عليك معرفتها. app: يحتوي على الشفرة المصدرية للتطبيق. app/console: توجد أوامر artisan هنا. app/events: يحتوي على أصناف Classes الأحداث Events. app/exceptions: الأصناف التي تتعامل مع الاستثناءات Exceptions. app/Http: تحتوي على الأصناف الخاصة بالمتحكِّمات Controllers، المُرشِحات Filters والطلبات Requests. app/jobs: يحتوي هذا المجلد على الأشغال Jobs التي تمكن إضافتها إلى قائمة الانتظار Queue. app/listeners: يحتوي على الأصناف التي تعالج الأحداث. bootstrap: توجد هنا الأصناف التي يحتاجها إطار عمل Bootstrap. config: يحتوي هذا المجلد على ملفات الإعداد. database: توجد في المجلد أصناف التهجير Migration والبذر Seed الخاصتين بقاعدة البيانات. كما يحتوي المجلد على قاعدة بيانات SQLite. public: يحتوي على متحكمات الواجهة الأمامية للتطبيق وموارد أخرى مثل الصور، ملفات CSS، Javascript وغيرها. resources: يحوي العروض Views وملفات التوطين Localization. storage: يحتوي على قوالب blade المجمّعة Compiled، حقول الجلسات Sessions وأمور أخرى. tests: توجد به الاختبارات الأحادية Unit tests. vendor: يحتوي على اعتماديات Composer. إعداد مشروع Laravel جديد إعداد التطبيق توجد معلومات إعداد التطبيق في الملف config/app.php/ سنرى في هذه الفقرة: ضبط وضع التنقيح Debugging mode: يُستخدم وضع التنقيح لتحديد مقدار المعلومات الواجب إظهارها عند حدوث أخطاء في التطبيق. ضبط المنطقة الزمنية Time zone: يستخدم PHP هذا الإعداد في دوالّ الوقت والتاريخ. مفتاح التطبيق Application key: تُستخدَم هذه القيمة في التعميّة Encryption. وضع التنقيح افتح الملف config/app.php/ واعثر على السطر التالي: 'debug' => env('APP_DEBUG', false), عدّل السطر بحيث يصبح على النحو التالي: 'debug' => env('APP_DEBUG', true), تفعلّ التعليمة ('debug' => env('APP_DEBUG', true وضع التنقيح بإعطاء القيمة true للمتغيّر APP_DEBUG؛ وهو ما يعني أن Laravel سيظهر معلومات مفصَّلة عند حدوث أخطاء. تفيد المعلومات المفصَّلة كثيرًا في البحث عن مشاكل في التطبيق ومن ثم تصحيحها. المنطقة الزمنية ابحث في نفس الملف عن السطر التالي: 'timezone' => 'UTC', تعطي هذه التعليمة القيمة الافتراضيّة UTC للمتغيّر timezone. تشير UTC إلى التوقيت العالميّ الموّحّد؛ يمكنك إبدالها بالقيمة الموافقة لمنطقتك الزمنيّة المفضّلة. مفتاح التطبيق اعثر على السطر التالي: 'key' => env('APP_KEY', 'SomeRandomString'), وضع سلسلة محارف String من اختيارك مكان SomeRandomString: 'key' => env('APP_KEY', 'ines5@dinemwa8aw3bambuyabakoiwe'), اخترنا سلسلة محارف عشوائية من 32 محرفا Characters لاستخدامها في التعميّة. إعدادات أخرى توجد الكثير من الإعدادات الأخرى التي يمكن اكتشافها بتصفح الملف config/app.php. إعداد الاستيثاق توجد إعدادات الاستيثاق ضمن الملف config/auth.php/. سنترك الإعدادات بقيمها الافتراضية، يمكنك تغييرها بما يوافق احتياجاتك. إعداد قاعدة البيانات يوجد إعداد قاعدة البيانات ضمن الملف config/database.php/؛ تُستخدم قاعدة بيانات MySQL افتراضيّا. يمكن تعديل الملف لاستخدام نظام إدارة قواعد بيانات مختلف. سنستخدم قاعدة بيانات MySQL في هذا الدليل ونغيّر بضعة إعدادات: اسم قاعدة البيانات database، اسم المستخدم username، كلمة سر المستخدم. ابحث عن الأسطر التالية في ملف إعداد قاعدة البيانات: 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ], حدّث القيم لتصبح على النحو التالي: 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'larashop'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'melody'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ], تعد التعليمة ('database' => env('DB_DATABASE', 'larashop', التطبيق لاستخدام قاعدة بيانات larashop. يمكنك الذهاب إلى MySQL وإنشاء قاعدة بيانات خاوية باسم larashop في MySQL. تضبط التعليمة ('username' => env('DB_USERNAME', 'root', التطبيق لاستخدام الحساب root للوصول إلى قاعدة البيانات. يجب أن تستخدم حساب مستخدم صالحا في MySQL. التعليمة المواليّة ('password' => env('DB_PASSWORD', 'melody', تحدد كلمة سر الحساب المستخدم في التعليمة السابقة. خاتمة رأينا في هذا الدرس كيفية تثبيت Laravel ثم بنية المجلدات الموجودة في إطار العمل وإعدادات أساسية لمشروع Laravel. الخطوة التاليّة ستكون إنشاء أول تطبيق في Laravel. ترجمة -وبتصرّف- لمقال Laravel 5 Installation and Configuration لصاحبه Rodrick Kazembe.
  4. تمهيد يعدّ ووردبريس أشهر نظام إدارة محتوى (CMS) موجود على الإنترنت، حيث تسمح بإنشاء مدونات ومواقع مرنة بسهولة، بالاعتماد على قواعد بيانات MySQL مع لغة PHP. أصبح ووردبريس منتشرًا انتشارًا واسعًا وهي خيارٌ ممتازٌ لإنشاء موقع إلكتروني بسرعة؛ إذ نستطيع إجراء أغلبية عمليات إدارة الموقع من لوحة التحكم الخاصة به. سنُركِّز في هذا الدرس على ضبط نسخة ووردبريس على خادوم LAMP (أي خادوم يستعمل نظام لينكس، مع خادوم وب Apache، قاعدة بيانات MySQL و لغة البرمجة PHP) على أوبنتو 16.04. المتطلبات المسبقة لكي تستطيع المتابعة مع هذا الدرس، فستحتاج وصولًا إلى خادوم أوبنتو 16.04. يجب عليك تنفيذ المهام الآتية قبل البدء باتباع تعليمات هذا الدرس: إنشاء مستخدم بصلاحيات sudo على الخادوم: إذ سنُطبِّق الأوامر المذكورة في هذا الدرس عبر مستخدمٍ ليس جذرًا لكن لديه امتيازات الجذر عبر الأمر sudo. يمكنك إنشاء مستخدم له امتيازات الجذر باستخدام الأمر sudo باتباع درس الإعداد الابتدائي لخادوم أوبنتو 14.04. تثبيت برمجيات LAMP: تحتاج ووردبريس إلى خادوم ويب وقاعدة بيانات ومُفسِّر PHP لكي تعمل عملًا سليمًا؛ وبالتالي إذا ثبَّتتَ برمجيات LAMP فستُحقق هذا المتطلب. اتبع التعليمات الموجودة في درس كيف تثبت حزم MySQL ،Apache ،Linux :LAMP و PHP على أوبنتو لتعلّم طريقة تثبيت وضبط تلك البرمجيات. تأمين الموقع باستخدام شهادة SSL: تقدّم ووردبريس محتوى ديناميكي وفيها خاصيات للاستيثاق من المستخدمين وتسجيل دخولهم. تسمح لنا تقنية TLS/SSL بتشفير المحتوى المقدَّم من موقعنا مما يعني أنَّ الاتصال أصبح آمنًا. إلا أنَّ الطريقة التي ستتبعها لضبط SSL تختلف فيما إذا كان لديك اسم نطاق لموقعك أم لا: إذا كان لديك اسم نطاق خاص بالموقع: أسهل طريقة لتشفير موقعك هي بالاستعانة بخدمة Let’s Encrypt والتي توفِّر شهادات مجانية وموثوقة. راجع الدرس تنصيب شهادة SSL مجانية عبر خدمة Let’sencrypt على خادوم لينكس لمزيدٍ من المعلومات. إذا لم يكن لديك اسم نطاق خاص بالموقع: وكنتَ تجرب ضبط ووردبريس للتعلّم أو لاستخدامك الشخصي، فيمكنك استخدام شهادة موقعة ذاتيًا. وهذا يوفِّر نوع التشفير نفسه، لكن دون التحقق من النطاق الخاص بك. راجع هذا الدرس لمزيدٍ من المعلومات حول ضبط الشهادات الموقعة ذاتيًا. إذا كانت المتطلبات المسبقة جاهزةً، فسجِّل دخولك إلى الخادوم عبر المستخدم الذي يملك امتيازات الجذر عبر الأمر sudo وتابع بقية هذا الدرس. الخطوة الأولى: إنشاء مستخدم وقاعدة بيانات MySQL لووردبريس أوّل خطوةٍ هي خطوةٌ تحضيريةٌ، إذ تستعمل ووردبريس قواعد MySQL لتخزين وإدارة معلومات الموقع والمستخدمين. ثبتنا مسبقًا قواعد بيانات MySQL على خادومنا، لكننا نحتاج إلى إنشاء قاعدة بيانات ومستخدم لكي تستعمله ووردبريس؛ وذلك بتسجيل الدخول بحساب root (حساب المدير) إلى خادوم MySQL بتنفيذ الأمر الآتي: mysql -u root -p ستُسأل عن كلمة المرور التي أدخلتها لحساب root عندما ثبّتتَ برمجية MySQL. علينا أولًا إنشاء قاعدة بيانات منفصلة لكي تستطيع ووردبريس التحكم بها كيفما تشاء؛ ويمكننا تسميتها بأيِّ اسمٍ يحلو لنا، لكننا سنستخدم الاسم wordpress في درسنا للسهولة. يمكنك إنشاء قاعدة بيانات في ووردبريس بكتابة تعليمة SQL الآتية: CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; ملاحظة: يجب أن تنتهي كل تعليمات MySQL بفاصلة منقوطة ;، لذا تأكد من وجودها إن واجهتَ أيّة مشكلات. علينا بعد ذلك إنشاء مستخدم MySQL منفصل يحق له التعامل مع قاعدة البيانات التي أنشأناها آنفًا فقط؛ فمن المستحسن إنشاء قواعد بيانات مع حسابات مستخدمين مرتبطة بها ذات غرضٍ وحيد، وذلك لتسهيل الإدارة وتحسين الأمان. سنستخدم الاسم wordpressuser في هذا الدرس، لكن استعمل أي اسم يحلو لك. سنستعمل الأمر الآتي لإنشاء هذا الحساب وضبط كلمة مرور خاصة به ومنحه وصولًا إلى قاعدة البيانات التي أنشأناه، تذكَّر أن تختار كلمة مرور قوية لمستخدم قواعد البيانات: GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password'; أصبح لدينا مستخدم وقاعدة بيانات خاصَين بووردبريس، علينا الآن تحديث جدول الامتيازات لكي يعتمد MySQL التغييرات الأخيرة التي أجريناها: FLUSH PRIVILEGES; يمكننا الخروج من سطر أوامر MySQL بكتابة: EXIT; الخطوة الثانية: تثبيت إضافات PHP عندما ضبطنا برمجيات LAMP ثبّتنا الحد الأدنى اللازم من وِحْدات PHP لكي تتواصل مع MySQL تواصلًا سليمًا؛ لكن ووردبريس والإضافات التابعة لها تستعمل وحدات PHP أخرى. يمكننا تنزيل وتثبيت أشهر وحدات PHP لاستعمالها مع ووردبريس بتنفيذ الأمرين الآتيين: sudo apt-get update sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc ملاحظة: لكل إضافة من إضافات ووردبريس متطلبات خاصة بها، وبعضها يستدعي تثبيت حزم PHP إضافية. راجع توثيق الإضافة لتعرف ما هي المتطلبات المسبقة التي تحتاج لها؛ والتي يمكن تثبيتها عبر apt-get (أو apt) إذا كانت متوافرة في المستودعات. علينا الآن إعادة تشغيل خادوم أباتشي لكي نستطيع استخدام الوحدات التي ثبتناها، يمكننا فعل ذلك بتنفيذ الأمر الآتي: sudo systemctl restart apache2 الخطوة الثالثة: تعديل ضبط أباتشي للسماح باستعمال ملفات ‎.htaccess ولتفعيل وحدة Rewrite علينا الآن إجراء تعديلات بسيطة على ضبط أباتشي؛ فاستعمال ملفات ‎.htaccess مُعطّلٌ حاليًا، لكن ووردبريس (وبعض إضافاتها) تستعمل هذه الملفات لإجراء تعديلات على سلوك خادوم الويب في بعض المجلدات. علينا أيضًا تفعيل وحدة mod_rewrite في أباتشي والتي سنحتاج لها لكي تعمل ميزة الروابط الدائمة (permalinks) في ووردبريس عملًا سليمًا. تفعيل ملفات ‎.htaccess افتح ملف ضبط أباتشي الأساسي لإجراء أوّل تعديل: sudo nano /etc/apache2/apache2.conf للسماح باستخدام ملفات ‎.htaccess فعلينا ضبط التعليمة AllowOverride ضمن كتلة Directory التي تُشير إلى جذر الموقع. أضف الأسطر الآتية في أسفل الملف: <Directory /var/www/html/> AllowOverride All </Directory> أنهينا تعديل هذا الملف، لذا احفظه وأغلقه. تفعيل وحدة Rewrite علينا الآن تفعيل وحدة mod_rewrite لكي نستطيع الاستفادة من ميزة الروابط الدائمة في ووردبريس: sudo a2enmod rewrite تفعيل التعديلات التي أجريناها قبل تطبيق التعديلات على الخادوم، علينا أن نحرص أننا لم نرتكب أيّ أخطاء في بنية التعليمات: sudo apache2ctl configtest من المفترض أن يكون الناتج شبيهًا بالرسالة الآتية: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK إذا أردت التخلص من أوّل سطر، فأضف التعليمة SeverName إلى ملف ‎/etc/apache2/apache2.conf التي تشير إلى اسم نطاق الخادوم أو إلى عنوان IP الخاص به، لكن اعلم أنَّ هذه الرسالة لا تؤثر على عمل موقعنا، فلطالما كان الناتج يحتوي على السطر Syntax OK سنستطيع أن نكمل عملية تفعيل التعديلات بإعادة تشغيل خادوم أباتشي: sudo systemctl restart apache2 الخطوة الرابعة: تنزيل ووردبريس بعد إكمالنا لضبط خادومنا، أصبحنا جاهزين لتنزيل وضبط ووردبريس. من المستحسن الحصول على آخر إصدار من ووردبريس من موقعها الرسمي وذلك حرصًا على الحصول على آخر التحديثات الأمنية. انتقل إلى مجلد تستطيع الكتابة عليه، ثم نزِّل الملف المضغوط من الإنترنت عبر كتابة الأمرين الآتيين: cd /tmp curl -O https://wordpress.org/latest.tar.gz استخرج محتويات الملف المضغوط: tar xzvf latest.tar.gz سننقل هذه الملفات إلى المجلد الجذر لموقعنا بعد لحظات، لكن قبل ذلك سنُنشِئ ملف ‎.htaccess فارغ ونضبط الأذونات الخاصة به لكي تتاح مستقبلًا لووردبريس لتستعملها. أنشِئ الملف واضبط أذوناته بتنفيذ الأمرين: touch /tmp/wordpress/.htaccess chmod 660 /tmp/wordpress/.htaccess سننسخ أيضًا الملف التي يحتوي على مثال عن ضبط ووردبريس إلى الملف الذي ستقرأه ووردبريس: cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php سنُنشِئ أيضًا مجلدًا باسم upgrade لكي لا تواجه ووردبريس مشاكل في الأذونات عندما تحاول تنزيل التحديثات من الإنترنت: mkdir /tmp/wordpress/wp-content/upgrade يمكننا الآن نسخ كامل محتويات المجلد إلى المجلد الجذر لموقعنا، وسنستخدم الخيار ‎-a لإبقاء الأذونات كما هي؛ وسنستخدم نقطة في نهاية مسار المجلد الذي سننسخه للإشارة إلى أننا نريد نسخ كل شيء في ذاك المجلد بما في ذلك المجلدات المخفية (مثل الملف ‎.htaccess الذي أنشأناها منذ قليل): sudo cp -a /tmp/wordpress/. /var/www/html الخطوة الخامسة: ضبط مجلد ووردبريس قبل أن نُشغِّل معالج التثبيت الخاص بووردبريس من المتصفح، علينا تعديل بعض الأشياء في مجلد ووردبريس. تعديل الملكية والأذونات أحد أهم الأمور التي علينا فعلها هو ضبط ملكية الملفات وأذوناتها، فسنحتاج إلى الكتابة إلى تلك الملفات كمستخدمٍ عادي، وعلينا السماح لخادوم الويب بالوصول إليها وتعديل ملفات ومجلدات معيّنة لكي تعمل ووردبريس كما ينبغي. سنبدأ بضبط ملكية كل الملفات الموجودة في جذر الموقع إلى المستخدم الحالي (الذي سنسميه sammy في هذا الدرس، لكن عليك تعديله ليُطابِق اسم المستخدم الذي تستعمله للوصول إلى امتيازات الجذر)، وسنضبط المجموعة المالكة إلى www-data: sudo chown -R sammy:www-data /var/www/html علينا الآن ضبط الأذن الخاص setgid على كل مجلد موجود ضمن مجلد الجذر للموقع، وهذا يؤدي إلى وراثة الملفات المُنشأة ضمن تلك المجلدات لمجموعة المجلد الأب (والتي ضبطناها إلى www-data) بدلًا من جعلها مملوكةً لمجموعة المستخدم المُنشِئ لها؛ وهذا يعني أننا لو أنشأنا ملفًا ضمن أحد تلك المجلدات باستخدام سطر الأوامر فسيملكه خادوم الويب (عبر المجموعة www-data). يمكننا ضبط الإذن setgid على كل مجلد من مجلدات ووردبريس بتنفيذ الأمر الآتي: sudo find /var/www/html -type d -exec chmod g+s {} \; هنالك أذونات أخرى علينا تعديلها؛ فعلينا إعطاء المجموعة المالكة إذن الكتابة إلى مجلد wp-content لكي نتمكن من تعديل القوالب والإضافات من واجهة الويب: sudo chmod g+w /var/www/html/wp-content وعلينا إعطاء خادوم الويب إذن الكتابة على جميع محتويات المجلدين themes و plugins كما يلي: sudo chmod -R g+w /var/www/html/wp-content/themes sudo chmod -R g+w /var/www/html/wp-content/plugins الأذونات الحالية مناسبة لأغلبية حالات الاستخدام، لكن قد تتطلّب بعض الإضافات تعديلاتٍ أخرى للأذونات. إعداد ملف ضبط ووردبريس سنحتاج الآن إلى إجراء بعض التعديلات على ملف ضبط ووردبريس الرئيسي. من أهم أولوياتنا هو تعديل بعض المفاتيح السرية لتوفير مزيد من الحماية لووردبريس. توفر لنا ووردبريس مولِّدًا لإنشاء هذه القيم وليس علينا إنشاؤها بأنفسنا؛ تُستخدم هذه المفاتيح داخليًا فقط، لذا لن تتأثر سهولة الاستخدام إذا وضعنا قيمًا معقدة هنا. نفِّذ الأمر الآتي للحصول على قيم آمنة من مولِّد ووردبريس: curl -s https://api.wordpress.org/secret-key/1.1/salt/ ستحصل على قيمٍ فريدةٍ كما هو ظاهر في المثال الآتي: تحذير: من المهم جدًا طلب قيم فريدة في كل مرة. لا تنسخ القيم الآتية! define('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%'); يمكنك نسخ الأسطر الظاهرة عندك مباشرةً إلى ملف الضبط لإعداد المفاتيح الآمنة. انسخ المخرجات التي حصلتَ عليها من الأمر السابق. افتح الآن ملف ضبط ووردبريس: nano /var/www/html/wp-config.php ابحث عن القسم الذي يحتوي على القيم المبدئية لهذه المفاتيح؛ إذ سيبدو كما يلي: . . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . . امسح الأسطر أعلاه وألصق الأسطر التي نسختها من الأمر السابق: . . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . . سنحتاج الآن إلى تعديل معلومات الاتصال بقاعدة البيانات الموجودة في بداية الملف؛ إذ علينا تعديل اسم قاعدة البيانات واسم المستخدم وكلمة المرور الخاصة به والتي ضبطناها في MySQL. إضافةً إلى ذلك، علينا تعديل الطريقة التي على ووردبريس استخدامها للكتابة إلى نظام الملفات، ولمّا كنا قد أعطينا خادوم الويب الإذن للكتابة حيث يحتاج، فيمكننا تحديد طريقة الكتابة إلى نظام الملفات إلى direct. إذا لم نستعمل هذا الخيار في ملف الضبط فسيؤدي ذلك إلى طلب معلومات FTP عندما تحتاج ووردبريس إلى إجراء بعض العمليات على نظام الملفات. يمكن إضافة هذا الخيار تحت خيارات الاتصال بقاعدة البيانات، أو إلى أي مكان آخر في الملف: . . . define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password'); . . . define('FS_METHOD', 'direct'); احفظ الملف وأغلقه عندما تنتهي من العمل عليه. الخطوة السادسة: إكمال التثبيت عبر واجهة الويب اكتمل الآن ضبط الخادوم، ويمكننا متابعة التثبيت عبر واجهة الويب. افتح متصفح الويب الخاص بك وانتقل إلى اسم نطاق الخادوم أو عنوان IP العام الخاص به: http://server_domain_or_IP اختر اللغة التي تشاء استخدامها: ثم ننتقل إلى صفحة الإعداد الرئيسية. اختر اسمًا لموقع ووردبريس واختر اسم المستخدم (من المستحسن عدم استعمال اسم مثل «admin» لأسباب أمنية). ستولَّد كلمة مرور قوية تلقائيًا، يمكنك حفظ هذه الكلمة أو اختيار أخرى قوية. أدخِل عنوان بريدك الإلكتروني واختر ما إذا كنت تريد فهرسة موقعك من محركات البحث أم لا. بعد أن تنتهي من التثبيت ستؤخذ إلى صفحة تطلب منك تسجيل الدخول: بعد أن تسجِّل دخولك، فستؤخذ إلى لوحة تحكم ووردبريس. ترقية ووردبريس عندما يتوافر إصدار جديد من ووردبريس، فلن تتمكن من تثبيته عبر واجهة الويب وذلك بسبب أذونات الملفات الحالية. الغرض من الأذونات التي اخترناها هو الموازنة بين الأمان وقابلية الاستخدام لحوالي 99% من الحالات، لكنها لن تسمح بتثبيت التحديثات التلقائية. فعند توافر ترقية لووردبريس فعليك تسجيل الدخول مجددًا إلى خادوم الويب كمستخدم sudo، ثم منح عملية خادوم الويب وصولًا إلى جذر الموقع: sudo chown -R www-data /var/www/html افتح لوحة تحكم ووردبريس وحدثها كالمعتاد. بعد أن تنتهي من الترقية، فأعد الأذونات كما كانت سابقًا: sudo chown -R sammy /var/www/html الطريقة السابقة ضرورية عند ترقية برمجية ووردبريس نفسها. الخلاصة يجب أن تكون ووردبريس مثبتةً على خادومك وجاهزةً للاستخدام. هنالك بعض الأمور التي عليك ضبطها مثل بنية الروابط الدائمة لمنشوراتك (في صفحة Settings > Permalinks أو الخيارات > الروابط الدائمة) واختيار قالب جديد (في صفحة Appearance > Themes أو المظهر > قوالب). إذا كانت هذه أوّل مرة تستعمل فيها ووردبريس فخذ وقتًا في تعلم طريقة التعامل معها. ترجمة – بتصرّف – للمقال How To Install WordPress with LAMP on Ubuntu 16.04 لصاحبه Justin Ellingwood.
  5. حزم LAMP هيّ مجموعة من البرامج مفتوحة المصدر تُثَبَّت عادةً معًا لتمكين خادوم من استضافة مواقع ويب ديناميكيّة وتطبيقات ويب. تُشير الأحرف LAMP على التّوالي إلى نِظام تشغيل Linux، خادوم ويب Apache، قاعدة بيانات MySQL، ولغة PHP لمُعالجة المُحتوى الدّيناميكي. سنُثبِّت في هذا الدّليل حزم LAMP على خادوم Ubuntu 14.04، حيث يُمثِّل أوبنتو اللّبنة الأولى من الحزمة (نظام التّشغيل). المتطلبات يجب، من أجل مُتابعة خطوات هذا الدّرس، أن يكون لديك حساب عادي (غير الحساب الجذر Root user) بصلاحيّات sudo. يُمكنّك معرفة كيف تضبُط حسابًا بهذه المواصفات في الخطوات من 1 إلى 4 من درس الإعداد الابتدائي لخادوم أوبنتو 14.04. الخطوة الأولى: ثبت Apache خادوم ويب Apache هوّ في الوقت الحالي خادوم الويب الأكثر شعبيّة، الأمر الّذي يجعل منه خيّارًا افتراضيًّا جيّدًا لاستضافة مواقع الويب. يُمكن تثبيت خادوم ويب Apache بسهولة عن طريق مدير حزم Package manager أوبنتو، apt. نبدأ بتحديث فهرس الحزم ثمّ نُثبّت حزمة apache2 لنحصُل على خادوم ويب Apache: sudo apt-get update sudo apt-get install apache2 سيُطلب منك إدخال كلمة السّر من حين لآخر، نظرًا لاستخدام صلاحيّات الجذر (Root) عن طريق sudo. ننتقل إلى مُتصفِّح الويب بعد انتهاء تنفيذ الأمر السّابق للتّأكد من تثبيت Apache. نُدخِل عنوان IP الخادوم العمومي أو اسم نطاق الموقع Domain name في شريط عنوان المُتصفّح: http://your_server_IP_address ملحوظة: إذا كنتَ تُجرِّب هذه الخطوات على جهازك الشّخصي (أو جهاز محلّي) فعنوان خادوم الويب هو 127.0.0.1 (أو localhost). ستظهر الصّفحة الافتراضيّة لخادوم ويب Apache، حيثُ توجد بعض معلومات الإعداد. شكل الصّفحة يبدو كالتّالي: إن عُرضت الصّفحة أعلاه فتثبيتُ خادوم ويب Apache جرى كما يُرام. كيف تجد عنوان IP العمومي لخادومك ملحوظة: هذه الفقرة غير مُوَّجَّهة لمن يختبر التّثبيت على حاسوبه الشّخصي. توجد عدّة طُرُق لمعرفة عنوان IP العمومي لخادوم على شبكة الإنترنت. عنوان IP العمومي للخادوم هو في العادة نفس العنوان الّي تتّصل به عن طريق SSH. نفِّذ الأمر التّالي في سطر الأوامر: ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//' ينتُج عن هذا الأمر سطر أو اثنان (واحد عنوان كما يُكتَب في الإصدار الرّابع IPv4 من بروتوكول IP، والآخر كما يُكتَب في الإصدار السّادس IPv6). في حال كانت النّتيجة سطرين فكلاهما صحيح ولكن من الممكن ألّا يستطيعَ حاسوبك الشّخصي التّعامل إلا مع واحد منهما؛ جرّب العنوانيْن حتى تحصُل على العنوان المُناسب. توجد طريقة بديلة وهي استخدام خدمة عامّة للحصول على عنوان IP. للحصول على العنوان نتّصل بالخدمة ونطلُب منها إخبارنَا عن العنوان الّذي نتّصِل منه: curl http://icanhazip.com ملحوظة: إن استخدمتَ الأمر السّابق من جهازك الشّخصي فستحصُل على عنوان IP الّذي تظهر به للخارج؛ هذا لا يعني بالضّرورة أنّ هذا هو عنوان IP العمومي لجهازك. مهما اختلفت الطّريقة فالمهم هو الحصول على عنوان خادومك ثمّ إدخاله في شريط العناوين في المتصفّح للتّأكّد من تثبيت خادوم ويب Apache. الخطوة الثانية: ثبت MySQL يأتي الآن دورُ MySQL، بعد تثبيت MySQL. Apache هو نظام لإدارة قواعد البيانات DataBase Management System, DBMS؛ وهو برنامج مسؤول عن إدارة وتوفير الاتّصال بقاعدة البيانات الّتي تُخزَّن بها معلومات الموقع. سنستخدم - كما في الخطوة السّابقة - مُديرَ حزم Apt، ولكن هذه المرّة سنُضيف بعض الحزم المُساعدة من أجل تمكين الاتّصال بين مختلف عناصِر البيئة الّتي نحن في طور إعدادها. sudo apt-get install mysql-server php5-mysql ملحوظة: لم ننُفِّذ أمر sudo apt-get update قبل أمر التّثبيت هذه المرّة. يعود السّبب في ذلك إلى أنّنا نفّذنا هذا الإجراء للتّو وهو ما يعني أنّ فهرس الحزم لدينا مُحدَّث up-to-date. أثناء تثبيت MySQL سيطلُب منك الخادوم اختيّار كلمة سرّ للمُستخدِم root على MySQL. الحساب root هو حساب إداريّ يملك صلاحيّات واسعة على نظام قواعد البيانات؛ وهو يُشبه إلى حدٍّ مّا الحساب الجذر في خادوم أوبنتو نفسه (لكن انتبِه إلى أنّه حساب خاص بنظام MySQL لإدارة قواعد البيانات). نحتاج بعد انتهاء التّثبيت إلى تنفيذ أوامر إضافيّة من أجل تأمين MySQL. نطلُب أوّلا من MySQL إنشاءَ بُنية المجلّدات الخاصّة بقاعدة البيانات حيثُ سيُخزّن المعلومات. الأمر التّالي يُؤدّي هذه المهمّة: sudo mysql_install_db ثمّ نُنفّذ سكربت التّثبيت الآمن الّذي يحذِف بعض القيّم الافتراضيّة غير الآمنة ويمنع الوصول المُباشر لنظام إدارة قواعد البيانات: sudo mysql_secure_installation سيُطلب منك النّظام إدخال كلمة سرّ الحساب الجذر في MySQL؛ ثمّ يسألك ما إذا كنتَ تُريد تغييرها. أدخل حرف n (دلالةً على "no" أي "لا") إن لم تكن ترغبُ في ذلك. بقيّة الأسئلة تتعلّق بإزالة بعض الحسابات وقواعد البيانات المُعَدَّة للتّجربة، تعطيل الدّخول عن بُعد للحساب الجذر، ثم تحميل الإعدادات الجديدة ليبدأ MySQL العمل بها مُباشرةً؛ فقط اضغط Enter للإجابة على هذه الأسئلة. تحصُل بعدانتهاء هذه الخطوة على نظام قواعد بيانات مضبوط وجاهز للعمل. الخطوة الثالثة: ثبت PHP يتولّى PHP التّعاملَ مع البيانات لإظهار المُحتوى الدّيناميكي؛ حيث يُنفِّذ السكربتات، يتّصِل بقاعدة بيانات MySQL ويُمرّر المُحتوى - بعد معالجته - إلى خادوم الويب، الّذي يعرضه. نستعين بمُدير الحزم apt مُجدّدًا لتثبيت PHP وبعض البرامج المُساعِدة الأخرى: sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt ينبغي أن يكون الأمر السّابق كفيلًا بتثبيت PHP دون أيّة مشاكل. سنختبر نجاح التّثبيت بعد قليل. يقضي الإعداد الافتراضي لخادوم ويب Apache بالبحث أوّلا عن ملفّ باسم index.html عند وصول طلب لعرض مُجلّد. سنُغيّر هذا الإعداد بحيثُ يبحث خادوم الويب أوّلًا عن ملفّ PHP باسم index.php. نفتح ملفّ dir.conf في المُحرّر بصلاحيّات المُستخدِم الجذر: sudo nano /etc/apache2/mods-enabled/dir.conf يُشبه مُحتوى الملفّ الشّكلَ التّالي: <IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </IfModule> ما نُريده هو تقديم ملف index.php المُعلَّم بالأحمر أعلاه إلى الوضعيّة الأولى، مباشرةً بعد تعليمة DirectoryIndex هكذا: <IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule> احفَظ الملفّ بعد الانتهاء من تحريره عن طريق الضغط على الزّرّيْن CTRL+O ثم زرّ Enter في لوحة المفاتيح وأغلِقه بالضّغط على الزّرّيْن CTRL+X. نعيد تشغيل Apache للعمَل بالإعدادات الجديدة: sudo service apache2 restart ثبت وحدات PHP Modules ،PHP توجد بعض الوِحدات Modules الاختيّاريّة الّتي نستطيع تثبيتَها من أجل تحسين وظائف PHP. ننفِّذ الأمر التّالي لعرض مكتبات Libraries ووِحدات PHP المُتاحة: apt-cache search php5- جميع ما يظهَر في النّتائج هيّ وحدات اختيّاريّة يُمكن تثبيتها إن أردت. تتضمّن كل نتيجة اسم الوحدة ووصفًا مُختَصرًا لها: php5-cgi - server-side, HTML-embedded scripting language (CGI binary) php5-cli - command-line interpreter for the php5 scripting language php5-common - Common files for packages built from the php5 source php5-curl - CURL module for php5 php5-dbg - Debug symbols for PHP5 php5-dev - Files for PHP5 module development php5-gd - GD module for php5 . . . إن أردت معلوماتٍ أكثرَ عن إحدى الوِحدَات يمكنك البحث على الشّبكة أو استخدام أمر الوصف المُطَوَّل للحزمة عبر تنفيذ الأمر (حيثُ package_name اسم الحزمة): apt-cache show package_name بالنّسبة لوحدة php5-cli على سبيل المثال: apt-cache show php5-cli ستجد أن هناك مخرجاتٍ عديدةً من بينها حقلٌ باسم Description-en يُقدّم شرحًا لوظيفة الوِحدة (بالإنجليزيّة غالبًا، إلّا إذا كان التّوثيق Documentation يتوفّر بلغة النّظام لديك). . . . SHA256: 91cfdbda65df65c9a4a5bd3478d6e7d3e92c53efcddf3436bbe9bbe27eca409d Description-en: command-line interpreter for the php5 scripting language This package provides the /usr/bin/php5 command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . The following extensions are built in: bcmath bz2 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv libxml mbstring mhash openssl pcntl pcre Phar posix Reflection session shmop SimpleXML soap sockets SPL standard sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. Description-md5: f8450d3b28653dcf1a4615f3b1d4e347 Homepage: http://www.php.net/ . . . إذا أردتَ تثبيت وِحدة من وِحدات PHP، بعد الحصول على المعلومات الكافيّة عن وظيفتها، فيُمكنك استخدامُ أمر apt-get install. بالعودة إلى مثال php5-cli فإنّ التّثبيت يكون كما يلي: sudo apt-get install php5-cli ُيرجى ملاحظة أنّه بالإمكان تثبيت أكثر من حزمة في نفس الوقت عبر الفصل بينها بمسافة، هكذا: sudo apt-get install package1 package2 ينبغي أن تكون حزم LAMP، بالوصول إلى هذه النّقطة من الدّليل، مُثّبَّتةً ومضبوطةً. ننتقل إلى اختبار PHP. الخطوة الرابعة: اختبر تعامل خادوم الويب مع ملفات PHP سننشئ سكربت PHP مُيَسّرًا من أجل اختبار إعدادات PHP وخادوم الويب. الهدف هوّ أن يعثُر خادوم الويب على السكربت، الّذي سنُسمّيه info.php، ثمّ يعرض محتواه بشكل صحيح. يجب أن يُحفَظ الملفّ في مجلّد خاصّ، يُسمّى جذر الويب Web root (في هذا المُجلَّد مباشرةً أو في أحد المجلّدات المتفرّعة عنه)، لكي يعثُر عليه خادوم ويب Apache . يوجد جذر الويب في أوبنتو 14.04 على المسار /var/www/html/. نُنشئ ملفَّ اختبار الإعداد داخل هذا المسار عبر الأمر: sudo nano /var/www/html/info.php سيُفتح المحرّر وبداخله ملفّ فارغ، نُضيف إليه الشيفرة البرمجيّة التّاليّة: <?php phpinfo(); ?> هذا كل ما في الأمر. احفظ الملفّ ثم أغلقه. لاختبار إعداد خادوم الويب نفتح متصفّحَ ويب ثمّ نُدخل عنوان الصّفحة في شريط العنوان. يتكوّن عنوان الصّفحة من عنوان IP العمومي لخادوم الويب (أو اسم النّطاق) متبوعًا بمسار تواجد الصّفحة بالنّسبة لجذر الويب. صفحة الاختبار الّتي أعددناها موجودة في جذر الويب وهو ما يعني أنّ عنوان الوصول إليها هوّ التّالي (حيث your_server_IP_address هو عنوان IP أو اسم نطاق الموقع): http://your_server_IP_address/info.php يجب أن تظهر في المتصفّح صفحة الويب التّاليّة: تُقدّم هذه الصّفحة معلوماتٍ عن الخادوم كما يراه PHP. بعض هذه المعلومات مهمّ لمعرفة إعدادات خادوم الويب ومُعالج PHP، كما أنّها تُساعِدك أثناء تنقيح Debugging السكربتات. إذا ظهرت الصّفحة فهذا يعني أنّ PHP يعمل كما نُريد. يُنصَح بحذف هذه الصّفحة بعد الانتهاء من الاختبار، حيث إنّها قد تُعطي معلوماتٍ عن خادومك لأشخاص لا يجدر بهم الحصول على هذه المعلومات، الأمر التّالي يؤدّي هذه المهمّة: sudo rm /var/www/html/info.php يُمكن دائمًا إنشاء صفحة الاختبار من أجل الوصول إلى المعلومات الّتي توفّرها، متى أردت ذلك. خاتمة باستكمال خطوات هذا الدّليل تكون قد وضعتَ الأساس لتثبيت، استعمال وإعداد العديد من أنواع مواقع وتطبيقات الويب. ترجمة -وبتصرف- للمقال How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 14.04 لصاحبه Justin Ellingwood.
  6. تثبيت LAMP (الذي هو Linux + Apache + MySQL + PHP/Perl/Python) هو إعداد شائع لخواديم أوبنتو؛ هنالك تشكيلة واسعة جدًا من البرمجيات مفتوحة المصدر المكتوبة لتجميعة برامج LAMP؛ أشهر تلك البرمجيات هي تطبيقات الويكي، وأنظمة إدارة المحتوى، وبرمجيات الإدارة مثل phpMyAdmin. ميزة من مزايا LAMP هي المرونة غير العادية لاستخدام قواعد بيانات أو خواديم ويب أو لغات برمجية مختلفة! بدائل شائعة لقواعد MySQL تتضمن PostgreSQL و SQLite؛ وتُستخدَم Python أو Perl أو Ruby بدلًا من PHP؛ ويَستبدل Nginx أو Cherokee أو Lighttpd الخادوم أباتشي. أسرع طريقة للبدء في تثبيت LAMP هي استخدام tasksel؛ الأداة tasksel هي أداة خاصة بدبيان/أوبنتو التي تُثبِّت حزمًا مترابطة للقيام «بمهمة» في نظامك؛ أدخِل الأمر الأتي في الطرفية لتثبيت خادوم LAMP: sudo tasksel install lamp-serverبعد إتمام عملية التثبيت، ستكون قادرًا على تثبيت أغلبية تطبيقات LAMP بهذه الطريقة: تنزيل أرشيف يحتوي على الملفات المصدرية للتطبيق.استخراج الملفات من الأرشيف إلى مجلد يمكن لخادوم الويب الوصول إليه.اعتمادًا على المكان الذي استخرجت الملفات إليه، فاضبط خادوم الويب ليُخدِّم الصفحات من هناك.اضبط التطبيق للاتصال بقاعدة البيانات.شغِّل سكربتًا، أو افتح صفحةً من التطبيق لتثبيت قاعدة البيانات التي يحتاج لها هذا التطبيق.بعد أن أجريت الخطوات السابقة أو خطواتٍ شبيهةٍ بها، فأنت جاهزٌ الآن للبدء باستعماله.عيب من عيوب هذه الطريقة هي أن ملفات التطبيق لا توضع في مكان قياسي في نظام الملفات، الأمر الذي قد يسبب فوضى؛ عيب آخر كبير هو تحديث التطبيق، فعند إصدار نسخة جديدة منه، فيجب إجراء نفس عملية تثبيت التطبيق لتحديثه. لحسن الحظ، هنالك عدد من تطبيقات LAMP مُحزَّمة في أوبنتو، ومتوفرة للتثبيت كغيرها من التطبيقات؛ لكن حسب التطبيق، فربما هنالك خطوات أخرى للضبط والإعداد؛ سيشرح هذا الفصل تثبيت بعض تطبيقات LAMP. Moin Moinإن MoinMoin هو محرك ويكي مكتوب بلغة بايثون ومبني على محرك الويكي PikiPiki ومرخص برخصة GUN GPL. التثبيتنفِّذ الأمر الآتي لتثبيت MoinMoin: sudo apt-get install python-moinmoinيجب أن تكون قد ثبتت خادوم أباتشي؛ رجاءً راجع درس تثبيت أباتشي لمزيدٍ من المعلومات حول تثبيت أباتشي. الضبطلضبط أول تطبيق ويكي خاص بك، فعليك تنفيذ سلسلة الأوامر الآتية؛ على فرض أنك تُنشِئ «ويكي» باسم mywiki: cd /usr/share/moin sudo mkdir mywiki sudo cp -R data mywiki sudo cp -R underlay mywiki sudo cp server/moin.cgi mywiki sudo chown -R www-data.www-data mywiki sudo chmod -R ug+rwX mywiki sudo chmod -R o-rwx mywikiيجب الآن أن تضبط MoinMoin لكي يرى الويكي الجديد mywiki؛ لضبط MoinMoin، افتح الملف ‎/etc/moin/mywiki.py وعدِّل السطر الآتي: data_dir = '/org/mywiki/data'إلى: data_dir = '/usr/share/moin/mywiki/data'أيضًا، تحت الخيار data_dir، أضف الخيار data_underlay_dir: data_underlay_dir='/usr/share/moin/mywiki/underlay'ملاحظة: إذا لم يكن الملف ‎/etc/moin/mywiki.py موجودًا، فعليك نسخ ‎/usr/share/moin/‎config/wikifarm/mywiki.py إلى ‎/etc/moin/mywiki.py ثم تنفيذ التغيير المذكور آنفًا. ملاحظة: إذا سميت الويكي باسم my_wiki_name، فيجب إضافة السطر: ‎("my_wiki_name",r".*") إلى ملف ‎/etc/moin/farmconfig.py بعد السطر: ‎("mywiki", r".*")بعد أن تضبط MoinMoin ليعثر على أول تطبيق ويكي mywiki عليك ضبط أباتشي وجعله جاهزًا لتطبيق الويكي. يجب أن تُضيف الأسطر الآتية في ملف ‎/etc/apache2/sites-available/default ضمن الوسم ‎<VirtualHost *>‎: ### moin ScriptAlias /mywiki "/usr/share/moin/mywiki/moin.cgi" alias /moin_static193 "/usr/share/moin/htdocs" <Directory /usr/share/moin/htdocs> Order allow,deny allow from all </Directory> ### end moinبعد أن تضبط خادوم أباتشي وتجعله جاهزًا لتطبيق الويكي، يجب عليك أن تعيد تشغيله، وذلك بإدخال الأمر الآتي لإعادة تشغيل خادوم أباتشي: sudo service apache2 restartالتجربةللتأكد من عمل تطبيق الويكي، وجِّه متصفحك للوصلة الآتية: http://localhost/mywiki للمزيد من المعلومات، راجع موقع MoinMoin الرسمي. مصادرللمزيد من المعلومات انظر إلى ويكي «moinmoin».أيضًا، صفحة ويكي أوبنتو «MoinMoin».MediaWikiإن MediaWiki هي برمجية Wiki مبنية على الويب مكتوبة بلغة PHP؛ يمكنها أن تستخدم نظام إدارة قواعد بيانات MySQL أو PostgreSQL. التثبيتقبل تثبيت MediaWiki، يجب عليك تثبيت أباتشي ولغة برمجة PHP5 ونظام إدارة قواعد بيانات؛ وأشهرها MySQL أو PostgreSQL، اختر واحدًا بناءً على احتياجاتك، رجاءً ارجع إلى الأقسام التي تشرح تثبيتها في هذه السلسلة للمزيد من المعلومات. نفِّذ الأمر الآتي في الطرفية لتثبيت MediaWiki: sudo apt-get install mediawiki php5-gdلوظائف MediaWiki إضافية، انظر إلى الحزمة mediawiki-extensions. الضبطملف ضبط أباتشي mediawiki.conf مثبَّتٌ في ‎‎/etc/apache2/conf-available/‎، يجب عليك إزالة التعليق من السطر الآتي للوصول إلى تطبيق MediaWiki: # Alias /mediawiki /var/lib/mediawikiبعد أن تُزيل التعليق من السطر السابق، ففعِّل الضبط ثم أعد تشغيل خادوم أباتشي ثم ادخل إلى MediaWiki عبر الرابط الآتي http://localhost/mediawiki/config/index.php: sudo a2enconf mediawiki.conf sudo service apache2 restartبعد إكمال الضبط، يجب عليك أن تنقل الملف LocalSettings.php إلى المجلد ‎/etc/mediawiki: sudo mv /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki/ربما تريد أيضًا تعديل ‎/etc/mediawiki/LocalSettings.php لكي تضبط حد الذاكرة الأقصى (معطَّل افتراضيًا): ini_set( 'memory_limit', '64M' );الإضافاتتوفِّر الإضافات ميزات وتحسينات على تطبيق MediaWiki؛ تمنح هذه الإضافات مدراء الويكي والمستخدمين النهائيين القدرة على تخصيص MediaWiki لتناسب احتياجاتهم. يمكنك تنزيل إضافات MediaWiki كأرشيف أو عبر سحبها (checkout) من مستودع Subversion؛ عليك أن تنسخها إلى مجلد ‎/var/lig/mediawiki/extensions؛ يجب عليك أيضًا إضافة السطر الآتي في نهاية الملف ‎/etc/mediawiki/LocalSettings.php: require_once "$IP/extensions/ExtentionName/ExtentionName.php";مصادرللمزيد من المعلومات، رجاءً راجع موقع MediaWiki.يحتوي كتاب «MediaWiki Administrators’ Tutorial Guide» على معلوماتٍ قيمة لمدراء MediaWiki الجدد.صفحة ويكي أوبنتو «MediaWiki» هي مصدرٌ جيدٌ أيضًا.phpMyAdminإن phpMyAdmin هو تطبيق LAMP مكتوب خصيصًا لإدارة خواديم MySQL، وهو مبرمج بلغة PHP، ويمكن الوصول إليه عبر متصفح الويب، حيث يوفِّر phpMyAdmin واجهة رسومية لمهام إدارة قواعد البيانات. التثبيتقبل تثبيت phpMyAdmin فستحتاج إلى وصول إلى قاعدة بيانات MySQL سواءً على نفس المضيف الذي سيُثبَّت عليه phpMyAdmin أو على مضيف آخر متوفر عبر الشبكة؛ للمزيد من المعلومات حول MySQL فانظر إلى القسم الخاص بها في هذا الكتاب؛ أدخِل الأمر الآتي لتثبيت phpMyAdmin: sudo apt-get install phpmyadminستظهر لك نافذة لاختيار أي خادوم ويب سيُضبَط ليستخدمه phpMyAdmin؛ سنستخدم لبقية هذا القسم خادوم أباتشي كخادوم ويب. في المتصفح، اذهب إلى http://server/phpmyadmin مستبدلًا server باسم مضيف الخادوم الحقيقي؛ وعند صفحة تسجيل الدخول، اكتب root في حقل اسم المستخدم، أو أي مستخدم MySQL إذا كنت قد أعددت واحدًا؛ ثم أدخل كلمة مرور ذاك المستخدم. بعد تسجيل الدخول، تستطيع إعادة ضبط كلمة مرور الجذر إن كان ذلك ضروريًا، وإنشاء المستخدمين، وإنشاء أو حذف قواعد البيانات والجداول ...إلخ. الضبطملفات الضبط الخاصة ببرمجية phpMyAdmin موجودةٌ في مجلد ‎/etc/phpmyadmin؛ ملف الضبط الرئيسي هو ‎/etc/phpmyadmin/config.inc.php يحتوي هذا الملف خيارات الضبط التي تُطبَّق عمومًا على phpMyAdmin. لاستخدام phpMyAdmin لإدارة قواعد بيانات MySQL على خادوم آخر، عدِّل قيمة ما يلي في ملف ‎/etc/phpmyadmin/config.inc.php: $cfg['Servers'][$i]['host'] = 'db_server';ملاحظة: استبدل db_server باسم مضيف الخادوم البعيد أو عنوان IP الخاص به؛ أيضًا تأكد أن مضيف phpMyAdmin لديه الأذونات الكافية للوصول إلى قاعدة البيانات البعيدة. بعد ضبطه، سجل خروجك من phpMyAdmin ثم أعد تسجيل الدخول، ويجب أن تستطيع الوصول إلى الخادوم الجديد. الملفان config.header.inc.php و config.footer.inc.php يستخدمان لإضافة ترويسة وتذييل HTML إلى phpMyAdmin. ملف ضبط آخر مهم هو ‎/etc/phpmyadmin/apache.conf، توجد وصلة رمزية لهذا الملف في ‎/etc/apache2/conf.d/phpmyadmin.conf ويُستخدَم لضبط أباتشي لتخديم صفحات phpMyAdmin؛ يحتوي هذا الملف على تعليمات لتحميل PHP، وأذونات المجلد ...إلخ. مصادريأتي توثيق phpMyAdmin مثبتًا مع الحزمة ويمكن الوصول إليه من وصلة «phpMyAdmin Documentation» تحت شعار phpMyAdmin؛ يمكن الوصول إلى التوثيق الرسمي أيضًا في موقع phpMyAdmin.كتاب «Mastering phpMyAdmin» هو مصدر جيد للمعلومات.مصدر ثالث هو صفحة ويكي أوبنتو «phpMyAdmin».ووردبريسإن ووردبريس (Wordpress) هي أداة تدوين، ومنصة نشر، ونظام إدارة محتوى مكتوبة بلغة PHP ومرخصة برخصة GNU GPLv2. التثبيتنفِّذ الأمر الآتي في سطر الأوامر لتثبيت ووردبريس: sudo apt-get install wordpressيجب عليك أيضًا تثبيت خادوم أباتشي وخادوم MySQL؛ راجع الأقسام التي تُعنى بتثبيتهما وإعدادهما في هذه السلسلة. الضبطلضبط أول تطبيق ووردبريس، فعليك ضبط موقع أباتشي؛ افتح الملف ‎/etc/apache2/sites-available/wordpress.conf وضع فيه الأسطر الآتية: Alias /blog /usr/share/wordpress <Directory /usr/share/wordpress> Options FollowSymLinks AllowOverride Limit Options FileInfo DirectoryIndex index.php Order allow,deny Allow from all </Directory> <Directory /usr/share/wordpress/wp-content> Options FollowSymLinks Order allow,deny Allow from all </Directory>ثم فعِّل الموقع الجديد: sudo a2ensite wordpressبعد أن انتهيت من ضبط خادوم أباتشي، وجعلته جاهزًا لتطبيق ووردبريس، فعليك الآن إعادة تشغيله وذلك بتنفيذ الأمر الآتي: sudo service apache2 restartلتبسيط تشغيل عدِّة نسخ من ووردبريس، فسمِّ ملف الضبط بناءً على اسم المضيف؛ وهذا يعني أنك تستطيع أن تملك عدّة مضيفين وهميين بمطابقة اسم المضيف في ملف الضبط مع ملف اسم المضيف الوهمي في أباتشي؛ فعلى سبيل المثال، تكون أسماء الملفات هي ‎/etc/wordpress/config-10.211.55.50.php، أو ‎/etc/wordpress/config-hostalias1.php ...إلخ. هذه التعليمات تفترض أنك تستطيع الوصول إلى أباتشي عبر المضيف المحلي (ربما باستخدام نفق SSH)؛ إذا لم يكن ذلك هو الأمر، فاستبدل ‎/etc/wordpress/config-localhost.php بالاسم ‎/etc/wordpress/config/NAME_OF_VIRTUAL ‎_HOST.php. بعد أن يُكتَب ملف الضبط، فعليك اختيار نمط ﻷسماء مستخدمي MySQL وكلمات مرورهم لكل نسخة ووردبريس؛ لكن سنعرض في هذا الدرس مثالًا واحدًا هو localhost فقط. علينا الآن ضبط ووردبريس لاستخدام قاعدة بيانات MySQL؛ افتح الملف ‎/etc/wordpress/config-localhost.php واكتب الأسطر الآتية: <?php define('DB_NAME', 'wordpress'); define('DB_USER', 'wordpress'); define('DB_PASSWORD', 'yourpasswordhere'); define('DB_HOST', 'localhost'); define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content'); ?>ثم أنشِئ قاعدة البيانات، وذلك بفتح ملف مؤقت باسم wordpree.sql فيه أوامر MySQL الآتية: CREATE DATABASE wordpress; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'yourpasswordhere'; FLUSH PRIVILEGES;نفِّذ أوامر MySQL السابقة بالأمر: cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnfيجب أن تكون نسخة ووردبريس عندك قابلة للضبط بزيارة الوصلة http://localhost/blog/wp-admin/install.php، ثم اكتب اسم الموقع واسم المستخدم وكلمة المرور وبريدك الإلكتروني ثم اضغط على «تثبيت ووردبريس». لاحظ كلمة المرور المُولَّدة إن لم تختر واحدةً، ثم سجِّل دخولك إلى لوحة تحكم ووبرديس. مصادرتوثيق Wordpress.org Codex.صفحة ويكي أوبنتو «WordPress».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: LAMP Applications.
×
×
  • أضف...