Using Apache 
You will need to be able to use Apache on both your local machine and on the VMs. It's likely that these two environments will be different, since the VMs run Ubuntu and you're likely using OS X.  For example, the OS user:group created by Apache in OS X is 
_www:_www; in Ubuntu, it's 
www-data:www-data.
In particular, the folks who maintain the package repositories for Debian Linux have created their own version of Apache that differs in configuration from the standard version you'll have installed on your Mac or Windows PC (or non-Debian Linux distribution, like Fedora).  Since Ubuntu is a Debian-derived distribution, the VMs use Debian-style Apache.
  Apache on the VMs (Ubuntu) 
  Usage 
Usage first, since the configuration for the VM's should already be taken care of (see below for reference, though).
Debian-style Apache gives you several options for controlling the server. All of the following are essentially equivalent ways to run the indicated commands: 
-  
service apache2 (start | stop | reload | restart | status)
  -  
/etc/init.d/apache2 (start | stop | reload | restart | status)
  -  
apachectl (start | stop | reload | restart)
 
 
(Don't forget that you'll need to 
sudo these in practice!)  The second is essentially the same as the first, since the 
service command points to the scripts in 
/etc/init.d/.  The third is the only one of these options available on OS X, since that OS doesn't have 
init.d/ or do 
service commands.
The error logs are in 
/var/log/apache2/ in the form of a series of files 
error.log, 
error.log.1, etc.
  Configuration 
The Apache installation directory is 
/etc/apache2/. The main Apache configuration file is 
/etc/apache2/apache2.conf, but you typically won't touch this file after initial installation. Instead, further configuration is done through external files.
The configuration scheme used by Debian-style Apache is that potentially useful modules and configurations are stored in the set of 
/etc/apache2/*-available/ directories 
-  
sites-available/
  -  
conf-available/
  -  
mods-available/
 
 
To 
enable one of these available modules or configurations, the appropriate 
*-available/ file is symlinked into a corresponding set of 
/etc/apache2/*-enabled/ directories  
-  
sites-enabled/
  -  
conf-enabled/
  -  
mods-enabled/
 
 
which Apache loads on startup.  Don't create these symlinks on your own - there are command-line tools to do it:
	
		
			|  Element  | 
			 Action  | 
			 Command  | 
		
	
	
		
			|  module  | 
			 enable  | 
			 a2enmod <module_name>  | 
		
		
			|  disable  | 
			 a2dismod <module_name>  | 
		
		
			|  config file  | 
			 enable  | 
			 a2enconf <config_filename>  | 
		
		
			|  disable  | 
			 a2disconf <config_filename>  | 
		
		
			|  site file  | 
			 enable  | 
			 a2ensite <site_config_filename>  | 
		
		
			|  disable  | 
			 a2dissite <site_config_filename>  | 
		
	
The "enable" commands create the symlinks, while the "disable" ones delete them.
Briefly, 
mods are modules used to add additional server functionality, 
conf are general configuration files to supplement 
apache2.conf, while 
sites are site-specific configuration files for situations where you serve multiple websites using a single installation of Apache (sometimes called 
virtual hosts).
At some point Debian-style Apache was updated to require configuration files to have a 
.conf extension.  This happened between Ubuntu 14.04 and 16.04, for example.  If you're having trouble enabling or loading a config file, this might be the reason.
If you find yourself messing with the configuration settings, a useful thing is the command 
apachectl configtest, which reviews the syntax of the configuration files for you to check for errors.
  Apache on OS X 
The following is taken from experience with OS X El Capitan, but it should be consistent for other versions.
  Usage 
The 
apachectl script is a wrapper around some 
launchctl commands that direct the server. The commands
$ apachectl (start | stop | restart)
do the obvious things.  
$ apachectl status exists, but the 
mod_status Apache module must be installed for it to work.  When functional, it will refer you to 
http://localhost:80/server-status= to view your server status.   You can also try
$ ps aux | grep httpd
to see if the Apache 
httpd daemon is running. There are typically multiple instances of 
httpd active at any given time, since Apache likes to keep a spare handy in case a connection request comes in. If 
httpd is an active process, then Apache is running.
The error log is 
/var/log/apache2/error_log.
  Configuration 
OS X uses the standard main configuration file for Apache, 
httpd.conf instead of Debian's 
apache2.conf. In this system, modules are enabled using 
Include commands in 
httpd.conf.
There are a couple of major differences in configuration style between Apache 2.2 and Apache 2.4. This is important if you're running OS X, since Yosemite and higher include Apache 2.4, while earlier versions came with Apache 2.2 or lower. If you upgraded from a pre-Yosemite version to Yosemite or later, you might find that you're running Apache 2.4 using leftover Apache 2.2 configuration files that weren't upgraded. This can cause problems.
Use 
apachectl -v to determine which version of Apache you're running.
Many of the modules changed between Apache 2.2 and 2.4. If you find yourself in conflict, you can go through the process of updating, disabling, and enabling altered modules manually, but probably a faster approach is to copy the 
httpd.conf file of one of the other developers who uses Apache 2.4, or at least their 
LoadModule block.
Access control syntax changed between Apache 2.2 and 2.4. Previously, the 
Allow/Deny Directives syntax controlled who could connect to the server (or to particular directories). With Apache 2.4 and later, this changed to a starkly different 
Require syntax. You shouldn't need to worry about this, since this type of configuration is already taken care of for the website. If it comes up, though, or if you're just curious, you can learn more with these links: 
 
-- Main.jgriffith - 2016-02-24