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.


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 (
      • 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
  • 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

Now that we've spent a day searching for solutions for all of the above steps, we're ready to start development.