كيفية تثبيت Linux وApache وMySQL وPHP (LAMP) على Ubuntu 16.04

0 الأسهم
0
0
0
0

كيفية تثبيت Linux وApache وMySQL وPHP (LAMP) على Ubuntu 16.04

مقدمة

LAMP عبارة عن مجموعة من البرامج مفتوحة المصدر، تُثبّت عادةً لتمكين الخادم من استضافة مواقع ويب وتطبيقات ويب ديناميكية. يرمز المصطلح إلى نظام تشغيل Lamp. لينكس يعمل الموقع بواسطة خادم الويب Apache. تُخزَّن بيانات الموقع في قاعدة بيانات MySQL، ويُعالَج المحتوى الديناميكي باستخدام PHP.

في هذا الدليل، سنقوم بتثبيت حزمة LAMP على خادم Ubuntu 16.04. سيلبي Ubuntu متطلبنا الأول: نظام تشغيل Linux.

المتطلبات الأساسية

قبل البدء بهذا الدليل، ستحتاج إلى إنشاء حساب مستخدم منفصل، غير جذر، بصلاحيات sudo على خادمك. يمكنك تعلم كيفية القيام بذلك باتباع الخطوات من 1 إلى 4 في دليلنا التعليمي لإعداد الخادم الأولي لنظام Ubuntu 16.04.

الخطوة 1 - تثبيت Apache وتكوين جدار الحماية

يُعد خادم الويب Apache أحد أشهر خوادم الويب في العالم. فهو مُوثَّق جيدًا، ويُستخدم على نطاق واسع على مرِّ تاريخ الإنترنت، مما يجعله خيارًا مثاليًا لاستضافة مواقع الويب.

يمكننا تثبيت Apache بسهولة باستخدام مدير حزم أوبونتو. يتيح لنا مدير الحزم تثبيت معظم البرامج دون أي متاعب من مستودع أوبونتو. يمكنك معرفة المزيد حول كيفية استخدام apt هنا.

بالنسبة للنتيجة، يمكننا البدء بكتابة هذه الأوامر:

sudo apt-get update  $
sudo apt-get install apache2  $

بما أننا نستخدم أمر sudo، فسيتم تنفيذ هذه العملية بصلاحيات الجذر. سيُطلب منك إدخال كلمة مرور المستخدم العادي لتأكيد رغبتك.

بمجرد إدخال كلمة المرور، سيُعلمك apt بالحزم التي يُخطط لتثبيتها وحجم المساحة الإضافية التي ستشغلها. للمتابعة، اكتب y واضغط على ENTER، وسيبدأ التثبيت.

تعيين Global ServerName لقمع تحذيرات بناء الجملة

بعد ذلك، سنضيف سطرًا إلى ملف /etc/apache2/apache2.conf لإخفاء رسالة التحذير. مع أن هذا آمن، إلا أنه إذا لم تُعيّن ServerName عالميًا، فستتلقى التحذير التالي عند التحقق من إعدادات Apache بحثًا عن أخطاء لغوية:

sudo apache2ctl configtest   $
Output
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

افتح ملف التكوين الرئيسي عن طريق تحرير النص الخاص به:

sudo nano /etc/apache2/apache2.conf  $

في أسفل الملف، أضف تعليمة ServerName، التي تُشير إلى اسم نطاقك الرئيسي. إذا لم يكن لديك اسم نطاق مرتبط بخادمك، يمكنك استخدام عنوان IP العام الخاص به:

ملحوظة: إذا كنت لا تعرف عنوان IP الخاص بخادمك، فانتقل إلى قسم كيفية العثور على عنوان IP العام لخادمك للعثور عليه.



/etc/apache2/apache2.conf

. . .
ServerName server_domain_or_IP

احفظ الملف وأغلقه عند الانتهاء.

بعد ذلك، تحقق من وجود أخطاء في بناء الجملة عن طريق الكتابة:

sudo nano apache2ctl configtest  $

نظرًا لأننا أضفنا التوجيه العالمي ServerName، فكل ما يجب أن تراه هو هذا:

Output
Syntax OK

أعد تشغيل Apache لتنفيذ التغييرات الخاصة بك:

sudo nano systemctl restart apache2  $

الآن يمكنك البدء في تكوين جدار الحماية.

تكوين جدار الحماية للسماح بحركة مرور الويب

