How To Setup Apache Server
--------------------------
- mod_netconf compilation requires apache2-devel package.

- run following commands in this directory
$ make
# make install

- Add following lines into the (appropriate parts of the ) Apache configuration:
LoadModule netconf_module                 /usr/lib64/apache2/mod_netconf.so
<Location /netconf>
        SetHandler netconf
</Location>

- copy index.php and login.php into Apache DocumentRoot.
- create empty directory 'netconf' in Apache DocumentRoot
- open index.php in the browser and follow instructions
