A simple way to get magento2 up and running. It consists of a Debian Wheezy box provised via Puppet. The provider is Virtual Box. It will install apache2 +fastcgi, php, php-fpm, mysql and any other necessary dependancies.
The Magento 2 repository is a git submodule and can be edited/explored from the host machine. It is accessed by the guest via shared directories.
- Clone this repository:
git clone --recursive https://github.com/rgranadino/mage2_vagrant.git
- Navigate into the repository via
cd
- IMPORTANT: If you cloned the repository without the --recursive param, you need to initialize the required submodules:
git submodule update --init --recursive
- Start up virtual machine:
vagrant up
- Point a host name to 192.168.56.10 in /etc/hosts
echo '192.168.56.10 mage2.dev' >> /etc/hosts
NOTE: Some composer dependancies require git. Agent Forwarding over SSH is enabled in the Vagrant file but you must have
ssh-agent
running and your key added. Runningssh-add
should add the default key to the identities list, which presumably is the same key used to access github/bitbucket. You'll may also need to create a API access token in github, instructions can be found here:
- Once the machine completes provisioning, SSH to the server (
vagrant ssh
). - Add your Magento Connect authentication credentials to the global composer auth.json:
- Open or create the file
~/.composer/auth.json
- Add the Magento Connect authentication credentials (if you don't have any, please check here on how to create them):
{
"http-basic": {
"repo.magento.com": {
"username": "<public key>",
"password": "<private key>"
}
}
}
- Or you can use the composer config command:
composer.phar global config http-basic.repo.magento.com <public_key> <private_key>
- Install Magento 2 by running:
-
Via CLI (recommended)
reinstall
(Magento without sample data) orreinstall -s
(Magento with sample data).
-
Via Web Installer
- Please go to the Magento directory within the vagrant box (
cd /vagrant/data/magento2/
) and runcomposer install
. Then open 'http://mage2.dev/setup' in your browser and go through the installation process.
- Please go to the Magento directory within the vagrant box (
- From the host machine run
git pull && git submodule update --init && vagrant provision
.
- If there is an update to the manifests/mage.pp or files/* files it is recommended to provision the guest machine. This can be done by running:
vagrant provision
. There is also a cron that runs every 15 minutes to provision within the guest machine in the event it's not done after updating.
- If you want to start from a clean slate run:
reinstall
from within the guest machine. This will uninstall the application and reinstall it from scratch.
m
- cd into the base magento directory: /vagrant/data/magento2reinstall
- run magento shell uninstall script with thecleanup_database
flag and run installation again, useshttp://mage2.dev
as base URLreinstall -s
- install magento with sample datamt
- run bulk magento test suites
A status vhost on port 88 has been setup to view apache's server status, php-fpm status as well as some other utilities.
- http://mage2.dev:88/server-status
- http://mage2.dev:88/fpm-status
- http://mage2.dev:88/info.php
- http://mage2.dev:88/opcache.php
- http://mage2.dev:88/webgrind
- Username: admin
- Password: password123
- Username: root
- Password: mage2
- DB Name: mage2
- username: vagrant
- password: vagrant
It's also possible to use vagrant ssh
from within the project directory
- manifests/mage.pp - Puppet manifest file
- files/ - contains various service configuration files
- bash_aliases - vagrant user bash aliases script
- fastcgi.conf - fastcgi configuration
- reinstall.sh - magento reinstall wrapper script
- site.conf - apache virtual host configuration
- www.conf - php-fpm pool configuration
- xdebug.ini - php xdebug configuration file
- data/magento2 - Git submodule to Magento2 Github repository: https://github.com/magento/magento2
- data/magento2-sample-data - Git submodule to Magento2 Sample Data Github repository: https://github.com/magento/magento2-sample-data
- /vagrant/data/magento2 - Apache Document Root