بعد ذلك، بافتراض اتباعك تعليمات إعداد الخادم الأولية لتفعيل جدار حماية UFW، تأكد من أن جدار الحماية يسمح بحركة مرور HTTP وHTTPS. يمكنك التأكد من أن UFW لديه ملف تعريف تطبيق لـ Apache كما يلي:

sudo nano ufw app list  $
Output

Available applications:

Apache

Apache Full

Apache Secure

OpenSSH

إذا نظرت إلى ملف تعريف Apache الكامل، فيجب أن يظهر أنه يقوم بتمكين حركة المرور على المنفذين 80 و443:

$  sudo ufw app info “Apache Full”








Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
۸۰,۴۴۳/tcp

السماح بحركة المرور الواردة لهذا الملف الشخصي:

$  sudo ufw allow in “Apache Full”

يمكنك إجراء فحص سريع للتأكد من أن كل شيء سار وفقًا للخطة من خلال زيارة عنوان IP العام لخادمك في متصفح الويب الخاص بك (إذا لم تكن لديك هذه المعلومات، راجع الملاحظة الموجودة أسفل العنوان التالي لمعرفة ما كان عليه عنوان IP العام الخاص بك من قبل):

http://your_server_IP_address

ستظهر لك صفحة ويب أباتشي Ubuntu 16.04 الافتراضية، وهي مُخصصة لأغراض المعلومات والاختبار. يجب أن تبدو كالتالي:

إذا رأيت هذه الصفحة، فهذا يعني أن خادم الويب لديك مثبت بشكل صحيح ويمكنك الوصول إليه الآن من خلال جدار الحماية الخاص بك.

العثور على عنوان IP العام لخادمك

إذا كنت لا تعرف عنوان IP العام لخادمك، فهناك عدة طرق للعثور عليه. عادةً، هذا هو العنوان الذي تستخدمه للاتصال بخادمك عبر SSH.

من سطر الأوامر، يمكنك معرفة ذلك بعدة طرق. أولًا، يمكنك استخدام أداة iproute2 للحصول على عنوانك بكتابة:

$ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’

سيُعطيك هذا سطرين أو ثلاثة. جميعها عناوين صحيحة، ولكن قد لا يستخدم جهاز الكمبيوتر سوى واحد منها، لذا جرّب كل واحد منها.

هناك طريقة بديلة وهي استخدام أداة curl للتواصل مع جهة خارجية وإخبارها بكيفية تعاملها مع خادمك. يمكنك القيام بذلك عن طريق طلب عنوان IP الخاص بك من خادم محدد:




$  sudo apt-get install curl
$  curl http://icanhazip.com

بغض النظر عن الطريقة التي تستخدمها للحصول على عنوان IP الخاص بك، يمكنك كتابته في شريط عنوان متصفح الويب الخاص بك للوصول إلى الخادم الخاص بك.

الخطوة 2 – تثبيت MySQL

بعد إعداد خادم الويب، حان وقت تثبيت MySQL. MySQL هو نظام إدارة قواعد بيانات، يسمح لقواعد البيانات بتخزين المعلومات وتنظيمها والوصول إليها.

مرة أخرى، يمكننا استخدام apt للحصول على برنامجنا وتثبيته. هذه المرة، سنقوم أيضًا بتثبيت بعض حزم المساعدة الأخرى التي ستساعدنا على التواصل بين مكوناتنا:

$ sudo apt-get install mysql-server

ملحوظة: في هذه الحالة، لستَ بحاجة إلى تشغيل sudo apt-get update قبل الأمر. هذا لأننا نفّذناه في الأوامر السابقة لتثبيت Apache. يجب أن تكون قائمة الحزم على جهاز الكمبيوتر مُحدّثة مسبقًا.

ستظهر لك قائمة بالحزم التي سيتم تثبيتها، بالإضافة إلى مساحة القرص التي ستشغلها. اضغط Y للمتابعة.

أثناء التثبيت، سيطلب منك خادمك اختيار كلمة مرور وتأكيدها لمستخدم MySQL "الجذر". هذا حساب إداري في MySQL يتمتع بصلاحيات مُرتفعة. يشبه هذا الحساب حساب الجذر للخادم نفسه (مع أن الحساب الذي تقوم بتكوينه الآن هو حساب MySQL خاص). تأكد من أن كلمة المرور قوية وفريدة، ولا تتركها فارغة.

بعد اكتمال التثبيت، نريد تشغيل نص برمجي أمني بسيط يُزيل بعض الإعدادات الافتراضية الخطيرة ويُقيّد الوصول إلى نظام قاعدة البيانات لدينا بشكل طفيف. ابدأ تشغيل النص التفاعلي بتنفيذ الأمر التالي:

