دسترسی apache به پوشه اشتراکی vagrant
vagrant یه ابزار کمکی برای راه اندازی vm هست. معمولا از virtualbox به عنوان container پیشفرض استفاده میشه. در مورد این که vagrant چی هست و container چه کاری رو انجام میده، میتونید سری به ویکی vagrant بزنید.
بعد از راه اندازی vm یکی از امکانات خیلی خوبش sync folder هست. بین Host و Guest یه فولدر مشترک اسجاد میکنه و شما براحتی بر روی یه فولدر توی سیستم خودتون فایل میرید و بدون هیچ دستوری همون فایل رو بر روی vm خواهید داشت. مثلا فولدر بر روی سیستم Host در مسیر
/home/mehrdad/vm/server/www
مثلا در این فولدر کدهای برنامه نویسی وب هست و قراره بر روی vm توسط apache و php اجرا بشه. درون vm فولدر زیر جهت sync
/vagrant/www
قبل از این کار باید vboxsf رو بر روی Guest نصب کنید. همراه container ها یه فایل addition هست جهت نصب ابزارهای کمکی. همراه Virtualbox هم یه iso به اسم VBoxGuestAdditions برای دانلود هست. البته کاربران ایرانی تحریم هست و باید از راه های دیگه دانلود و نصب کنید. توجه کنید مناسب با ورژن virtualbox باید نسخه iso رو دانلود کنید. مثلا virtualbox من در منوی about نسخه 4.3.36 رو نشون میده. برای دانلود iso لز لینک زیر استفاده کنید
http://download.virtualbox.org/virtualbox/
البته همین iso رو از طریق منوهای virtualbox میتونید دانلود کنید که به علت تحریمها و سرعت پایین نت شاید نتونید موفق به این کار بشید و دانلود مستقیم iso بهتر هست.
بعد از دانلود باید اون رو به عنوان یه cd به vm خودتون mount کنید
mkdir /mnt/cd
mount /dev/cdrom /media/cd
اگر هم مثل من از mount کردم مستقیم iso دانلود شده رو بیشتر میپسندید میتونید iso دانلود شده رو به vm منتقل کنید و با دستور
mount /home/VBoxGuestAdditions_4.3.36.iso /mnt/cd
این کار رو انجام بدید. برای نصب guest addition نیاز به gcc make و kernel headers هست. دلیلش هم کامپایل ماژول vboxsf برای کرنل لینوکس هست. یعنی یه سورس ماژول که باید روی vm شما بر اساس نسخه kernel کامپایل و در زمان اجرا insmod بشه. برای نصب نیازمندیها دستور زیر رو اجرا کنید
sudo apt-get install make gcc linux-headers-$(uname -r)
برید به پوشه /mnt/cd و دستور زیر رو اجرا کنید
./VBoxLinuxAdditions.run
با این کار شروع به کامپایل و نصب میکنه
root@S:/mnt/cd# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.3.36 Guest Additions for Linux............
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
Removing existing VirtualBox non-DKMS kernel modules ...done.
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
Building the main Guest Additions module
...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
Starting the VirtualBox Guest Additions ...done.
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
بعد از این کار سمت client همه چیز آماده هست و باید باید فایل Vagrant رو طوری کانفیگ کنیم تا این دو تا فولدر رو sync کنه
config.vm.synced_folder "./", "/vagrant" ,id: "vagrant-root",owner: "vagrant", group: "www-data",mount_options: ["dmode=775,fmode=664"]
درون پوشه اصلی یه پوشه به اسم www بسازید. در vm قرار هست apache رو بر روی این فولدر تنظیم کنیم.