نشر تطبيق PHP على VPS: دليل خطوة بخطوة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة

تطوير تطبيق PHP هو نصف المهمة فقط. الجزء الثاني، الذي لا يقل أهمية، هو deploy، أي نشر الكود الجاهز على الخادم الإنتاجي. يواجه العديد من المطورين المبتدئين صعوبات عند نقل المشروع من جهازهم المحلي إلى VPS (Virtual Private Server). قد يبدو إعداد البيئة، والعمل مع خادم الويب، وقواعد البيانات، والأمان أمرًا معقدًا، لكنه في الواقع عملية متسلسلة ومفهومة.

في هذه المقالة، سنشرح خطوة بخطوة كيفية تنفيذ deploy لتطبيق PHP على VPS بشكل صحيح. ستتعلم كيفية تجهيز الخادم، وإعداد Nginx و PHP-FPM، وربط قاعدة بيانات MySQL، وأتمتة نشر التحديثات عبر Git. المادة موجهة لمن لديهم مهارات أساسية في العمل مع Linux و Git، لكنهم يرغبون في تنظيم معرفتهم.



1. تجهيز الخادم وتثبيت LEMP-stack

أولاً، يجب الاتصال بـ VPS الخاص بك عبر SSH وتثبيت مجموعة البرامج الأساسية المعروفة باسم LEMP (Linux, Nginx, MySQL, PHP).

اتصل بالخادم:

ssh root@your-ip-address

قم بتحديث الحزم وتثبيت Nginx و MySQL و PHP مع الإضافات الضرورية:

sudo apt update && sudo apt upgrade -ysudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

بعد التثبيت، قم بتشغيل الخدمات وأضفها إلى بدء التشغيل التلقائي:

sudo systemctl start nginxsudo systemctl enable nginxsudo systemctl start php8.1-fpm  # الإصدار قد يختلفsudo systemctl enable php8.1-fpm

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



2. إعداد MySQL وإنشاء قاعدة بيانات

معظم تطبيقات PHP (مثل WordPress أو Laravel أو المشاريع المخصصة) تتطلب قاعدة بيانات. قم بإجراء الإعداد الأولي لـ MySQL:

sudo mysql_secure_installation

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

الآن، قم بإنشاء قاعدة بيانات ومستخدم لتطبيقك. ادخل إلى وحدة تحكم MySQL:

sudo mysql -u root -p

نفذ استعلامات SQL (استبدل myapp و myuser و mypassword بقيمك الخاصة):

CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';FLUSH PRIVILEGES;EXIT;

قاعدة البيانات جاهزة. احفظ اسم قاعدة البيانات والمستخدم وكلمة المرور — ستحتاجها عند إعداد التطبيق.



3. وضع الكود وإعداد virtual host لـ Nginx

حان الوقت الآن لنقل كود تطبيق PHP الخاص بك إلى الخادم. الطريقة الأكثر ملاءمة هي استخدام Git. لنفترض أن مشروعك موجود على GitHub أو GitLab.

أنشئ دليلاً للمشروع واستنسخ المستودع:

sudo mkdir -p /var/www/myappsudo chown -R $USER:$USER /var/www/myappgit clone https://github.com/your-username/your-repository.git /var/www/myapp

إذا كان المشروع يستخدم Composer (مثل Laravel أو Symfony)، فقم بتثبيت التبعيات:

cd /var/www/myappcomposer install --no-dev --optimize-autoloader

قم بإعداد صلاحيات الوصول. عادةً، يجب أن يكون لخادم الويب صلاحية الكتابة في بعض المجلدات (مثل storage و bootstrap/cache في Laravel):

sudo chown -R www-data:www-data /var/www/myapp/storagesudo chown -R www-data:www-data /var/www/myapp/bootstrap/cache

الآن، لننشئ تكوين virtual host لـ Nginx. أنشئ ملفًا:

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

الصق التكوين التالي (قم بتكييفه):

المدونات

توصيات الكتب