دليل تثبيت وإعداد PHP على Ubuntu خطوة بخطوة للمبتدئين والمحترفين

目次

1. المقدمة

لماذا نستخدم PHP على Ubuntu؟

PHP هي لغة برمجة من جهة الخادم تُستخدم في العديد من تطبيقات الويب مثل WordPress وغيرها. تُعد PHP الخيار الأكثر شيوعًا لتطوير الويب منذ سنوات عديدة، حيث أن معظم أنظمة إدارة المحتوى (CMS) وأطر العمل تعتمد عليها.

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

من المستفيد من هذا الدليل وما الهدف منه؟

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

تم إعداد الشرح اعتمادًا على إصدار Ubuntu 22.04 LTS، لكن معظم الخطوات تنطبق أيضًا على الإصدارات الأخرى.

ما الذي ستتعلمه من هذا المقال؟

عند قراءة هذا الدليل ستتمكن من:

  • تثبيت PHP على Ubuntu بالطريقة الأساسية
  • تثبيت أكثر من إصدار PHP والتبديل بينها
  • التحقق من عمل PHP وحل المشاكل الشائعة
  • إعداد التكامل بين PHP وApache أو Nginx
  • تثبيت الإضافات المهمة التي يحتاجها أغلب المطورين

2. المتطلبات الأساسية والتحضيرات

كيفية معرفة إصدار Ubuntu الخاص بك

أول خطوة هي معرفة إصدار Ubuntu الذي تستخدمه، لأن طريقة التثبيت وبعض الإضافات قد تختلف حسب الإصدار.

يمكنك معرفة الإصدار عبر تنفيذ الأمر التالي:

lsb_release -a

أو باستخدام الأمر التالي:

cat /etc/os-release

هذا الدليل مبني على Ubuntu 22.04 LTS، لكن معظم الخطوات متشابهة مع إصدارات 20.04 و23.10 أيضًا.

تحديث الحزم على النظام

قبل تثبيت PHP، من الضروري تحديث جميع الحزم على النظام لتفادي أي تعارضات أو مشاكل بالاعتمادات. نفذ الأوامر التالية:

sudo apt update
sudo apt upgrade -y

بهذا يتم تحديث مدير الحزم APT وقاعدة بيانات البرامج على آخر إصدار.

تثبيت الأدوات اللازمة

بعض إصدارات PHP تتطلب إضافة مستودعات خارجية أو أدوات إدارة، لذلك عليك تثبيت حزمة software-properties-common إذا لم تكن موجودة:

sudo apt install -y software-properties-common

هذه الحزمة مطلوبة عند استخدام أوامر مثل add-apt-repository، خاصةً عند إضافة مستودع PPA لتثبيت إصدارات معينة من PHP.

تشغيل الأوامر بصلاحيات root أو sudo

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

3. كيفية تثبيت PHP

يوجد طريقتان أساسيتان لتثبيت PHP على Ubuntu:
إما عبر المستودع الافتراضي (standard repository)، أو باستخدام مستودع PPA (Personal Package Archive) للحصول على إصدار محدد.

تثبيت PHP من المستودع الافتراضي

يُوفر مستودع Ubuntu الافتراضي إصدارًا ثابتًا من PHP. إذا لم تكن بحاجة لإصدار معين، يمكنك تثبيته بالأمر التالي:

sudo apt install -y php

للتحقق من التثبيت:

php -v

مثال:

PHP 8.1.2 (cli) (built: ...)

عادةً ما يتوفر PHP 8.1 بشكل افتراضي في Ubuntu 22.04.

تثبيت إصدار محدد باستخدام PPA

إذا كنت بحاجة لإصدار أحدث أو ترغب باستخدام عدة إصدارات من PHP، يمكنك إضافة مستودع ondrej/php الشهير.

الخطوة 1: إضافة مستودع PPA

sudo add-apt-repository ppa:ondrej/php
sudo apt update

هذا المستودع موثوق ويُستخدم بكثرة لتثبيت إصدارات PHP المختلفة على Ubuntu.

الخطوة 2: تثبيت الإصدار المطلوب

مثلاً لتثبيت PHP 8.2:

sudo apt install -y php8.2

يمكنك أيضًا تثبيت إصدارات أخرى مثل 7.4 أو 8.0 حسب الحاجة.

الخطوة 3: التحقق من الإصدار

php -v

إذا ظهر الإصدار المطلوب، فقد تم التثبيت بنجاح.

4. التحقق من عمل PHP

