(yes, Windows machines):
In your Vagrantfile, add the "nfs: true" at the end of your synced folder config:(just do it)
config.vm.synced_folder 'www', '/var/www', nfs: true
then do:
vagrant plugin install vagrant-winnfsd
and finally:
vagrant reload
Vagrant runs at least 5 times as fast as it used to.
NOTE: make sure you disable sendfile in the NGINX config, so add :
sendfile off;
inside the http {} tags
If this isn't done, vagrant will cache everything, and never clear the cache. None of your changes will reflect.
NOTE2:
this might help(not my own work, will replace later, ref: http://laravel.io/forum/09-25-2014-caching-in-homestead-with-nfs-despite-sendfile-being-off):
- I was having the same problem and it turned out to be because of 2 things:
- 1) opcache.revalidate_freq
- 2) The guest machine's date needed to be behind the host
To fix it, first find the location of opcache.so:$ sudo find / -name 'opcache.so' /usr/lib/php5/20131226/opcache.so`
Add that location to opcache.ini and ensure the file hasrevalidate_freq
set to 0 (I use nano, but you can use vim or whatever editor you want):$ sudo nano /etc/php5/mods-available/opcache.ini zend_extension=/usr/lib/php5/20131226/opcache.so opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=0 opcache.validate_timestamps=on opcache.fast_shutdown=1
And to fix the date issue:Update the timezone:$ sudo dpkg-reconfigure tzdata
Update the time so it's older than the host OS. For example, if your Host OS is at 11:02:15, then set your VM to:$ sudo date --set 11:01:00 $ sudo service nginx restart
You'll need to reset the date each time you vagrant up the box, but this finally fixed the problems for me.Note: Don't forget to update/etc/nginx/nginx.conf
to havesendfile off;
Note: And don't run your dev site on HHVM when developing (use theserve.sh
script to turn your site off of HHVM if it was setup that way):$ cd /etc/nginx/sites-enabled $ sudo rm your-hhvm-site.app $ cd /etc/nginx/sites-available $ sudo rm your-hhvm-site.app $ sudo service nginx restart $ cd /vagrant/scripts $ sudo sh serve.sh your-site.app /home/vagrant/whatever/laravel/public 80 $ sudo service nginx restart
(useserve-hhvm.sh
script with the same directions above to turn your site back on to HHVM later if you want)Note: Also for local/dev environments, you can update your .env file to cache using array like so:APP_ENV=local APP_DEBUG=true ... CACHE_DRIVER=array SESSION_DRIVER=array ...
In Laravel, you can runphp artisan clear-compiled
(the opposite of optimize) to clear vendor/compiled.php and other things.
No comments:
Post a Comment