Development and Testing Environment

When developing and testing any web application, it is best to have several computers available networked together. You should have at least one Linux server and a Windows 10 box. Do this so that your project runs on common web infrastructure with Linux being the host server. Since Windows 10 is the most popular client platform, run tests with different browser on it.

Browsers

For testing, use the following browsers in their current versions:

Linux Server

We run a Linux server using Debian 9 Stretch along with Apache 2 and PHP 7. Synergy is installed and runs it as a client.

Three virtual hosts for an internal qlicksoft domain are setup to run on Apache:

  1. cms.qlicksoft.com - the current Qlicksoft CMS distribution, untouched.
  2. test.qlicksoft.com - bleeding edge Qlicksoft CMS where changes are made and tested.
  3. aws.qlicksoft.com - customized Qlicksoft CMS that is running on Amazon AWS as qlicksoft.com

To get to the virtual hosts on the intranet, change the /etc/hosts file on Debian. This allows all the Linux boxes to browse from all computers on the network to access the local Apache server:

192.168.0.10 aws.qlicksoft.com
192.168.0.10 cms.qlicksoft.com
192.168.0.10 test.qlicksoft.com

To setup the virtual hosts, /etc/apache2/sites-available/qlicksoft.com.conf is IP based:

<virtualHost 192.168.0.10:80>
  ServerName aws.qlicksoft.com
  DocumentRoot /var/www/aws.qlicksoft.com
  DirectoryIndex main.php
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/aws.qlicksoft.com">
    Options -Indexes
    AllowOverride All
    Require all granted
  </Directory>
  </VirtualHost>

<virtualHost 192.168.0.10:80>
  ServerName cms.qlicksoft.com
  DocumentRoot /var/www/cms.qlicksoft.com
  DirectoryIndex main.php
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/cms.qlicksoft.com">
    Options -Indexes
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

<virtualHost 192.168.0.10:80>
  ServerName test.qlicksoft.com
  DocumentRoot /var/www/test.qlicksoft.com
  DirectoryIndex main.php
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined

  <Directory "/var/www/test.qlicksoft.com">
    Options -Indexes
    AllowOverride All
    Require all granted
    </Directory>
  </VirtualHost>

Windows 10 Clients

Our Windows 10 boxes run Synergy and is the server. Adobe Creative Cloud and other useful Windows applications for web development are also installed.

To get to the Linux virtual domains, change c:/windows/system32/drivers/etc/hosts file to the same IP list. This way, URL requests are handled locally and never goes out to the Internet.

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

# Added for local Debian Apache intranet support
192.168.0.10 aws.qlicksoft.com
192.168.0.10 cms.qlicksoft.com
192.168.0.10 test.qlicksoft.com

Network

All computers are connected via Fast Gigabit switch along with Fast Gigabit Cat 6 wiring.