Virtual Machine - An Exercise in Development - Part 3
I'm currently developing on a Mac, at least for open-source development, and I'm going to do all of the development for this excercise utilizing a virtual machine for the hosting environment. While it's certainly possible to do all development entirely on a Mac, I find it can lead to issues and conflicts and we can avoid most issues by using a VM.
I've done this before, a bit differently, with the files living on the Mac, and utilizing PHPStorm to SCP files to the VM on save for testing/hosting, but this time I'm going to utilize a samba share with inspiration from https://gist.github.com/fideloper/2879466.
I'll enumerate out the steps, and maybe I'll come back and add more detail, but this page is (at least not currently) a complete guide to setup.
Steps
I'm not going to go into everything done to set up a virtual machine; I'm using VMWare Fusion 10 and the gues OS is CentOS 7. I'll enumerate some of the steps taken as well as anything unique to this process.
- Create virtual machine via installation media
- Configure VM (standard housekeeping)
- set static IP address (192.168.180.112)
- set gateway, DNS
- install wget
- install nano
- install EPEL
- install cron
- install at
- install screen
- install NTP
- synchronize clock
- start ntpd, run at startup
- create a user to replace root login
- enable sudo add user to wheel
- change default SSH port
- disable root SSH login
- add user to SSH
- install firewalld
- allow ssh on new port
- allow localhost
- alllow http, https, smtp
- set static IP address (192.168.180.112)
- Create directory
- Install nginx
That will get us a machine we can develop against. Now to be able to utilize it.
On dev server
- install samba
- set up a share pointing at our directory created previously (/var/www/eid)
- allow samba via firewall-cmd
- add our user to samba users
On Mac
Finder -> Go -> Connect To Server
Add in our server address 192.168.180.112
Connect
Now that we've spent a day searching for solutions for all of the above steps, we're ready to start development.