بعد تثبيت PHP، يجب التأكد من أنه يعمل بشكل صحيح سواء في الطرفية أو عبر الويب سيرفر (Apache/Nginx).

التحقق عبر الطرفية (CLI)

نفذ الأمر التالي:

php -v

إذا ظهرت معلومات الإصدار والبناء، فهذا يعني أن PHP يعمل في سطر الأوامر.

مثال للمخرجات:

PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

التحقق عبر سيرفر الويب (Apache)

إذا كنت تستخدم Apache، يمكنك إنشاء صفحة اختبار باستخدام دالة phpinfo().

1. إنشاء ملف اختبار

نفذ الأمر التالي لإنشاء ملف PHP في مجلد المواقع الافتراضي:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

2. التحقق عبر المتصفح

افتح الرابط التالي في المتصفح:

http://localhost/info.php

3. مراجعة النتيجة

إذا ظهرت معلومات PHP، فهذا يعني أن التكامل مع Apache ناجح.

🔍 ملاحظة: بعد التحقق من phpinfo() يُفضل حذف ملف info.php لأسباب أمنية.

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

التحقق مع Nginx و PHP-FPM

عند استخدام Nginx، تتم معالجة PHP بواسطة php-fpm. عليك التأكد أن إعدادات fastcgi_pass صحيحة. في حالة الخطأ سيظهر خطأ 500 أو سيبدأ تحميل الملف بدلاً من تنفيذه.

إذا حدث ذلك، راجع إعدادات fastcgi_pass وملفات include fastcgi-php.conf;.

5. تثبيت أشهر إضافات PHP (الموديولات)

يحتاج PHP للعديد من الإضافات (موديولات) ليعمل بكامل وظائفه، مثلاً الاتصال بقواعد البيانات أو التعامل مع الصور أو النصوص المتعددة اللغات. فيما يلي أهم الإضافات:

ما هي إضافات PHP؟

إضافات PHP (الموديولات) تُضيف وظائف مثل التعامل مع قواعد البيانات، معالجة الصور، أو دعم النصوص متعددة اللغات. لتثبيت أي إضافة:

sudo apt install php-اسم_الموديول

لإصدار معين مثلاً:
php8.2-mbstring

أشهر الإضافات واستخداماتها

php-mbstring (دعم النصوص متعددة اللغات)

مطلوب لمعالجة النصوص اليابانية أو العربية وغيرها من اللغات التي تحتوي على أحرف متعددة البايت.

sudo apt install php-mbstring

php-mysql (الاتصال بـ MySQL/MariaDB)

ضروري للتكامل مع قواعد البيانات المستخدمة في WordPress أو تطبيقات أخرى.

sudo apt install php-mysql

php-gd (معالجة الصور)

لتوليد أو تعديل الصور (مثلاً الصور المصغرة أو الشعارات).

sudo apt install php-gd

php-xml (التعامل مع XML)

مطلوب عند العمل مع RSS أو APIs تعتمد على XML.

sudo apt install php-xml

php-curl (الاتصال عبر HTTP)

ضروري للتكامل مع خدمات أو واجهات API خارجية.

sudo apt install php-curl

php-zip (التعامل مع ملفات الضغط)

مطلوب لفك وضغط الملفات، مفيد في عمليات رفع الملفات عبر الويب.

sudo apt install php-zip

تفعيل الإضافات وإعادة تشغيل السيرفر

بعض الإضافات تحتاج إلى تفعيل يدوي بعد التثبيت:

sudo phpenmod اسم_الموديول
sudo systemctl restart apache2

6. إدارة وتبديل إصدارات PHP

يمكنك تثبيت أكثر من إصدار PHP على نفس السيرفر والتبديل بينها بسهولة، خاصةً في بيئات التطوير.

تبديل إصدار PHP في CLI

الأمر المستخدم: update-alternatives

يُمكنك تحديد الإصدار الافتراضي بالأوامر التالية:

الخطوة 1: معرفة الإصدارات المثبتة

ls /usr/bin/php*

الخطوة 2: تسجيل الإصدارات (عند التثبيت لأول مرة)

sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82

الخطوة 3: اختيار الإصدار

sudo update-alternatives --config php

ستظهر قائمة بالخيارات، اختر الإصدار المطلوب.

الخطوة 4: التحقق من التبديل

php -v

تبديل إصدار PHP في Apache

يمكنك التبديل بين الإصدارات عن طريق تفعيل أو تعطيل الموديولات الخاصة بكل إصدار:

