- 1 1. المقدمة
- 2 2. المتطلبات الأساسية والتحضيرات
- 3 3. كيفية تثبيت PHP
- 4 4. التحقق من عمل PHP
- 5 5. تثبيت أشهر إضافات PHP (الموديولات)
- 6 6. إدارة وتبديل إصدارات PHP
- 7 7. إعداد التكامل مع Apache وNginx
- 8 8. استكشاف الأخطاء وإصلاحها (Troubleshooting)
- 9 9. الخلاصة
- 10 10. الأسئلة الشائعة (FAQ)
- 10.1 س1: كيف يمكنني تثبيت أحدث إصدار PHP على Ubuntu؟
- 10.2 س2: كيف أغير إصدار PHP في الطرفية (CLI)؟
- 10.3 س3: عند فتح ملف PHP في Apache يظهر الكود وليس الناتج، ما السبب؟
- 10.4 س4: أين أجد ملف إعدادات php.ini؟
- 10.5 س5: كيف أفعّل إضافة PHP بعد تثبيتها؟
- 10.6 س6: لدي مشكلة في تشغيل PHP مع Nginx، ماذا أفعل؟
- 10.7 س7: لا تظهر أخطاء PHP على الشاشة، كيف أعدل ذلك؟
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. امتلاك هذه المعلومات يساعدك على حل المشاكل بسرعة وبكفاءة.