$ mysql_secure_installation

سيُطلب منك إدخال كلمة المرور التي حددتها لحساب MySQL الجذر. بعد ذلك، سيُطلب منك تكوين مكون إضافي للتحقق من كلمة المرور.

تحذير: تفعيل هذه الميزة أشبه بتقييم دقيق. عند تفعيلها، سيرفض MySQL كلمات المرور التي لا تستوفي المعايير المحددة مع ظهور خطأ. قد يُسبب هذا مشاكل إذا استخدمت كلمة مرور ضعيفة مع برنامج يُهيئ بيانات اعتماد MySQL تلقائيًا، مثل حزم Ubuntu لـ 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:

سيُطلب منك تحديد مستوى التحقق من كلمة المرور. يُرجى العلم أنه في حال إدخال الرقم ٢ لأقوى مستوى، ستتلقى رسالة خطأ عند محاولة تعيين كلمة مرور لا تحتوي على أرقام، أو أحرف كبيرة وصغيرة، أو أحرف خاصة، أو تعتمد على كلمات شائعة في القاموس.

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

إذا فعّلتَ التحقق من كلمة المرور، ستظهر كلمة مرور قوية لكلمة مرور الجذر الحالية، وسيُطلب منك تغييرها. إذا كنتَ راضيًا عن كلمة مرورك الحالية، فأدخل n بدلًا من "لا" عند المطالبة.




Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

بالنسبة لبقية الأسئلة، اضغط على Y ثم Enter عند كل سؤال. سيؤدي هذا إلى إزالة بعض المستخدمين المجهولين وقاعدة بيانات الاختبار، وتعطيل تسجيل الدخول الجذري عن بُعد، وتحميل هذه القواعد الجديدة حتى يلتزم MySQL بالتغييرات التي أجريناها فورًا.

في هذه المرحلة، أصبح نظام قاعدة البيانات الخاص بك جاهزًا للعمل ويمكننا المتابعة.

الخطوة 3 – تثبيت PHP

PHP هو جزء من إعداداتنا الذي يُعالج الشيفرة البرمجية لعرض محتوى ديناميكي. يمكنه تنفيذ البرامج النصية، والاتصال بقواعد بيانات MySQL لاسترجاع المعلومات، وإرسال المحتوى المُعالج إلى خادم الويب لعرضه.

يمكننا مجددًا استخدام نظام apt لتثبيت مكوناتنا. سنضيف أيضًا بعض حزم المساعدة لتشغيل شيفرة PHP على خادم Apache والتواصل مع قاعدة بيانات MySQL.

$  sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

من المفترض أن يُثبّت هذا PHP دون أي مشاكل. سنختبره لاحقًا.

في معظم الحالات، نرغب في تغيير طريقة عرض أباتشي للملفات عند طلب دليل. حاليًا، إذا طلب مستخدم دليلًا من الخادم، يبحث أباتشي أولًا عن ملف index.html. نريد توجيه خادم الويب لدينا لتفضيل ملفات PHP، لذا نبحث أولًا عن ملف index.php.

للقيام بذلك، اكتب هذا الأمر لفتح ملف dir.conf في محرر نصوص مع امتيازات الجذر:

$   sudo nano /etc/apache2/mods-enabled/dir.conf

وسوف تبدو مثل هذا:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

نريد نقل ملف دليل PHP المميز أعلاه إلى الموضع الأول بعد مواصفات DirectoryIndex، مثل هذا:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

عند الانتهاء، احفظ الملف وأغلقه بالضغط على Ctrl-X. ستحتاج إلى الحفظ بكتابة Y ثم Enter لتأكيد مكان حفظ الملف.

بعد ذلك، علينا إعادة تشغيل خادم الويب Apache ليتم التعرّف على تغييراتنا. يمكنك القيام بذلك بكتابة ما يلي:

$  sudo systemctl restart apache2

يمكننا أيضًا التحقق من حالة خدمة apache2 باستخدام systemctl:

$ sudo systemctl status apache2
Sample Output

● apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─۱۳۶۲۳ /usr/sbin/apache2 -k start
├─۱۳۶۲۶ /usr/sbin/apache2 -k start
├─۱۳۶۲۷ /usr/sbin/apache2 -k start
├─۱۳۶۲۸ /usr/sbin/apache2 -k start
├─۱۳۶۲۹ /usr/sbin/apache2 -k start
└─۱۳۶۳۰ /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server…
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

تثبيت وحدات PHP

