Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This project extends the Base VM and is optimized for specific versions of the OXID eShop.

Final solution is composed of two repositories (linked using git sub-modules):

  • Base VM - Base LAMP stack
  • eShop VM - Current repository, eShop specific configuration and roles.

Getting started

Before proceeding with Quick start please ensure that the Dependencies listed below are installed.


  • Vagrant (>=1.8.6)
  • VirtualBox [1] (>=4.2, except 5.1.8, see #29; Windows users see #32)
  • Git
  • OpenSSH (Only client part is needed)
  • Vagrant plugins:
    • vagrant plugin install vagrant-hostmanager
    • vagrant plugin install vagrant-lxc (If LXC will be used for provision process.)
    • vagrant plugin install vagrant-parallels (If Parallels will be used for provision process.)
[1]VirtualBox is listed as dependency due to the fact that it is the default chosen provider for the VM. In case other providers will be used there is no need to install VirtualBox. Please refer to the list of possible providers in the configuration section to get more information.


Please see for resolutions of common known issues.

Quick start

Notice: For OXID eShop Professional Edition or OXID eShop Enterprise Edition, you need to enter the credentials you should have received when purchasing the product.

Note for Windows users: Use console with Administrator privileges to run vagrant commands!

  • Clone [2] out current repository:
git clone -b b-6.4 --recursive
  • Start the VM (Robust method on Windows without Vagrant plugins which denies later "composer require"-s) [3]:
cd oxvm_eshop
vagrant up
vagrant ssh
# for the Community Edition
composer create-project oxid-esales/oxideshop-project /tmp/oxideshop dev-b-6.4-ce
# for the Professional Edition
composer create-project oxid-esales/oxideshop-project /tmp/oxideshop dev-b-6.4-pe
# for the Enterprise Edition
composer create-project oxid-esales/oxideshop-project /tmp/oxideshop dev-b-6.4-ee
cp -r /tmp/oxideshop /var/www && rm -rf /tmp/oxideshop
  • Start the VM (Quicker method recommended for Mac and Linux hosts) [3]:
cd oxvm_eshop
vagrant up
vagrant ssh
# for the Community Edition
composer create-project oxid-esales/oxideshop-project /var/www/oxideshop dev-b-6.4-ce
# for the Professional Edition
composer create-project oxid-esales/oxideshop-project /var/www/oxideshop dev-b-6.4-pe
# for the Enterprise Edition
composer create-project oxid-esales/oxideshop-project /var/www/oxideshop dev-b-6.4-ee
  • Start the VM (Solving Windows-specific symlink issues with a vagrant-plugin):
Before vagrant up, install vagrant-winnfsd:

$ vagrant plugin install vagrant-winnfsd

Change the lines 50 and 57 of Vagrantfile to

sync_type = "nfs"

That enabled nfs usage on windows.
Finally, follow installation as described by the "Quicker Method" above.

Attention: If you plan to facilitate the testing environment in your project, make sure that in your "" the setting "blDelSetupDir" is set to false. This prevents the setup folder from being deleted, which is needed for the shop resetting of the testing environment.

[2]Since the current eShop VM repository is linked through git sub-modules it is mandatory to use --recursive option to instruct git and clone base VM repository as well.
[3](1, 2) You may skip the development requirements with "composer create-project --no-dev [...]", if you don't need to work on the source code.


  • Out of the box the VM is equipped with the Testing library - a library for writing various kind of tests inside eShop and a set of tools for running those tests. It will not be installed if you use the --no-dev option for composer.
  • Also you can easily install the Module skeleton generator - module which helps to create new OXID eShop modules within the VM (remember to vagrant ssh).
composer require oxid-esales/module-generator:v6.x-dev -d /var/www/oxideshop


Testing library

This library is needed for various testing purposes. It is already installed in the VM through the help of composer, because it's defined in composer.json as development requirement inside OXID eShop.

All binary tools are installed inside /var/www/oxideshop/vendor/oxid-esales/testing-library/bin.

A list of available binary tools:

  • reset-shop - restore eShop's database to it's default state (demo);
  • runmetrics - run pdepend against eShop and modules code to collect various code metrics information;
  • runtests - run unit/integartion tests against eShop and modules code;
  • runtests-coverage - generate coverage report by running unit/integration tests;
  • runtests-selenium - run acceptance tests written for Selenium.

More details on how to use and configure the library can be found at:

Module skeleton generator

The module needs to be activated manually. Further instructions on how to enable and use the module can be found at (installation part can be skipped):

How to update the VM

  • Open VM directory:
cd oxvm_eshop
  • Destroy old VM:
vagrant destroy
  • Update eShop VM:
git pull
  • Update Base VM:
git submodule update --recursive
  • Start VM:
vagrant up


The default virtual environment configuration ensures the shop will run out of the box. However, it is possible to adjust the configuration of the virtual environment to better match individual preferences.

All configuration changes should be done by overriding variables from:

These overridden values must be placed in personal.yml [4] file at the root level of current repository.

For the overridden values to take effect please run vagrant provision. If the changes are related to the shared folder use vagrant reload. In case the provision process will start to show any kind of errors, please try to use vagrant destroy && vagrant up for the process to start over from a clean state.

To double check the merged version of configuration just run vagrant config.

Hint: you have to care for the syntax/semantics for yourself. So, if you get an error while vagrant provision your personal.yml is the start point for troubleshooting. Hint: Check if every entry has a value. At the moment no empty entries will work.

[4]personal.yml configuration file is already included in .gitignore and should not be visible as changes to the actual repository.

Shared Folder

The shared folder will be created at the first run of vagrant up and will reside within the VM folder at oxideshop, within the guest machine this directory is located at /var/www/oxideshop.

      source: oxideshop
      target: /var/www/oxideshop

For composer create-project the target folder has to be empty, so if you need to do another installation remember to either delete its contents or better do a vagrant destroy

Setting up Varnish

Notice: Varnish integration is a feature of the Enterprise Edition (EE) of the OXID eShop.

The following steps are required to successfully activate varnish:

  • Trigger Varnish installation in the VM
  • Download and install composer package
  • Adapt servers_conf.vcl
  • Restart Varnish service
  • Update OXID eShop
  • Update OXID eShop admin settings

The above steps are described with more detail below.

Trigger Varnish installation

  install: true

The above change will only trigger installation of Varnish with the distributed default configuration default.vcl which is not compatible with OXID eShop! If you change the parameter for a running VM you can use vagrant provision to trigger the installation.

Download and install composer package

Keep in mind that composer will ask for username and password as the package is available only to users who have bought the performance package. Please use the credentials which were provided during the purchase.

Because oxid-esales/varnish-configuration is a composer package and composer tool is available for VM by default we can use the following OXID eShop version independent way to download the package:

# Register private password protected repository
composer global config repositories.oxid-esales/varnish-configuration \

# Download the actual package
composer global require oxid-esales/varnish-configuration

Now the package has been downloaded into the global vendor directory and we can transfer the configuration files into the system by using these commands:

sudo cp $HOME/.composer/vendor/oxid-esales/varnish-configuration/default.vcl \

sudo cp $HOME/.composer/vendor/oxid-esales/varnish-configuration/servers_conf.vcl.dist \

Adapt servers_conf.vcl

There are two mandatory placeholders which need to be updated inside the servers_conf.vcl file:

  • <my_shop_hostname> - a valid host which could be used to communicate with the shop internaly;
  • <my_shop_IP> - an inbound external IP address which has rights to trigger cache invalidation.

The following commands can be used with a default configuration of the VM to replace the placeholder values with suitable ones:

sudo sed -i "s/<my_shop_hostname>/" /etc/varnish/servers_conf.vcl

sudo sed -i "s/<my_shop_IP>/$(ip addr | grep eth0 | tail -n 1 \
  | grep -oE "(\b([0-9]{1,3}\.){3}[0-9]{1,3}\b)" | head -n 1)/g" \

Restart Varnish service

After adapting the configuration files we need to restart the Varnish service in order for the updated configuration to take effect:

sudo /etc/init.d/varnish restart

Update OXID eShop

Because Varnish uses 6081 port by default this needs to be reflected in the configuration file /var/www/oxideshop/source/

For a default setup we need to change $this->sShopURL = 'http://www.oxideshop.local'; to $this->sShopURL = 'http://www.oxideshop.local:6081';, which can be automatically applied with:

sed -i "s/www\.oxideshop\.local/&:6081/g" /var/www/oxideshop/source/

Update OXID eShop admin settings

After all of the steps above one must apply necessary changes in the admin area of the OXID eShop:

To check if Reverse proxy cache is active, please click Test Reverse Proxy's availability. In case of successful configuration the following green colored message will appear "Reverse Proxy test succeed".

More configuration options

There are more configuration settings that can be changed to adapt the virtual environment to your needs. Be sure to take a look at the examples provided in the README of Base VM.

Settings that can be changed include among other things:

  • Use NFS for shared-folder
  • Change PHP version
  • Change MySQL version
  • Change VM provider
  • Change shared folder path
  • Define github token for composer
  • Change ubuntu repository mirror url
  • Change virtual host
  • Change the display mode of errors
  • Change MySQL password
  • Trigger Selenium installation
  • Trigger IonCube integration
  • Customize email monitoring integration
  • Customize MySQL administration web app integration
  • Composer parallel install plugin