1. عرض الموديولات المتوفرة

ls /etc/apache2/mods-available | grep php

2. تعطيل الإصدار الحالي

sudo a2dismod php7.4

3. تفعيل الإصدار الجديد

sudo a2enmod php8.2

4. إعادة تشغيل Apache

sudo systemctl restart apache2

7. إعداد التكامل مع Apache وNginx

يتكامل PHP مع سيرفر الويب (Apache أو Nginx) لتقديم تطبيقات الويب بشكل فعّال. فيما يلي شرح طريقة الربط:

التكامل مع Apache (mod_php)

يمكنك تفعيل mod_php على Apache عبر:

الخطوة 1: تثبيت Apache وmod_php

sudo apt install -y apache2 libapache2-mod-php

الخطوة 2: إعادة تشغيل Apache

sudo systemctl restart apache2

الخطوة 3: اختبار ملف PHP

أنشئ ملف test.php في المجلد الرئيسي للسيرفر واكتب فيه:

<?php
phpinfo();
?>

مثال لعنوان التصفح:

http://localhost/test.php

التكامل مع Nginx (PHP-FPM)

Nginx يعمل بسرعة وكفاءة عالية، لكن يحتاج إلى PHP-FPM لمعالجة ملفات PHP.

الخطوة 1: تثبيت Nginx وPHP-FPM

sudo apt install -y nginx php-fpm

الخطوة 2: تحرير ملف إعدادات Nginx

عادةً يتم تعديل:

sudo nano /etc/nginx/sites-available/default

وتضيف أو تعدل قسم PHP ليشمل:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

الخطوة 3: إعادة تشغيل Nginx

sudo systemctl restart nginx

الخطوة 4: التأكد من عمل PHP

أنشئ test.php وتأكد من ظهور معلومات PHP عبر المتصفح.

ملاحظة إضافية: إعداد الجدار الناري (Firewall) إذا لزم الأمر

إذا كنت تستخدم UFW يمكنك السماح بالاتصال:

sudo ufw allow 'Apache Full'
# أو
sudo ufw allow 'Nginx Full'

اختر Apache للسهولة أو Nginx للأداء العالي.

8. استكشاف الأخطاء وإصلاحها (Troubleshooting)

قد تواجه مشاكل أثناء تثبيت PHP أو ربطه بسيرفر الويب. إليك أشهر الأعطال وحلولها:

المشكلة: PHP لا يعمل وتظهر الشيفرة المصدرية في المتصفح

السبب

السيرفر لم يربط PHP بشكل صحيح (إما mod_php غير مفعل أو إعدادات FastCGI خاطئة).

الحل

  • مع Apache:
    تأكد من تثبيت وتفعيل libapache2-mod-php ثم أعد تشغيل Apache.
  sudo apt install libapache2-mod-php
  sudo systemctl restart apache2
  • مع Nginx:
    تأكد من تثبيت php-fpm وضبط fastcgi_pass بشكل صحيح في ملف إعدادات Nginx.
  sudo systemctl restart php8.2-fpm
  sudo systemctl restart nginx

مشكلة: بعض وظائف PHP غير متوفرة (دوال غير معرفة)

السبب

قد تكون الإضافة (الموديول) المطلوبة غير مثبتة أو غير مفعلة.

الحل

  • قم بتثبيت الموديولات المطلوبة (مثال: mbstring، xml، curl)
  sudo apt install php-mbstring php-xml php-curl
  • أعد تشغيل سيرفر الويب بعد التفعيل.
  sudo systemctl restart apache2  # أو nginx
  • للتحقق من الموديولات المفعلة:
  php -m

مشكلة: أخطاء PHP لا تظهر في الشاشة

السبب

في بعض الإعدادات الافتراضية، يكون عرض الأخطاء معطلًا لأسباب أمنية.

الحل

حرر ملف php.ini وعدل الإعدادات التالية:

sudo nano /etc/php/8.2/apache2/php.ini

ابحث وعدل هذه القيم:

display_errors = On
error_reporting = E_ALL

ثم أعد تشغيل السيرفر:

sudo systemctl restart apache2

كيفية التحقق من سجل الأخطاء (Logs)

مع Apache:

/var/log/apache2/error.log

مع Nginx:

/var/log/nginx/error.log

سجل PHP-FPM (عند ربطه بـ Nginx):

/var/log/php8.2-fpm.log

يمكنك متابعة السجلات بشكل مباشر باستخدام:

