مرحبًا
راح أشرح طريقة تثبيت أكثر من مشروع لارافيل على فاغرانت واحد بدون الحاجة إلى تثبيت فاغرانت آخر، لنبدأ الخطوات :
تنويه : الطريقة المشروحة هي على خادم الويب apache2 و ليس nginx .
الخطوة الأولى : وضع آي بي ip ثاني بملف Vagrantfile :
طبعًا راح نضع آي بي ip ثاني بملف Vagrantfile عشان نربطه بالمشروع الثاني، طبعًا قبل التعديل بيكون شكل الملف كذا :
الآن راح نضيف آي بي ip بنفس طريقة آي بي الأول و لنفترض إننا أخترنا هالآي بي :
174.3.1.71
راح نضيف هالسطر :
config.vm.network "private_network", ip: "174.3.1.71"
و نسوي حفظ للملف، شكل النهائي للملف :
و بعدها نسوي reload للفاغرانت إذا هو شغال و إذا مو شغال نسوي له up .
الخطوة الثانية : تثبيت مشروع لارافيل ثاني :
تنشئ مشروع لارافيل بملف /vagrant ، و يكون بجانب مشروع الأول، طريقة التثبيت ما تختلف عن اللي بالدورة.
الخطوة الثالثة : إنشاء إختصارات لمشاريع لارفيل الموجودة بالفاغرانت :
الآن راح نعيد إنشاء إختصار لمشروع لارافيل الأول و نسوي إختصار لمشروعنا الأول و راح يكون مربوط بهالمسار :
/var/www/
و ليكن مشروع الأول أسمه blog و مشروع الثاني اسمه market راح يكون الأمرين كذا :
sudo ln -s /vagrant/blog/public/ /var/www/blog
sudo ln -s /vagrant/market/public/ /var/www/market
الآن تم إنشاء الإختصارات، ننتقل للخطوة التالية .
الخطوة الرابعة : إنشاء ملف virtual host لكل مشروع لارافيل :
أول شيء نسويه ننتقل للمسار التالي عن طريق cd :
cd /etc/apache2/sites-available/
نسوي نسخة جديدة من ملف التالي :
000-default.conf
كل نسخة نسويها راح نسميها باسم المشروع و الأمر بسيط و هو :
sudo cp 000-default.conf blog.conf
sudo cp 000-default.conf market.conf
الآن نفتح ملف blog.conf عن طريق محر النصوص nano بموجه الأوامر أو تيرمنال بصلاحيات sudo :
sudo nano blog.conf
بيكون شكل الملف كالتالي :
مثل ما تلاحظون السطر التالي :
VirtualHost *:80
راح نبدل النجمة * بالآيبي ip الأول و بيكون السطر بعد التعديل كالآتي :
VirtualHost 172.16.2.71:80
نروح لسطر DocumentRoot و نمسح المسار الموجود و نستبدله بمسار الإختصار لمشروعنا blog، بيكون كالتالي :
DocumentRoot /var/www/blog
الآن نسوي حفظ عن طريق كنترول + اكس ثم نضغط زر y ثم أنتر، و نسوي نفس الطريقة مع ملف مشروعنا الثاني و هو market.conf، و لكن نحط الآي بي الثاني و مسار مشروعنا الجديد و هو market .
ملف blog.conf بعد التعديل :
ملف market.conf بعد التعديل :
الخطوة الخامسة و الأخيرة : تفعيل virtualhost لمشاريعنا و إلغاء الإفتراضي :
فقط نطبق هالأوامر :
sudo a2ensite blog.conf
sudo a2ensite market.conf
sudo a2dissite 000-default.conf
sudo systemctl restart apache2
و الآن مبروك عليك تثبيت مشروع ثاني على نفس vagrant و تشغيله بدون أية مشاكل.
ملاحظة 1 : إذا كنت مسوي الطريقة ما تحتاج تعيد كل الخطوات بحذافيرها إذا جيت تركب مشروع ثالث، فقط تضيف آي بي بملف Vagrantfile و تسوي ملف virtualhost جديد لمشروعك و تضيفه له و تعيد تشغيل apache2 .
ملاحظة 2 : الطريقة ليست محدودة بمشروعين فقط، ممكن تركب ثلاث مشاريع و أكثر .