Yii2 advanced app setup with Vagrant / Debian 7.1 / PHP 5.4
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Vagrantfile & Puppet manifests for Yii2


You just need Vagrant, VirtualBox and vagrant-hostmanager

Install vagrant-hostmanager as follows:

vagrant plugin install vagrant-hostmanager

How start

Edit the Vagrantfile: vim Vagrantfile

  • Change the VM IP if needed. Default is: ( is your machine)
  • Change the RAM or number of CPUs if needed.
  • On the puppet part: change the factors
    • Change hostname with the development domain of your website
    • Change db_* variables with your information or keep default values
    • If you change the document_root don't forget to change the synced directory

Then up the VM: vagrant up

Now you can access to your Yii setup : http://www.yii2.dev


You need to use an SSH connection.

With the information below you can connect to the MySQL server running on the virtual machine.

Default information

  • SSH Host:
  • SSH User: vagrant
  • SSH Pass: vagrant
  • SSH Port: 2222 (default by vagrant)
  • MySQL Host:
  • MySQL Port: 3306
  • MySQL User: yii2
  • MySQL Pass: yii2

Import database

If file exists database.sql.gz in the main directory (where the Vagrantfile is), puppet will import the database during the first up.


Per default the variable YII_DEBUG is set to true for this Apache setup, but will be false automatically on deploy.

The virtualhost is set on the htdocs directory.


MailCatcher is installed and configured into the /etc/php5/apache2/php.ini file.

How it works

If mailcatcher is stopped: all emails are lost.

If mailcatcher is started: all emails are catched.

If you want to start MailCatcher, simply run this command (with vagrant user) : mailcatcher --ip

Then go to : http://www.yii2.dev:1080

If you need to stop the mailcatcher daemon : Clic on "Quit" on the top right corner of the MailCatcher Web UI.


Are installed:

  • apache-mpm-itk (with yii2 virtualhost)
  • mysql-server (with custom my.cnf)
  • mysql-client
  • php5 (and the following modules)
    • bcmatch
    • bz2
    • calendar
    • ctype
    • curl
    • date
    • dba
    • dom
    • ereg
    • exif
    • fileinfo
    • filter
    • ftp
    • gd
    • gettext
    • hash
    • iconv
    • intl
    • json
    • libxml
    • mbstring
    • mcrypt
    • mhash
    • mysql
    • mysqli
    • openssl
    • pcre
    • pdo
    • pdo_mysql
    • phar
    • posix
    • readline
    • reflection
    • session
    • shmop
    • simplexml
    • soap
    • sockets
    • spl
    • sysvmsg
    • tidy
    • tokenizer
    • wddx
    • xdebug
    • xml
    • xmlreader
    • xmlwriter
    • zip
    • zlib
  • screen (with custom .screenrc for root)
  • vim
  • wget
  • curl
  • git
  • composer.phar
  • mailcatcher (gem)


Giving credit where credit is due. Almost all of the hard work on this was done here: https://github.com/monsieurbiz/vagrant-magento

I just forked and tweaked it to work well with Yii 2