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

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

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

ابدأ الدورة

مقدمة



نشر (Deploy) تطبيق PHP على خادم خاص افتراضي (VPS) هو مرحلة أساسية للانتقال من التطوير المحلي إلى الإنتاج (Production). على عكس الاستضافة المشتركة، يمنحك VPS تحكمًا كاملاً في بيئة التشغيل، وهو أمر بالغ الأهمية لأطر العمل الحديثة (Laravel, Symfony) والمشاريع عالية التحميل.



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



1. تجهيز VPS والإعدادات الأولية



1.1. الاتصال بالخادم



بعد شراء VPS، ستحصل على عنوان IP، واسم مستخدم (عادةً root)، وكلمة مرور. اتصل عبر SSH:



ssh root@your_ip_address


إذا كنت تستخدم مفاتيح SSH (موصى به)، أضف مفتاحك العام إلى الخادم.



1.2. تحديث النظام وإنشاء مستخدم



قم بتحديث الحزم وإنشاء مستخدم غير مميز للعمل:



apt update && apt upgrade -yadduser deployerusermod -aG sudo deployer


الآن اتصل بالمستخدم الجديد:



ssh deployer@your_ip_address


1.3. إعداد جدار الحماية



استخدم UFW للحماية الأساسية:



sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enablesudo ufw status


2. تثبيت مجموعة LEMP (Linux, Nginx, MySQL, PHP)



2.1. تثبيت Nginx



sudo apt install nginx -ysudo systemctl start nginxsudo systemctl enable nginx


تحقق من العمل عن طريق فتح http://your_ip_address في المتصفح. يجب أن ترى صفحة الترحيب الخاصة بـ Nginx.



2.2. تثبيت PHP و PHP-FPM



لأطر العمل الحديثة، استخدم PHP 8.x:



sudo apt install php8.1-fpm php8.1-mysql php8.1-xml php8.1-mbstring php8.1-curl php8.1-zip php8.1-gd -y


تحقق من الإصدار وقم بتشغيل PHP-FPM:



php -vsudo systemctl start php8.1-fpmsudo systemctl enable php8.1-fpm


2.3. تثبيت MySQL



sudo apt install mysql-server -ysudo mysql_secure_installation


أنشئ قاعدة بيانات لتطبيقك:



sudo mysql -u root -pCREATE DATABASE your_database_name;CREATE USER 'your_user'@'localhost' IDENTIFIED BY 'your_password';GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_user'@'localhost';FLUSH PRIVILEGES;EXIT;


3. إعداد المضيف الافتراضي ونشر التطبيق



3.1. إنشاء مضيف افتراضي لـ Nginx



أنشئ ملف تكوين لنطاقك:



sudo nano /etc/nginx/sites-available/yourdomain.com


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



server {    listen 80;    server_name yourdomain.com www.yourdomain.com;    root /var/www/yourdomain.com/public;

index index.php index.html;

location / { try_files $uri $uri/ /index.php?$query_string; }

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

location ~ /\\.ht { deny all; }}


قم بتفعيل الموقع:



sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl reload nginx


3.2. نشر الكود عبر Git



قم بتثبيت Git واستنساخ المستودع:



sudo apt install git -ycd /var/wwwsudo git clone https://github.com/yourusername/your-repo.git yourdomain.com


قم بإعداد صلاحيات الوصول:



sudo chown -R www-data:www-data /var/www/yourdomain.comsudo chmod -R 755 /var/www/yourdomain.com/storagesudo chmod -R 755 /var/www/yourdomain.com/b

المدونات

توصيات الكتب