لتحسين أداء PHP، يمكننا اختياريا تثبيت وحدات إضافية.

لرؤية الخيارات المتاحة لوحدات PHP والمكتبات، يمكنك إدخال نتائج البحث عن apt-cache في less، وهي عبارة عن جهاز يسمح لك بالتمرير عبر مخرجات الأوامر الأخرى:

$  apt-cache search php- | less

استخدم مفاتيح الأسهم للتحرك لأعلى ولأسفل و q للخروج.

النتائج هي جميع المكونات الاختيارية التي يمكنك تثبيتها. ستجد وصفًا موجزًا لكل منها:

libnet-libidn-perl – Perl bindings for GNU Libidn
php-all-dev – package depending on all supported PHP development packages
php-cgi – server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli – command-line interpreter for the PHP scripting language (default)
php-common – Common files for PHP packages
php-curl – CURL module for PHP [default]
php-dev – Files for PHP module development (default)
php-gd – GD module for PHP [default]
php-gmp – GMP module for PHP [default]
…
:

للحصول على مزيد من المعلومات حول ما يفعله كل وحدة، يمكنك البحث على الإنترنت أو يمكنك إلقاء نظرة على وصف الحزمة الطويل عن طريق الكتابة:

$   apt-cache show package_name

سيكون هناك قدر كبير من النتائج، مع حقل يسمى Description-en والذي يوفر شرحًا أطول لوظيفة الوحدة.

على سبيل المثال، لمعرفة ما تفعله وحدة php-cli، يمكننا كتابة هذا:

$  apt-cache show php-cli

إلى جانب مجموعة كبيرة من المعلومات الأخرى، ستجد شيئًا مثل هذا:

Output
…
Description-en: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
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.
.
This package is a dependency package, which depends on Debian’s default
PHP version (currently 7.0).
…

إذا قررت، بعد البحث، أنك تريد تثبيت حزمة، فيمكنك القيام بذلك باستخدام أمر apt-get install، تمامًا كما نفعل مع برامجنا الأخرى.

إذا قررنا أن php-cli هو ما نحتاجه، فيمكننا كتابة:

$  sudo apt-get install php-cli

إذا كنت تريد تثبيت أكثر من وحدة، فيمكنك القيام بذلك عن طريق إدراج كل واحدة منها، مفصولة بمسافة، متبوعة بأمر apt-get install، مثل هذا:

$   sudo apt-get install package1 package2 …

في هذه المرحلة، تم تثبيت إطار عمل LAMP وتهيئته. ما زلنا بحاجة لاختبار PHP.

الخطوة 4 – اختبار معالجة PHP على خادم الويب الخاص بك

لاختبار ما إذا كان نظامنا مهيأ بشكل صحيح للغة PHP، يمكننا إنشاء نص PHP أساسي للغاية.

سنسمي هذا النص البرمجي info.php. لكي يتمكن Apache من العثور على الملف وعرضه بشكل صحيح، يجب حفظه في مجلد خاص جدًا يُسمى جذر الويب.

في أوبونتو 16.04، يقع هذا المجلد في /var/www/html/. يُمكننا إنشاء الملف في هذا الموقع بكتابة:

$  sudo nano /var/www/html/info.php

سيؤدي هذا إلى فتح ملف فارغ. نريد وضع النص التالي، وهو شيفرة PHP صالحة، داخل الملف:

info.php

<?php
phpinfo();
?>

عندما تنتهي، احفظ الملف وأغلقه.

الآن يمكننا اختبار قدرة خادم الويب لدينا على عرض المحتوى المُولّد بواسطة سكربت PHP بشكل صحيح. لاختبار ذلك، ما علينا سوى زيارة هذه الصفحة في متصفح الويب. ستحتاج أيضًا إلى عنوان IP العام لخادمك.

العنوان الذي تريد زيارته سيكون:

http://your_server_IP_address/info.php

يجب أن تبدو الصفحة التي وصلت إليها بهذا الشكل:

يجب أن تبدو الصفحة التي وصلت إليها بهذا الشكل:

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

إذا نجحت هذه الخطوة، فسوف يعمل PHP الخاص بك كما هو متوقع.

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

$  sudo rm /var/www/html/info.php

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

تعليقات 2
  1. إذا احتاج شخص ما إلى رأي خبير بشأن إدارة مدونة، فأنا أنصحه بذلك.
    تفضل بزيارة سريعة لهذه الصفحة، استمر في العمل الجيد.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

قد يعجبك أيضاً