|
# -*- mode: ruby -*- |
|
# vi: set ft=ruby : |
|
|
|
# HOST MANAGER: https://github.com/smdahlen/vagrant-hostmanager |
|
|
|
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! |
|
|
|
VAGRANTFILE_API_VERSION = "2" |
|
|
|
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| |
|
|
|
config.vm.box = "debian7" |
|
|
|
config.vm.network "private_network", ip: "222.222.22.2" |
|
# Use NFS for shared folders for better performance ( https://stefanwrobel.com/how-to-make-vagrant-performance-not-suck ) |
|
config.vm.synced_folder ".", "/var/www", :owner => "www-data", :mount_options => [ "dmode=775", "fmode=774" ], create: true, type: "nfs" |
|
# config.vm.synced_folder "mysql", "/var/lib/mysql", :mount_options => [ "dmode=777", "fmode=777" ] |
|
# Use NFS for shared folders for better performance |
|
config.vm.synced_folder "sqlbackup", "/home/vagrant", :mount_options => [ "dmode=777", "fmode=777" ], create: true, type: "nfs" |
|
|
|
config.vm.provider "virtualbox" do |vb| |
|
|
|
|
|
host = RbConfig::CONFIG['host_os'] |
|
|
|
# Give VM 1/4 system memory & access to all cpu cores on the host |
|
# Use all CPU cores and 1/4 system memory |
|
|
|
if host =~ /darwin/ |
|
cpus = `sysctl -n hw.ncpu`.to_i |
|
# sysctl returns Bytes and we need to convert to MB |
|
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4 |
|
elsif host =~ /linux/ |
|
cpus = `nproc`.to_i |
|
# meminfo shows KB and we need to convert to MB |
|
mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4 |
|
else # sorry Windows folks, I can't help you |
|
cpus = 2 |
|
mem = 1024 |
|
end |
|
|
|
|
|
|
|
vb.customize ["modifyvm", :id, "--memory", mem] |
|
vb.customize ["modifyvm", :id, "--cpus", cpus] |
|
# allocate max 30% CPU |
|
# vb.customize ["modifyvm", :id, "--cpuexecutioncap", "30"] |
|
|
|
# vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] |
|
# vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] |
|
end |
|
end |
|
|
|
|
|
|
|
|
|
# vagrant halt |
|
# vagrant up |
|
# vagrant reload |
|
# vagrant global-status |
|
# vagrant status |
|
# vagrant box add debian75 debian-7.5-x86_64-v1.2-virtualbox.box |
|
# vagrant box list |
|
# vagrant ssh |
|
|
|
# ================================================================================================== |
|
|
|
|
|
|
|
## Export |
|
|
|
cd ~/ |
|
|
|
##### / |
|
|
|
mysqldump -u root -p[root_password] [database_name] > database_name.sql |
|
|
|
## Import |
|
|
|
mysql -u root -p[root_password] [database_name] < database_name.sql |
|
|
|
|
|
sudo apt-get update -y |
|
|
|
sudo apt-get upgrade -y |
|
|
|
sudo apt-get install curl vim build-essential python-software-properties software-properties-common git-core -y |
|
|
|
sudo apt-get install apache2 -y |
|
|
|
|
|
|
|
|
|
# PHP 5.5 |
|
|
|
sudo nano /etc/apt/sources.list |
|
|
|
|
|
|
|
deb http://packages.dotdeb.org wheezy all |
|
deb-src http://packages.dotdeb.org wheezy all |
|
deb http://packages.dotdeb.org wheezy-php55 all |
|
deb-src http://packages.dotdeb.org wheezy-php55 all |
|
|
|
|
|
wget http://www.dotdeb.org/dotdeb.gpg |
|
sudo apt-key add dotdeb.gpg |
|
|
|
rm dotdeb.gpg |
|
|
|
|
|
|
|
sudo apt-get update |
|
|
|
sudo apt-get install -y build-essential software-properties-common vim curl wget tmux |
|
|
|
sudo apt-get update |
|
|
|
# End PHP 5.5 |
|
|
|
sudo apt-get install mysql-server mysql-client -y |
|
|
|
sudo mysql_secure_installation |
|
|
|
sudo /usr/bin/mysql_secure_installation |
|
|
|
sudo apt-get install php5 php5-common php5-curl php5-gd php5-xmlrpc php-pear php5-mysql libapache2-mod-php5 php5-mcrypt php5-json git-core -y |
|
|
|
# For new MySQL 5.6 family you need to install php5-mysqlnd, not php5-mysql. |
|
|
|
# If you install php5-mysql remove it by: sudo apt-get remove php5-mysql and install by: sudo apt-get install php5-mysqlnd |
|
|
|
# Finding php extensions |
|
|
|
#### apt-cache search php5- |
|
#### Enabling/Installing Intl Extension PHP From Terminal: sudo apt-get install php5-intl, restart php / apache2. |
|
#### check available extension installed php -m |
|
|
|
sudo apt-get install phpmyadmin -y |
|
|
|
curl -sS https://getcomposer.org/installer | php |
|
|
|
sudo mv composer.phar /usr/local/bin/composer |
|
|
|
sudo apt-get install nodejs nodejs-legacy |
|
|
|
|
|
sudo nano /etc/php5/apache2/php.ini |
|
|
|
|
|
# upload_max_filesize = 100M |
|
# post_max_size = 512M |
|
# memory_limit = 256M |
|
# error_reporting = E_ALL |
|
# display_errors = On |
|
|
|
sudo nano /etc/apache2/sites-available/default |
|
|
|
# And Add |
|
# <Directory /var/www/> |
|
# Options Indexes FollowSymLinks MultiViews |
|
# AllowOverride All |
|
# Order allow,deny |
|
# allow from all |
|
# </Directory> |
|
|
|
sudo nano /etc/php5/mods-available/xdebug.ini |
|
|
|
# xdebug.scream=1 |
|
# xdebug.cli_color=1 |
|
# xdebug.show_local_vars=1 |
|
|
|
sudo usermod -a -G vagrant www-data |
|
|
|
|
|
|
|
sudo apt-get purge libapache2-mod-php5 |
|
|
|
sudo apt-get install libapache2-mod-php5 |
|
|
|
sudo a2enmod rewrite |
|
sudo a2enmod php5 |
|
|
|
sudo service apache2 restart |
|
|
|
sudo service mysql restart |
|
|
|
|
|
# On a Debian 7 box I also needed to |
|
# sudo apt-get install ruby1.9.3-dev |
|
# sudo apt-get sqlite3 libsqlite3-dev |
|
|
|
sudo apt-get install -y build-essential libsqlite3-dev ruby1.9.3 |
|
sudo gem install mailcatcher |
|
|
|
echo "/usr/bin/env $(which catchmail) -f admin@sites.dev" # Copy it |
|
|
|
sudo nano /etc/php5/apache2/php.ini |
|
|
|
# => smtp_port = 1025 |
|
# => sendmail_path = "/usr/bin/env /usr/local/bin/catchmail -f admin@sites.dev" |
|
|
|
|
|
# ps ax | grep mailcatcher STOP ALREADY RUNNED MAILCATCHAR |
|
|
|
sudo service apache2 restart |
|
|
|
mailcatcher --foreground --http-ip=0.0.0.0 # For temporary |
|
|
|
sudo mailcatcher --http-ip=0.0.0.0 # Direct |
|
|
|
# mailcatcher Web UI IS: http://sites.dev:1080 |
|
|