Setting up a Magento VM (maintenance purpose)

A client recently asked me to move their Magento to another host. A problem arise since the new host do not provide shell access thus maintaining Magento patches became an issue.

I found and forked this from
Credit where credit is due.
https://www.nerdoncoffee.com/uncategorized/setting-up-a-magento-vm-and-allowing-remote-access/

Grab the VMDK from here

https://bitnami.com/stack/magento/virtual-machine
  • Convert to a qcow2 image

    qemu-img convert -f vmdk -O qcow2 bitnami-magento-1.9.1.0-0-ubuntu-14.04.vmdk magento.qcow2

  • Create a vm and set that is the hard disk image

  • Change all interfaces to virtio 14.04 has paravirtual drivers already installed so is good to go. Why ? Because it will speed up slow as Magento
  • Create a bridge
  • Follow the wiki

    https://wiki.archlinux.org/index.php/Bridge_with_netctl

  • Add your interfaces as appropriate e.g

    Description=”Example Bridge connection”
    Interface=br0
    Connection=bridge
    BindsToInterfaces=(eth0 eth1 tap0 enp2s0)
    IP=dhcp

  • Start it and enable it at boot

    sudo netctl start bridge
    sudo netctl enable bridge

  • Change the Nic to use the new bridge (br0) as the Network source

  • Start the VM
  • Configure whatever you like on your vm
    you could use port forwarding, port triggering, dmz, vpn, ssh etc…

As I don’t really care about this little vm (its just for dev purposes) I threw it in the DMZ zone (make sure it has a static IP – I just did a dhcp reservation and set the mac of the vnic)

  • Adding a DNS A record so you don’t have to remember the ip
    log in to your dns registrar (look up terminology) – I use cloudflare so I just added it in there for this blog as magento.nerdoncoffee.com)

  • Modify your vm
    in /opt/bitnami/apps/magento/conf/htaccess.conf php_value memory_limit 512M

  • Update Apache2 on your vm
    [text] #

ServerName magento.example.com

ServerAlias www.magento.example.com

DocumentRoot “/opt/bitnami/apps/magento/htdocs”

#

Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”

#
ServerName magento.nerdoncoffee.com
ServerAlias magento.nerdoncoffee.com www.magento.nerdoncoffee.com
DocumentRoot “/opt/bitnami/apps/magento/htdocs”
Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”

#

ServerName magento.example.com

ServerAlias www.magento.example.com

DocumentRoot “/opt/bitnami/apps/magento/htdocs”

SSLEngine on

SSLCertificateFile “/opt/bitnami/apps/magento/conf/certs/server.crt”

SSLCertificateKeyFile “/opt/bitnami/apps/magento/conf/certs/server.key”

#

Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”

#

ServerName magento.nerdoncoffee.com
ServerAlias magento.nerdoncoffee.com www.magento.nerdoncoffee.com
DocumentRoot “/opt/bitnami/apps/magento/htdocs”
SSLEngine on
SSLCertificateFile “/opt/bitnami/apps/magento/conf/certs/server.crt”
SSLCertificateKeyFile “/opt/bitnami/apps/magento/conf/certs/server.key”

Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”
[/text] OR
[text] ServerName magento.nerdoncoffee.com
ServerAlias magento.nerdoncoffee.com
DocumentRoot “/opt/bitnami/apps/magento/htdocs”
Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”

#

ServerName magento.example.com

ServerAlias www.magento.example.com

DocumentRoot “/opt/bitnami/apps/magento/htdocs”

SSLEngine on

SSLCertificateFile “/opt/bitnami/apps/magento/conf/certs/server.crt”

SSLCertificateKeyFile “/opt/bitnami/apps/magento/conf/certs/server.key”

#

Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”

#
ServerName magento.nerdoncoffee.com
ServerAlias magento.nerdoncoffee.com
DocumentRoot “/opt/bitnami/apps/magento/htdocs”
SSLEngine on
SSLCertificateFile “/opt/bitnami/apps/magento/conf/certs/server.crt”
SSLCertificateKeyFile “/opt/bitnami/apps/magento/conf/certs/server.key”

Include “/opt/bitnami/apps/magento/conf/httpd-app.conf”
[/text]

nano /opt/bitnami/apps/magento/conf/htaccess.conf

at the bottom in the directories node

[text] SetEnvIf Host www.magento.nerdoncoffee.com MAGE_RUN_CODE=magento.nerdoncoffee.com
SetEnvIf Host www.magento.nerdoncoffee.com MAGE_RUN_TYPE=website
SetEnvIf Host ^magento.nerdoncoffee.com MAGE_RUN_CODE=magento.nerdoncoffee.com
SetEnvIf Host ^magento.nerdoncoffee.com MAGE_RUN_TYPE=website
[/text] Now uncomment the following file in /opt/bitnami/apps/magento/conf/htaccess.conf
[text]

you can put here your magento root folder

path relative to web root

RewriteBase /magento/
[/text] Restart apache in your vm

sudo /opt/bitnami/ctlscript.sh restart apache

References
* https://bitnami.com/stack/magento/virtual-machine
* https://wiki.archlinux.org/index.php/Bridge_with_netctl
* https://wiki.bitnami.com/Virtual_Appliances_Quick_Start_Guide
* https://wiki.bitnami.com/Virtual_Appliances_Quick_Start_Guide#How_to_enable_sshd.3f