sudo tail -f /var/log/apache2/error.log

نصيحة مهمة: إذا حدثت مشكلة، تحقق من السجلات أولاً ثم راجع الإعدادات وأعد تشغيل السيرفر.

9. الخلاصة

في هذا الدليل شرحنا خطوة بخطوة كيفية تثبيت وإعداد PHP على Ubuntu، من الأساسيات حتى المتقدم. فيما يلي ملخص لأهم النقاط:

ملخص النقاط الرئيسية

  • التحقق من إصدار Ubuntu والتحديث
    يجب التأكد من إصدار النظام وتحديث الحزم قبل البدء.
  • طريقتان لتثبيت PHP
    إما من المستودع الافتراضي أو عبر PPA لإصدار محدد.
  • التحقق من نجاح التثبيت
    استخدم php -v و phpinfo() للتحقق من عمل PHP.
  • تثبيت الإضافات حسب الحاجة
    مثل php-mbstring و php-mysql وغيرها.
  • إمكانية تثبيت وإدارة عدة إصدارات
    عبر update-alternatives أو تبديل موديولات Apache.
  • إعداد الربط مع Apache/Nginx
    تأكد من الإعداد الصحيح للسيرفر المستخدم.
  • حل المشكلات عبر مراجعة السجلات
    إذا واجهت مشاكل، راجع سجلات الأخطاء أولاً.

ماذا تتعلم بعد ذلك؟

بعد تثبيت PHP بنجاح على Ubuntu، يمكنك تطوير مهاراتك عبر:

  • تثبيت MySQL/MariaDB وربطها مع PHP
  • تثبيت WordPress وبنائه على السيرفر
  • استخدام أطر عمل مثل Laravel
  • تفعيل بروتوكول HTTPS وإعداد شهادات SSL عبر Let’s Encrypt
  • إعداد التشغيل التلقائي للخدمات باستخدام systemd

دمج هذه المهارات يمنحك القدرة على تطوير تطبيقات وخدمات ويب احترافية باستخدام بيئة مفتوحة المصدر وقوية مثل Ubuntu وPHP.

10. الأسئلة الشائعة (FAQ)

فيما يلي مجموعة من الأسئلة المتكررة التي يبحث عنها مستخدمو Ubuntu عند تثبيت أو إعداد PHP، مع إجابات عملية وبسيطة:

س1: كيف يمكنني تثبيت أحدث إصدار PHP على Ubuntu؟

ج1.
في أغلب الأحيان، لا يوفر المستودع الافتراضي أحدث إصدار. لإصدارات أحدث، أضف مستودع ondrej/php ثم ثبت الإصدار المطلوب:

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

س2: كيف أغير إصدار PHP في الطرفية (CLI)؟

ج2.
إذا كان لديك أكثر من إصدار مثبت، استخدم:

sudo update-alternatives --config php

اختر الرقم المناسب للإصدار الذي تريده من القائمة.

س3: عند فتح ملف PHP في Apache يظهر الكود وليس الناتج، ما السبب؟

ج3.
ذلك يعني أن Apache لا يعالج ملفات PHP. تأكد من تثبيت وتفعيل libapache2-mod-php، ثم أعد تشغيل Apache:

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

س4: أين أجد ملف إعدادات php.ini؟

ج4.
يختلف حسب استخدامك:

  • Apache: /etc/php/8.2/apache2/php.ini
  • CLI: /etc/php/8.2/cli/php.ini

استبدل “8.2” برقم الإصدار المثبت لديك.

س5: كيف أفعّل إضافة PHP بعد تثبيتها؟

ج5.
استخدم:

sudo phpenmod mbstring
sudo systemctl restart apache2

أعد تشغيل السيرفر بعد التفعيل.

س6: لدي مشكلة في تشغيل PHP مع Nginx، ماذا أفعل؟

ج6.
تأكد من أن php-fpm يعمل وأن إعداد fastcgi_pass في ملف Nginx صحيح:

location ~ .php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

س7: لا تظهر أخطاء PHP على الشاشة، كيف أعدل ذلك؟

ج7.
افتح ملف php.ini وعدّل الإعدادات التالية:

display_errors = On
error_reporting = E_ALL

ثم أعد تشغيل السيرفر.

هذه هي أهم الأسئلة والإجابات حول تثبيت واستخدام PHP على Ubuntu. امتلاك هذه المعلومات يساعدك على حل المشاكل بسرعة وبكفاءة.