أتمتة النشر ببروتوكول FTP باستخدام PHP

ليس هنالك أسوأ من القيام بنقل تطبيقات الويب لخادم (Server) يدويا وذلك باستخدام أدوات مثل Filezilla , CoreFTP أو غيرها، ومحاولة إبقاء الملفات متزامنة بين جهاز حاسوبك والخادم، إنه كابوس حقيقي. إذا كنت ممن واجه هذا من قبل فإن هذه المقالة حتماً لك .

drivemeca-ftp-logo

بالنظر لكونك مبرمجاً أو مصمماً يعمل على نشر أعماله على الويب، من الطبيعي امتلاكك لمجموعة من الأدوات التي تساعدك على ذلك، أو ربما كنت ممن يستخدم برتوكل SSH ولكن اليوم سوف أقوم بتعريفك على أداة رائعة تستخدم برتوكل FTP  أو SFTP  للنشر على الويب و هي مكتوبة بلغة البرمجة PHP وتدعى:  FTP-Deployment

ما هي ميزات FTP-Deployment ؟

  1.  السماح بأتمتة عملية النشر دون تدخل مباشر منك باستخام ملف إعدادت بسيط.
  2. القدرة على النشر لأكثر من مخدم (Server)  في ذات الوقت.
  3. القدرة على مزامنة الملفات (أي الملفات التي سوف يتم رفعها هي الملفات التي تم تعديها فقط).
  4. القدرة على تنفيذ مهمات قبل وبعد النشر (ضغط المشروع في ملف ZIP على سبيل المثال بعد نشره).

استخدام FTP-Deployment في مشروعك

 1 – توجه إلى المجلد الجذر في مشروعك وأنشئ ملف composer.json

{
  "require": {
   "dg/ftp-deployment": "*"
  }
}

اطلب من Composer تنصيب الحزمة عن طريق تنفيذ الأمر التالي:

composer install

2 – أنشئ ملف deployment.ini

; إعدادت المخدم المستخدم في مرحلة التطوير ( Development )
; ---------------------------------------------------------------
[My Development Site]
; عنوان المخدم مع اسم المستخم وكلمة السر 
remote = ftp://user:secretpassword@ftp.example.com/directory

; المسار الكامل لمشروعك 
local = .

; قائمة بالملفات المراد تجاهلها
ignore = "
.temp
.log
"

; مخدم أخر
; ---------------------------------------------------------------
[Other Site]
; عنوان المخدم مع اسم المستخم وكلمة السر 
remote = ftp://user:secretpassword@ftp.example2.com/directory

نشر المشروع

لن تحتاج لأي شيئ عدا الملفين السابقين لاستخدام هذه الأداة، ويمكنك نشر مشروعك على المخدمين المحددين في ملف  deployment.ini  السابق عن طريق تنفيذ الأمر التالي :

vendor/bin/deployment deployment.ini

!ذا كنت فقط تريد تجربة الأداة دون أن تقوم بنشر أي شئ فعلياً فيمكنك تنفيذ الأمر السابق بالشكل التالي:

vendor/bin/deployment deployment.ini --test

في المرة القادمه التي تقوم فيها بالنشر سوف يتم نشر الملفات التي تم تعديلها فقط.

الملخص

أن هذه الأداة سهلة الاستخام وسريعة وإذا كنت تستخدم أداة لأتمتة عملية البناء والنشر مثل ANT  أو  PHING  سوف تجد أنه من السهل إضافة هذه الأداة لنظام سير عملك، والأهم أنك سوف تصبح قادراً على النوم جيداً أثناء الليل  بعيداً عن كوابيس FTP.

حيان أبو فخر

مطور ويب سوري. عاشق للموسيقى والبرمجة والكوميديا الارتجالية.

مواضيع الكاتبموقع الكاتب

لمتابعة الكاتب:
TwitterFacebook

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *