مقدمة
تطوير تطبيق 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الصق التكوين التالي (قم بتكييفه):