[mapguide-commits] r9293 - in sandbox/jng/cmake_v2: . Common/MapGuideCommon Oem Oem/CsMapLibrary Oem/LinuxApt Server/src/Core Web/src Web/src/ApacheAgent Web/src/PhpApi cmake cmake/configs cmake/modules

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Mon Jan 8 23:23:31 PST 2018


Author: jng
Date: 2018-01-08 23:23:31 -0800 (Mon, 08 Jan 2018)
New Revision: 9293

Added:
   sandbox/jng/cmake_v2/Oem/LinuxApt/CMakeLists.txt
   sandbox/jng/cmake_v2/cmake/configs/
   sandbox/jng/cmake_v2/cmake/configs/mgserver.sh.in
   sandbox/jng/cmake_v2/cmake/configs/mgserverd.sh.in
   sandbox/jng/cmake_v2/cmake/configs/php.ini.in
   sandbox/jng/cmake_v2/cmake/configs/serverconfig.ini.in
   sandbox/jng/cmake_v2/cmake/configs/webconfig.ini.in
   sandbox/jng/cmake_v2/cmake/modules/FindLinuxApt.cmake
Modified:
   sandbox/jng/cmake_v2/CMakeLists.txt
   sandbox/jng/cmake_v2/Common/MapGuideCommon/CMakeLists.txt
   sandbox/jng/cmake_v2/Oem/CMakeLists.txt
   sandbox/jng/cmake_v2/Oem/CsMapLibrary/CMakeLists.txt
   sandbox/jng/cmake_v2/Server/src/Core/CMakeLists.txt
   sandbox/jng/cmake_v2/Web/src/ApacheAgent/CMakeLists.txt
   sandbox/jng/cmake_v2/Web/src/CMakeLists.txt
   sandbox/jng/cmake_v2/Web/src/PhpApi/CMakeLists.txt
   sandbox/jng/cmake_v2/cmake_build.sh
Log:
Move LinuxApt setup out to cmake_build.sh just like DbXml. Also add a FindLinuxApt.cmake module to set up include paths for PHP and HTTPD. Add various templates for various configuration and script files that will be plugged in and copied on install-time

Modified: sandbox/jng/cmake_v2/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -137,6 +137,7 @@
 find_package(FDO REQUIRED)
 find_package(CppUnit REQUIRED)
 find_package(TCLAP REQUIRED)
+find_package(LinuxApt REQUIRED)
 find_package(DbXmlInternal REQUIRED)
 
 # Set internal tool paths

Modified: sandbox/jng/cmake_v2/Common/MapGuideCommon/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Common/MapGuideCommon/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Common/MapGuideCommon/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -32,4 +32,4 @@
 install_symlink(${CMAKE_INSTALL_PREFIX}/${LIB_INSTALL_DIR}/libMgMapGuideCommon${MG_VERSION_SUFFIX}.so libMgMapGuideCommon.so ${MG_COMPONENT})
 
 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Resources DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
-install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Resources DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
\ No newline at end of file
+install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Resources DESTINATION ${MG_INSTALL_SERVER_PREFIX} COMPONENT ${MG_COMPONENT})
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/Oem/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Oem/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Oem/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -1,96 +1,6 @@
-###### ExternalProject configuration for LinuxApt ######
-set(HTTPD_VER 2.4.18)
-set(LinuxApt_SOURCE "${CMAKE_CURRENT_SOURCE_DIR}/LinuxApt")
-set(LinuxAptHttpd_WORKDIR_ROOT "${CMAKE_CURRENT_BINARY_DIR}/LinuxApt_Build/httpd")
-set(LinuxAptHttpd_WORKDIR "${LinuxAptHttpd_WORKDIR_ROOT}/httpd-${HTTPD_VER}")
-
-# Extract tarballs to build area
-if (NOT EXISTS ${LinuxAptHttpd_WORKDIR})
-    message (STATUS "Preparing httpd (${HTTPD_VER}) source for build")
-    file(MAKE_DIRECTORY ${LinuxAptHttpd_WORKDIR})
-    execute_process(COMMAND tar -jxf ${LinuxApt_SOURCE}/httpd-${HTTPD_VER}.tar.bz2 WORKING_DIRECTORY ${LinuxAptHttpd_WORKDIR_ROOT})
-    execute_process(COMMAND tar -jxf ${LinuxApt_SOURCE}/httpd-${HTTPD_VER}-deps.tar.bz2 WORKING_DIRECTORY ${LinuxAptHttpd_WORKDIR_ROOT})
-else (NOT EXISTS ${LinuxAptHttpd_WORKDIR})
-    message (STATUS "httpd (${HTTPD_VER}) source already prepared at: ${LinuxAptHttpd_WORKDIR}")
-endif (NOT EXISTS ${LinuxAptHttpd_WORKDIR})
-
-# BOGUS: Are you ready for this BS? 
-#
-#   > PHP and tomcat connector need the apxs script from httpd
-#   > The apxs script from httpd does not work until I configure + `make` and `make install` httpd
-#   > If i set the normal install prefix, this means I need superuser access to `make install`
-#   > But this is the build phase of the whole thing that *should not* require superuser. I have not installed anything yet!
-#   > I can't even tell PHP/connector to use post-configure apxs in $SOURCE/support as it has been "configured" 
-#    as though it was already installed into the place that requires superuser
-#   So what is the solution?
-#    1. Configure httpd with a "fake install" prefix (inside the build dir), install there. No superuser required.
-#    2. Build PHP/connector using the apxs of the "fake install" location
-#    3. Now that PHP/connector have their working apxs script, re-configure and re-build httpd with the real prefix. 
-#      Hopefully as this is only a change of prefix "make" should be mostly quick.
-#
-# So long story short, we have 2 httpd targets. One being a build + "fake install". The other being a build with a deferred install
-# to the real location. The first one is merely to get PHP/connector building.
-#
-# Why can't you just ship a standalone apxs script? Why do I even do this?
-#
-# A major CMake selling point is out-of-source builds that leave your source tree in a pristine state. I am not going let this
-# inconvenience (not matter how annoying) make me compromise on this main selling point!
-set(LinuxAptHttpd_FAKEINSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/LinuxApt_Build/httpd_install")
-ExternalProject_Add(httpd-fake
-    DOWNLOAD_COMMAND ""
-    SOURCE_DIR ${LinuxAptHttpd_WORKDIR}
-    INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> make install
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> ./configure --prefix=${LinuxAptHttpd_FAKEINSTALL_DIR} --enable-mods-shared-all --with-included-apr --with-port=${MG_HTTPD_PORT}
-    BUILD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> make
-    BUILD_IN_SOURCE 0
-)
-set(APXS_TOOL_PATH "${LinuxAptHttpd_FAKEINSTALL_DIR}/bin/apxs")
-ExternalProject_Add(httpd
-    DOWNLOAD_COMMAND ""
-    SOURCE_DIR ${LinuxAptHttpd_WORKDIR}
-    INSTALL_COMMAND ""
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> ./configure --prefix=${MG_INSTALL_WEB_PREFIX}/apache2 --enable-mods-shared-all --with-included-apr --with-port=${MG_HTTPD_PORT}
-    BUILD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> make
-    BUILD_IN_SOURCE 0
-)
-add_dependencies(httpd httpd-fake)
-make_install(${LinuxAptHttpd_WORKDIR})
-
-# This sounds dirty, but we need to communicate back to projects that use httpd (in a different dir) where 
-# the httpd headers are
-set(MG_OEM_HTTPD_SOURCE_DIR "${LinuxAptHttpd_WORKDIR}" PARENT_SCOPE)
-
-###### External Project configuration for php ######
-set(PHP_VER 5.6.23)
-set(LinuxAptPhp_WORKDIR_ROOT "${CMAKE_CURRENT_BINARY_DIR}/LinuxApt_Build/php")
-set(LinuxAptPhp_WORKDIR "${LinuxAptPhp_WORKDIR_ROOT}/php-${PHP_VER}")
-
-# Extract tarballs to build area
-if (NOT EXISTS ${LinuxAptPhp_WORKDIR})
-    message (STATUS "Preparing PHP (${PHP_VER}) source for build")
-    file(MAKE_DIRECTORY ${LinuxAptPhp_WORKDIR})
-    execute_process(COMMAND tar -jxf ${LinuxApt_SOURCE}/php-${PHP_VER}.tar.bz2 WORKING_DIRECTORY ${LinuxAptPhp_WORKDIR_ROOT})
-else (NOT EXISTS ${LinuxAptPhp_WORKDIR})
-    message (STATUS "PHP (${PHP_VER}) source already prepared at: ${LinuxAptPhp_WORKDIR}")
-endif (NOT EXISTS ${LinuxAptPhp_WORKDIR})
-
-ExternalProject_Add(php
-    DOWNLOAD_COMMAND ""
-    SOURCE_DIR ${LinuxAptPhp_WORKDIR}
-    # This one we're deferring installation
-    INSTALL_COMMAND ""
-    CONFIGURE_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> ./configure --prefix=${MG_INSTALL_WEB_PREFIX}/php --with-apxs2=${APXS_TOOL_PATH} --with-openssl --with-curl --enable-xml --enable-wddx --enable-shared --with-zlib --enable-zip --enable-mbstring=all --with-xsl=/usr/lib --with-gd --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/lib
-    BUILD_COMMAND ${CMAKE_COMMAND} -E chdir <SOURCE_DIR> make
-    BUILD_IN_SOURCE 0
-)
-add_dependencies(php httpd-fake)
-make_install(${LinuxAptPhp_WORKDIR})
-
-# This sounds dirty, but we need to communicate back to projects that use php (in a different dir) where 
-# the httpd headers are
-set(MG_OEM_PHP_SOURCE_DIR "${LinuxAptPhp_WORKDIR}" PARENT_SCOPE)
-set(MG_OEM_PHP_LIB_DIR "${LinuxAptPhp_WORKDIR}/libs" PARENT_SCOPE)
-
+###### LinuxApt ######
+make_install(${MG_OEM_WORK_DIR}/LinuxApt/php-${PHP_VER})
+make_install(${MG_OEM_WORK_DIR}/LinuxApt/httpd-${HTTPD_VER})
 ###### Everything else ######
 
 # TODO: We have geos in-tree, which is CMake-enabled, so if required we can use
@@ -100,4 +10,5 @@
 #add_subdirectory(geos)
 add_subdirectory(DWFTK)
 add_subdirectory(CsMapLibrary)
-add_subdirectory(SWIGEx)
\ No newline at end of file
+add_subdirectory(SWIGEx)
+add_subdirectory(LinuxApt)
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/Oem/CsMapLibrary/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Oem/CsMapLibrary/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Oem/CsMapLibrary/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -148,7 +148,7 @@
 set_target_properties( CsMapCompiler
     PROPERTIES OUTPUT_NAME "CS_Comp" )
 target_link_libraries(CsMapCompiler CsMap)
-install(TARGETS CsMapCompiler DESTINATION ${MG_INSTALL_COORDSYS_PREFIX}/Dictionaries COMPONENT ${MG_COMPONENT_COMMON})
+install(TARGETS CsMapCompiler DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
 
 set (CsMapDictDiff_SRCS
     ../CsMap/Dictionaries/CS_DictDiff.c
@@ -157,7 +157,7 @@
 set_target_properties( CsMapDictDiff
     PROPERTIES OUTPUT_NAME "CS_DictDiff" )
 target_link_libraries(CsMapDictDiff CsMap)
-install(TARGETS CsMapDictDiff DESTINATION ${MG_INSTALL_COORDSYS_PREFIX}/Dictionaries COMPONENT ${MG_COMPONENT_COMMON})
+install(TARGETS CsMapDictDiff DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
 
 set(CSMAP_DICT_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../CsMap/Dictionaries")
 set(CSMAP_DICT_STAGING_DIR "${CMAKE_CURRENT_BINARY_DIR}/CsMap_Install")
@@ -190,5 +190,25 @@
 #message(STATUS "Removing CS-Map junk: ${CSMAP_JUNK_FILES}")
 file(REMOVE ${CSMAP_JUNK_FILES})
 
-install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
-install(CODE "execute_process(COMMAND ${MG_INSTALL_COORDSYS_PREFIX}/Dictionaries/CS_Comp -b ${MG_INSTALL_COORDSYS_PREFIX}/Dictionaries ${MG_INSTALL_COORDSYS_PREFIX}/Dictionaries)")
\ No newline at end of file
+file(GLOB CS_MAP_ROOT_FILES "${CSMAP_DICT_STAGING_DIR}/Dictionaries/*.*")
+#message(STATUS "CS-Map root files: ${CS_MAP_ROOT_FILES}")
+install(FILES ${CS_MAP_ROOT_FILES} DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Australia DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Brazil DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Canada DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/France DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Germany DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Japan DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/NewZealand DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Spain DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Switzerland DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/UK DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+if (CSMAP_NO_GRID)
+    install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Usa/Harn DESTINATION ${MG_INSTALL_COORDSYS_PREFIX}/Usa COMPONENT ${MG_COMPONENT_COMMON})
+    install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Usa/Nadcon DESTINATION ${MG_INSTALL_COORDSYS_PREFIX}/Usa COMPONENT ${MG_COMPONENT_COMMON})
+    install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Usa/Vertcon DESTINATION ${MG_INSTALL_COORDSYS_PREFIX}/Usa COMPONENT ${MG_COMPONENT_COMMON})
+else (CSMAP_NO_GRID)
+    install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Usa DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+endif (CSMAP_NO_GRID)
+install(DIRECTORY ${CSMAP_DICT_STAGING_DIR}/Dictionaries/Venezuela DESTINATION ${MG_INSTALL_COORDSYS_PREFIX} COMPONENT ${MG_COMPONENT_COMMON})
+install(CODE "execute_process(COMMAND ${MG_INSTALL_COORDSYS_PREFIX}/CS_Comp -b ${MG_INSTALL_COORDSYS_PREFIX} ${MG_INSTALL_COORDSYS_PREFIX})")
\ No newline at end of file

Added: sandbox/jng/cmake_v2/Oem/LinuxApt/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Oem/LinuxApt/CMakeLists.txt	                        (rev 0)
+++ sandbox/jng/cmake_v2/Oem/LinuxApt/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,2 @@
+configure_file(${CMAKE_MODULE_PATH}/../configs/php.ini.in ${CMAKE_CURRENT_BINARY_DIR}/php.ini)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/php.ini DESTINATION ${MG_INSTALL_WEB_PREFIX}/php/lib COMPONENT ${MG_COMPONENT})
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/Server/src/Core/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Server/src/Core/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Server/src/Core/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -75,7 +75,26 @@
     MgStylization${MG_VERSION_SUFFIX}
     MgRenderers${MG_VERSION_SUFFIX}
 )
-add_dependencies(mgserver dbxml-build)
 install(TARGETS mgserver DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/mapguidectl DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/serverconfig.ini DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
\ No newline at end of file
+install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/mapguidectl DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
+configure_file(${CMAKE_MODULE_PATH}/../configs/serverconfig.ini.in ${CMAKE_CURRENT_BINARY_DIR}/serverconfig.ini)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/serverconfig.ini DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
+configure_file(${CMAKE_MODULE_PATH}/../configs/mgserver.sh.in ${CMAKE_CURRENT_BINARY_DIR}/mgserver.sh)
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mgserver.sh DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
+configure_file(${CMAKE_MODULE_PATH}/../configs/mgserverd.sh.in ${CMAKE_CURRENT_BINARY_DIR}/mgserverd.sh)
+install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mgserverd.sh DESTINATION ${MG_SERVER_BIN_DIR} COMPONENT ${MG_COMPONENT})
+file(GLOB DBXML_LIBS "${MG_OEM_WORK_DIR}/dbxml/install/lib/libdb*.so")
+install(FILES ${DBXML_LIBS} DESTINATION ${LIB_INSTALL_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/dbxml DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/dbxml_dump DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/dbxml_load DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_archive DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_checkpoint DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_dump DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_hotbackup DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_load DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_recover DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_upgrade DESTINATION ${MG_SERVER_BIN_DIR})
+install(PROGRAMS ${MG_OEM_WORK_DIR}/dbxml/install/bin/db_verify DESTINATION ${MG_SERVER_BIN_DIR})
+# When installed into $PREFIX/server/bin, it will auto find libraries under $PREFIX/lib and $PREFIX/server/lib
+set_target_properties(mgserver PROPERTIES INSTALL_RPATH "$ORIGIN/../lib:$ORIGIN/../../lib")
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/Web/src/ApacheAgent/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Web/src/ApacheAgent/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Web/src/ApacheAgent/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -10,10 +10,10 @@
     ${MG_COMMON_DIR}/MapGuideCommon
     ${MG_COMMON_DIR}/MdfModel
     ${ACE_INCLUDE_DIR}
-    ${MG_OEM_HTTPD_SOURCE_DIR}/include
-    ${MG_OEM_HTTPD_SOURCE_DIR}/srclib/apr/include
-    ${MG_OEM_HTTPD_SOURCE_DIR}/srclib/apr-util/include
-    ${MG_OEM_HTTPD_SOURCE_DIR}/os/unix
+    ${HTTPD_INCLUDE_DIR}/include
+    ${HTTPD_INCLUDE_DIR}/srclib/apr/include
+    ${HTTPD_INCLUDE_DIR}/srclib/apr-util/include
+    ${HTTPD_INCLUDE_DIR}/os/unix
     ${CMAKE_CURRENT_SOURCE_DIR}/../HttpHandler
     ${CMAKE_CURRENT_SOURCE_DIR}/../WebSupport
     ${CMAKE_CURRENT_SOURCE_DIR}/../MapAgentCommon

Modified: sandbox/jng/cmake_v2/Web/src/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Web/src/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Web/src/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -24,5 +24,7 @@
 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/schemareport DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/stdicons DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
 install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/viewerfiles DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/webconfig.ini DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
+#install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/webconfig.ini DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
+configure_file(${CMAKE_MODULE_PATH}/../configs/webconfig.ini.in ${CMAKE_CURRENT_BINARY_DIR}/webconfig.ini)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/webconfig.ini DESTINATION ${MG_WWWROOT} COMPONENT ${MG_COMPONENT})
 install_empty_directory("TempDir" ${MG_WWWROOT})
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/Web/src/PhpApi/CMakeLists.txt
===================================================================
--- sandbox/jng/cmake_v2/Web/src/PhpApi/CMakeLists.txt	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/Web/src/PhpApi/CMakeLists.txt	2018-01-09 07:23:31 UTC (rev 9293)
@@ -9,10 +9,10 @@
     ${MG_COMMON_DIR}/Geometry
     ${MG_COMMON_DIR}/PlatformBase
     ${MG_COMMON_DIR}/MapGuideCommon
-    ${MG_OEM_PHP_SOURCE_DIR}/TSRM
-    ${MG_OEM_PHP_SOURCE_DIR}/Zend
-    ${MG_OEM_PHP_SOURCE_DIR}/main
-    ${MG_OEM_PHP_SOURCE_DIR}
+    ${PHP_INCLUDE_DIR}/TSRM
+    ${PHP_INCLUDE_DIR}/Zend
+    ${PHP_INCLUDE_DIR}/main
+    ${PHP_INCLUDE_DIR}
     ${ACE_INCLUDE_DIR}
     ${CMAKE_CURRENT_SOURCE_DIR}/../HttpHandler
     ${CMAKE_CURRENT_SOURCE_DIR}/../WebSupport

Added: sandbox/jng/cmake_v2/cmake/configs/mgserver.sh.in
===================================================================
--- sandbox/jng/cmake_v2/cmake/configs/mgserver.sh.in	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/configs/mgserver.sh.in	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+export PATH=@MG_INSTALL_PREFIX@/server/bin:$PATH
+export MENTOR_DICTIONARY_PATH=@MG_INSTALL_COORDSYS_PREFIX@
+export LD_LIBRARY_PATH=@FDO_LIBRARY_DIR@:"$LD_LIBRARY_PATH"
+export NLSPATH=@FDO_NLS_DIR@/%N:"$NLSPATH"
+mkdir -p /var/lock/mgserver
+pushd @MG_INSTALL_PREFIX@/server/bin
+./mgserver run
+popd

Added: sandbox/jng/cmake_v2/cmake/configs/mgserverd.sh.in
===================================================================
--- sandbox/jng/cmake_v2/cmake/configs/mgserverd.sh.in	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/configs/mgserverd.sh.in	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+export PATH=@MG_INSTALL_PREFIX@/server/bin:$PATH
+export MENTOR_DICTIONARY_PATH=@MG_INSTALL_COORDSYS_PREFIX@
+export LD_LIBRARY_PATH=@FDO_LIBRARY_DIR@:"$LD_LIBRARY_PATH"
+export NLSPATH=@FDO_NLS_DIR@/%N:"$NLSPATH"
+mkdir -p /var/lock/mgserver
+pushd @MG_INSTALL_PREFIX@/server/bin
+./mgserver daemon
+popd

Added: sandbox/jng/cmake_v2/cmake/configs/php.ini.in
===================================================================
--- sandbox/jng/cmake_v2/cmake/configs/php.ini.in	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/configs/php.ini.in	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,1266 @@
+[PHP]
+
+;;;;;;;;;;;;;;;;;;;
+; About php.ini   ;
+;;;;;;;;;;;;;;;;;;;
+; This file controls many aspects of PHP's behavior.  In order for PHP to
+; read it, it must be named 'php.ini'.  PHP looks for it in the current
+; working directory, in the path designated by the environment variable
+; PHPRC, and in the path that was defined in compile time (in that order).
+; Under Windows, the compile-time path is the Windows directory.  The
+; path in which the php.ini file is looked for can be overridden using
+; the -c argument in command line mode.
+;
+; The syntax of the file is extremely simple.  Whitespace and Lines
+; beginning with a semicolon are silently ignored (as you probably guessed).
+; Section headers (e.g. [Foo]) are also silently ignored, even though
+; they might mean something in the future.
+;
+; Directives are specified using the following syntax:
+; directive = value
+; Directive names are *case sensitive* - foo=bar is different from FOO=bar.
+;
+; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one
+; of the INI constants (On, Off, True, False, Yes, No and None) or an expression
+; (e.g. E_ALL & ~E_NOTICE), or a quoted string ("foo").
+;
+; Expressions in the INI file are limited to bitwise operators and parentheses:
+; |        bitwise OR
+; &        bitwise AND
+; ~        bitwise NOT
+; !        boolean NOT
+;
+; Boolean flags can be turned on using the values 1, On, True or Yes.
+; They can be turned off using the values 0, Off, False or No.
+;
+; An empty string can be denoted by simply not writing anything after the equal
+; sign, or by using the None keyword:
+;
+;  foo =         ; sets foo to an empty string
+;  foo = none    ; sets foo to an empty string
+;  foo = "none"  ; sets foo to the string 'none'
+;
+; If you use constants in your value, and these constants belong to a
+; dynamically loaded extension (either a PHP extension or a Zend extension),
+; you may only use these constants *after* the line that loads the extension.
+; 
+;
+;;;;;;;;;;;;;;;;;;;
+; About this file ;
+;;;;;;;;;;;;;;;;;;;
+; This is the recommended, PHP 5-style version of the php.ini-dist file.  It
+; sets some non standard settings, that make PHP more efficient, more secure,
+; and encourage cleaner coding.
+;
+; The price is that with these settings, PHP may be incompatible with some
+; applications, and sometimes, more difficult to develop with.  Using this
+; file is warmly recommended for production sites.  As all of the changes from
+; the standard settings are thoroughly documented, you can go over each one,
+; and decide whether you want to use it or not.
+;
+; For general information about the php.ini file, please consult the php.ini-dist
+; file, included in your PHP distribution.
+;
+; This file is different from the php.ini-dist file in the fact that it features
+; different values for several directives, in order to improve performance, while
+; possibly breaking compatibility with the standard out-of-the-box behavior of
+; PHP.  Please make sure you read what's different, and modify your scripts
+; accordingly, if you decide to use this file instead.
+;
+; - register_globals = Off         [Security, Performance]
+;     Global variables are no longer registered for input data (POST, GET, cookies,
+;     environment and other server variables).  Instead of using $foo, you must use
+;     you can use $_REQUEST["foo"] (includes any variable that arrives through the
+;     request, namely, POST, GET and cookie variables), or use one of the specific
+;     $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
+;     on where the input originates.  Also, you can look at the
+;     import_request_variables() function.
+;     Note that register_globals is going to be depracated (i.e., turned off by
+;     default) in the next version of PHP, because it often leads to security bugs.
+;     Read http://php.net/manual/en/security.registerglobals.php for further
+;     information.
+; - register_long_arrays = Off     [Performance]
+;     Disables registration of the older (and deprecated) long predefined array
+;     variables ($HTTP_*_VARS).  Instead, use the superglobals that were
+;     introduced in PHP 4.1.0
+; - display_errors = Off           [Security]
+;     With this directive set to off, errors that occur during the execution of
+;     scripts will no longer be displayed as a part of the script output, and thus,
+;     will no longer be exposed to remote users.  With some errors, the error message
+;     content may expose information about your script, web server, or database
+;     server that may be exploitable for hacking.  Production sites should have this
+;     directive set to off.
+; - log_errors = On                [Security]
+;     This directive complements the above one.  Any errors that occur during the
+;     execution of your script will be logged (typically, to your server's error log,
+;     but can be configured in several ways).  Along with setting display_errors to off,
+;     this setup gives you the ability to fully understand what may have gone wrong,
+;     without exposing any sensitive information to remote users.
+; - output_buffering = 4096        [Performance]
+;     Set a 4KB output buffer.  Enabling output buffering typically results in less
+;     writes, and sometimes less packets sent on the wire, which can often lead to
+;     better performance.  The gain this directive actually yields greatly depends
+;     on which Web server you're working with, and what kind of scripts you're using.
+; - register_argc_argv = Off       [Performance]
+;     Disables registration of the somewhat redundant $argv and $argc global
+;     variables.
+; - magic_quotes_gpc = Off         [Performance]
+;     Input data is no longer escaped with slashes so that it can be sent into
+;     SQL databases without further manipulation.  Instead, you should use the
+;     function addslashes() on each input element you wish to send to a database.
+; - variables_order = "GPCS"       [Performance]
+;     The environment variables are not hashed into the $_ENV.  To access
+;     environment variables, you can use getenv() instead.
+; - error_reporting = E_ALL        [Code Cleanliness, Security(?)]
+;     By default, PHP surpresses errors of type E_NOTICE.  These error messages
+;     are emitted for non-critical errors, but that could be a symptom of a bigger
+;     problem.  Most notably, this will cause error messages about the use
+;     of uninitialized variables to be displayed.
+; - allow_call_time_pass_reference = Off     [Code cleanliness]
+;     It's not possible to decide to force a variable to be passed by reference
+;     when calling a function.  The PHP 4 style to do this is by making the
+;     function require the relevant argument by reference.
+
+
+;;;;;;;;;;;;;;;;;;;;
+; Language Options ;
+;;;;;;;;;;;;;;;;;;;;
+
+; Enable the PHP scripting language engine under Apache.
+engine = On
+
+; Enable compatibility mode with Zend Engine 1 (PHP 4.x)
+zend.ze1_compatibility_mode = Off
+
+; Allow the <? tag.  Otherwise, only <?php and <script> tags are recognized.
+; NOTE: Using short tags should be avoided when developing applications or
+; libraries that are meant for redistribution, or deployment on PHP
+; servers which are not under your control, because short tags may not
+; be supported on the target server. For portable, redistributable code,
+; be sure not to use short tags.
+short_open_tag = On
+
+; Allow ASP-style <% %> tags.
+asp_tags = Off
+
+; The number of significant digits displayed in floating point numbers.
+precision    =  14
+
+; Enforce year 2000 compliance (will cause problems with non-compliant browsers)
+y2k_compliance = On
+
+; Output buffering allows you to send header lines (including cookies) even
+; after you send body content, at the price of slowing PHP's output layer a
+; bit.  You can enable output buffering during runtime by calling the output
+; buffering functions.  You can also enable output buffering for all files by
+; setting this directive to On.  If you wish to limit the size of the buffer
+; to a certain size - you can use a maximum number of bytes instead of 'On', as
+; a value for this directive (e.g., output_buffering=4096).
+output_buffering = 4096
+
+; You can redirect all of the output of your scripts to a function.  For
+; example, if you set output_handler to "mb_output_handler", character
+; encoding will be transparently converted to the specified encoding.
+; Setting any output handler automatically turns on output buffering.
+; Note: People who wrote portable scripts should not depend on this ini
+;       directive. Instead, explicitly set the output handler using ob_start().
+;       Using this ini directive may cause problems unless you know what script
+;       is doing.
+; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler"
+;       and you cannot use both "ob_gzhandler" and "zlib.output_compression".
+; Note: output_handler must be empty if this is set 'On' !!!!
+;       Instead you must use zlib.output_handler.
+;output_handler =
+
+; Transparent output compression using the zlib library
+; Valid values for this option are 'off', 'on', or a specific buffer size
+; to be used for compression (default is 4KB)
+; Note: Resulting chunk size may vary due to nature of compression. PHP
+;       outputs chunks that are few hundreds bytes each as a result of
+;       compression. If you prefer a larger chunk size for better
+;       performance, enable output_buffering in addition.
+; Note: You need to use zlib.output_handler instead of the standard
+;       output_handler, or otherwise the output will be corrupted.
+zlib.output_compression = Off
+
+; You cannot specify additional output handlers if zlib.output_compression
+; is activated here. This setting does the same as output_handler but in
+; a different order.
+;zlib.output_handler =
+
+; Implicit flush tells PHP to tell the output layer to flush itself
+; automatically after every output block.  This is equivalent to calling the
+; PHP function flush() after each and every call to print() or echo() and each
+; and every HTML block.  Turning this option on has serious performance
+; implications and is generally recommended for debugging purposes only.
+implicit_flush = Off
+
+; The unserialize callback function will be called (with the undefined class'
+; name as parameter), if the unserializer finds an undefined class
+; which should be instanciated.
+; A warning appears if the specified function is not defined, or if the
+; function doesn't include/implement the missing class.
+; So only set this entry, if you really want to implement such a
+; callback-function.
+unserialize_callback_func=
+
+; When floats & doubles are serialized store serialize_precision significant
+; digits after the floating point. The default value ensures that when floats
+; are decoded with unserialize, the data will remain the same.
+serialize_precision = 100
+
+; Whether to enable the ability to force arguments to be passed by reference
+; at function call time.  This method is deprecated and is likely to be
+; unsupported in future versions of PHP/Zend.  The encouraged method of
+; specifying which arguments should be passed by reference is in the function
+; declaration.  You're encouraged to try and turn this option Off and make
+; sure your scripts work properly with it in order to ensure they will work
+; with future versions of the language (you will receive a warning each time
+; you use this feature, and the argument will be passed by value instead of by
+; reference).
+allow_call_time_pass_reference = Off
+
+;
+; Safe Mode
+;
+safe_mode = Off
+
+; By default, Safe Mode does a UID compare check when
+; opening files. If you want to relax this to a GID compare,
+; then turn on safe_mode_gid.
+safe_mode_gid = Off
+
+; When safe_mode is on, UID/GID checks are bypassed when
+; including files from this directory and its subdirectories.
+; (directory must also be in include_path or full path must
+; be used when including)
+safe_mode_include_dir =
+
+; When safe_mode is on, only executables located in the safe_mode_exec_dir
+; will be allowed to be executed via the exec family of functions.
+safe_mode_exec_dir =
+
+; Setting certain environment variables may be a potential security breach.
+; This directive contains a comma-delimited list of prefixes.  In Safe Mode,
+; the user may only alter environment variables whose names begin with the
+; prefixes supplied here.  By default, users will only be able to set
+; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR).
+;
+; Note:  If this directive is empty, PHP will let the user modify ANY
+; environment variable!
+safe_mode_allowed_env_vars = PHP_
+
+; This directive contains a comma-delimited list of environment variables that
+; the end user won't be able to change using putenv().  These variables will be
+; protected even if safe_mode_allowed_env_vars is set to allow to change them.
+safe_mode_protected_env_vars = LD_LIBRARY_PATH
+
+; open_basedir, if set, limits all file operations to the defined directory
+; and below.  This directive makes most sense if used in a per-directory
+; or per-virtualhost web server configuration file. This directive is
+; *NOT* affected by whether Safe Mode is turned On or Off.
+;open_basedir =
+
+; This directive allows you to disable certain functions for security reasons.
+; It receives a comma-delimited list of function names. This directive is
+; *NOT* affected by whether Safe Mode is turned On or Off.
+disable_functions =
+
+; This directive allows you to disable certain classes for security reasons.
+; It receives a comma-delimited list of class names. This directive is
+; *NOT* affected by whether Safe Mode is turned On or Off.
+disable_classes =
+
+; Colors for Syntax Highlighting mode.  Anything that's acceptable in
+; <span style="color: ???????"> would work.
+;highlight.string  = #DD0000
+;highlight.comment = #FF9900
+;highlight.keyword = #007700
+;highlight.bg      = #FFFFFF
+;highlight.default = #0000BB
+;highlight.html    = #000000
+
+
+;
+; Misc
+;
+; Decides whether PHP may expose the fact that it is installed on the server
+; (e.g. by adding its signature to the Web server header).  It is no security
+; threat in any way, but it makes it possible to determine whether you use PHP
+; on your server or not.
+expose_php = On
+
+
+;;;;;;;;;;;;;;;;;;;
+; Resource Limits ;
+;;;;;;;;;;;;;;;;;;;
+
+max_execution_time = 60     ; Maximum execution time of each script, in seconds
+max_input_time = 60	; Maximum amount of time each script may spend parsing request data
+memory_limit = 32M      ; Maximum amount of memory a script may consume (8MB)
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Error handling and logging ;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; error_reporting is a bit-field.  Or each number up to get desired error
+; reporting level
+; E_ALL             - All errors and warnings (doesn't include E_STRICT)
+; E_ERROR           - fatal run-time errors
+; E_WARNING         - run-time warnings (non-fatal errors)
+; E_PARSE           - compile-time parse errors
+; E_NOTICE          - run-time notices (these are warnings which often result
+;                     from a bug in your code, but it's possible that it was
+;                     intentional (e.g., using an uninitialized variable and
+;                     relying on the fact it's automatically initialized to an
+;                     empty string)
+; E_STRICT          - run-time notices, enable to have PHP suggest changes
+;                     to your code which will ensure the best interoperability
+;                     and forward compatibility of your code
+; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
+; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
+;                     initial startup
+; E_COMPILE_ERROR   - fatal compile-time errors
+; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
+; E_USER_ERROR      - user-generated error message
+; E_USER_WARNING    - user-generated warning message
+; E_USER_NOTICE     - user-generated notice message
+;
+; Examples:
+;
+;   - Show all errors, except for notices and coding standards warnings
+;
+;error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
+;
+;   - Show all errors, except for notices
+;
+;error_reporting = E_ALL & ~E_NOTICE
+;
+;   - Show only errors
+;
+;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
+;
+;   - Show all errors
+;
+error_reporting  =  E_ALL
+
+; Print out errors (as a part of the output).  For production web sites,
+; you're strongly encouraged to turn this feature off, and use error logging
+; instead (see below).  Keeping display_errors enabled on a production web site
+; may reveal security information to end users, such as file paths on your Web
+; server, your database schema or other information.
+display_errors = Off
+
+; Even when display_errors is on, errors that occur during PHP's startup
+; sequence are not displayed.  It's strongly recommended to keep
+; display_startup_errors off, except for when debugging.
+display_startup_errors = Off
+
+; Log errors into a log file (server-specific log, stderr, or error_log (below))
+; As stated above, you're strongly advised to use error logging in place of
+; error displaying on production web sites.
+log_errors = On
+
+; Set maximum length of log_errors. In error_log information about the source is
+; added. The default is 1024 and 0 allows to not apply any maximum length at all.
+log_errors_max_len = 1024
+
+; Do not log repeated messages. Repeated errors must occur in same file on same
+; line until ignore_repeated_source is set true.
+ignore_repeated_errors = Off
+
+; Ignore source of message when ignoring repeated messages. When this setting
+; is On you will not log errors with repeated messages from different files or
+; sourcelines.
+ignore_repeated_source = Off
+
+; If this parameter is set to Off, then memory leaks will not be shown (on
+; stdout or in the log). This has only effect in a debug compile, and if
+; error reporting includes E_WARNING in the allowed list
+report_memleaks = On
+
+; Store the last error/warning message in $php_errormsg (boolean).
+track_errors = Off
+
+; Disable the inclusion of HTML tags in error messages.
+; Note: Never use this feature for production boxes.
+;html_errors = Off
+
+; If html_errors is set On PHP produces clickable error messages that direct
+; to a page describing the error or function causing the error in detail.
+; You can download a copy of the PHP manual from http://www.php.net/docs.php
+; and change docref_root to the base URL of your local copy including the
+; leading '/'. You must also specify the file extension being used including
+; the dot.
+; Note: Never use this feature for production boxes.
+;docref_root = "/phpmanual/"
+;docref_ext = .html
+
+; String to output before an error message.
+;error_prepend_string = "<font color=ff0000>"
+
+; String to output after an error message.
+;error_append_string = "</font>"
+
+; Log errors to specified file.
+;error_log = filename
+
+; Log errors to syslog (Event Log on NT, not valid in Windows 95).
+;error_log = syslog
+
+
+;;;;;;;;;;;;;;;;;
+; Data Handling ;
+;;;;;;;;;;;;;;;;;
+;
+; Note - track_vars is ALWAYS enabled as of PHP 4.0.3
+
+; The separator used in PHP generated URLs to separate arguments.
+; Default is "&".
+;arg_separator.output = "&"
+
+; List of separator(s) used by PHP to parse input URLs into variables.
+; Default is "&".
+; NOTE: Every character in this directive is considered as separator!
+;arg_separator.input = ";&"
+
+; This directive describes the order in which PHP registers GET, POST, Cookie,
+; Environment and Built-in variables (G, P, C, E & S respectively, often
+; referred to as EGPCS or GPC).  Registration is done from left to right, newer
+; values override older values.
+variables_order = "GPCS"
+
+; Whether or not to register the EGPCS variables as global variables.  You may
+; want to turn this off if you don't want to clutter your scripts' global scope
+; with user data.  This makes most sense when coupled with track_vars - in which
+; case you can access all of the GPC variables through the $HTTP_*_VARS[],
+; variables.
+;
+; You should do your best to write your scripts so that they do not require
+; register_globals to be on;  Using form variables as globals can easily lead
+; to possible security problems, if the code is not very well thought of.
+register_globals = Off
+
+; Whether or not to register the old-style input arrays, HTTP_GET_VARS
+; and friends.  If you're not using them, it's recommended to turn them off,
+; for performance reasons.
+register_long_arrays = Off
+
+; This directive tells PHP whether to declare the argv&argc variables (that
+; would contain the GET information).  If you don't use these variables, you
+; should turn it off for increased performance.
+register_argc_argv = Off
+
+; When enabled, the SERVER and ENV variables are created when they're first
+; used (Just In Time) instead of when the script starts. If these variables
+; are not used within a script, having this directive on will result in a
+; performance gain. The PHP directives register_globals, register_long_arrays,
+; and register_argc_argv must be disabled for this directive to have any affect.
+auto_globals_jit = On
+
+; Maximum size of POST data that PHP will accept.
+post_max_size = 32M
+
+; Magic quotes
+;
+
+; Magic quotes for incoming GET/POST/Cookie data.
+magic_quotes_gpc = Off
+
+; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
+magic_quotes_runtime = Off
+
+; Use Sybase-style magic quotes (escape ' with '' instead of \').
+magic_quotes_sybase = Off
+
+; Automatically add files before or after any PHP document.
+auto_prepend_file =
+auto_append_file =
+
+; As of 4.0b4, PHP always outputs a character encoding by default in
+; the Content-type: header.  To disable sending of the charset, simply
+; set it to be empty.
+;
+; PHP's built-in default is text/html
+default_mimetype = "text/html"
+;default_charset = "iso-8859-1"
+
+; Always populate the $HTTP_RAW_POST_DATA variable.
+always_populate_raw_post_data = -1
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;
+; Paths and Directories ;
+;;;;;;;;;;;;;;;;;;;;;;;;;
+
+; UNIX: "/path1:/path2"
+;include_path = ".:/php/includes"
+;
+; Windows: "\path1;\path2"
+;include_path = ".;c:\php\includes"
+
+; The root of the PHP pages, used only if nonempty.
+; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root
+; if you are running php as a CGI under any web server (other than IIS)
+; see documentation for security issues.  The alternate is to use the
+; cgi.force_redirect configuration below
+doc_root =
+
+; The directory under which PHP opens the script using /~username used only
+; if nonempty.
+user_dir =
+
+; Directory in which the loadable extensions (modules) reside.
+extension_dir = "@MG_INSTALL_WEB_PREFIX@/lib at LIB_SUFFIX@"
+
+; Whether or not to enable the dl() function.  The dl() function does NOT work
+; properly in multithreaded servers, such as IIS or Zeus, and is automatically
+; disabled on them.
+enable_dl = On
+
+; cgi.force_redirect is necessary to provide security running PHP as a CGI under
+; most web servers.  Left undefined, PHP turns this on by default.  You can
+; turn it off here AT YOUR OWN RISK
+; **You CAN safely turn this off for IIS, in fact, you MUST.**
+; cgi.force_redirect = 1
+
+; if cgi.nph is enabled it will force cgi to always sent Status: 200 with
+; every request.
+; cgi.nph = 1
+
+; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape
+; (iPlanet) web servers, you MAY need to set an environment variable name that PHP
+; will look for to know it is OK to continue execution.  Setting this variable MAY
+; cause security issues, KNOW WHAT YOU ARE DOING FIRST.
+; cgi.redirect_status_env = ;
+
+; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate
+; security tokens of the calling client.  This allows IIS to define the
+; security context that the request runs under.  mod_fastcgi under Apache
+; does not currently support this feature (03/17/2002)
+; Set to 1 if running under IIS.  Default is zero.
+; fastcgi.impersonate = 1;
+
+; Disable logging through FastCGI connection
+; fastcgi.log = 0
+
+; cgi.rfc2616_headers configuration option tells PHP what type of headers to
+; use when sending HTTP response code. If it's set 0 PHP sends Status: header that
+; is supported by Apache. When this option is set to 1 PHP will send
+; RFC2616 compliant header.
+; Default is zero.
+;cgi.rfc2616_headers = 0
+
+
+;;;;;;;;;;;;;;;;
+; File Uploads ;
+;;;;;;;;;;;;;;;;
+
+; Whether to allow HTTP file uploads.
+file_uploads = On
+
+; Temporary directory for HTTP uploaded files (will use system default if not
+; specified).
+;upload_tmp_dir =
+
+; Maximum allowed size for uploaded files.
+upload_max_filesize = 2M
+
+
+;;;;;;;;;;;;;;;;;;
+; Fopen wrappers ;
+;;;;;;;;;;;;;;;;;;
+
+; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
+allow_url_fopen = On
+
+; Define the anonymous ftp password (your email address)
+;from="john at doe.com"
+
+; Define the User-Agent string
+; user_agent="PHP"
+
+; Default timeout for socket based streams (seconds)
+default_socket_timeout = 60
+
+; If your scripts have to deal with files from Macintosh systems,
+; or you are running on a Mac and need to deal with files from
+; unix or win32 systems, setting this flag will cause PHP to
+; automatically detect the EOL character in those files so that
+; fgets() and file() will work regardless of the source of the file.
+; auto_detect_line_endings = Off
+
+
+;;;;;;;;;;;;;;;;;;;;;;
+; Dynamic Extensions ;
+;;;;;;;;;;;;;;;;;;;;;;
+;
+; If you wish to have an extension loaded automatically, use the following
+; syntax:
+;
+;   extension=modulename.extension
+;
+; For example, on Windows:
+;
+;   extension=msql.dll
+;
+; ... or under UNIX:
+;
+;   extension=msql.so
+;
+; Note that it should be the name of the module only; no directory information
+; needs to go here.  Specify the location of the extension with the
+; extension_dir directive above.
+
+
+;Windows Extensions
+;Note that ODBC support is built in, so no dll is needed for it.
+;
+
+;extension=php_mbstring.dll
+;extension=php_bz2.dll
+;extension=php_cpdf.dll
+;extension=php_curl.dll
+;extension=php_dba.dll
+;extension=php_dbase.dll
+;extension=php_dbx.dll
+;extension=php_exif.dll
+;extension=php_fdf.dll
+;extension=php_filepro.dll
+;extension=php_gd2.dll
+;extension=php_gettext.dll
+;extension=php_ifx.dll
+;extension=php_iisfunc.dll
+;extension=php_imap.dll
+;extension=php_interbase.dll
+;extension=php_java.dll
+;extension=php_ldap.dll
+;extension=php_mcrypt.dll
+;extension=php_mhash.dll
+;extension=php_mime_magic.dll
+;extension=php_ming.dll
+;extension=php_mssql.dll
+;extension=php_msql.dll
+;extension=php_mysql.dll
+;extension=php_oci8.dll
+;extension=php_openssl.dll
+;extension=php_oracle.dll
+;extension=php_pdf.dll
+;extension=php_pgsql.dll
+;extension=php_shmop.dll
+;extension=php_snmp.dll
+;extension=php_sockets.dll
+;extension=php_sybase_ct.dll
+;extension=php_tidy.dll
+;extension=php_w32api.dll
+;extension=php_xmlrpc.dll
+;extension=php_xsl.dll
+;extension=php_yaz.dll
+;extension=php_zip.dll
+extension=libphp_MapGuideApi.so
+
+
+;;;;;;;;;;;;;;;;;;;
+; Module Settings ;
+;;;;;;;;;;;;;;;;;;;
+
+[Date]
+; Defines the default timezone used by the date functions
+; http://php.net/date.timezone
+date.timezone = 'UTC'
+
+[Syslog]
+; Whether or not to define the various syslog variables (e.g. $LOG_PID,
+; $LOG_CRON, etc.).  Turning it off is a good idea performance-wise.  In
+; runtime, you can define these variables by calling define_syslog_variables().
+define_syslog_variables  = Off
+
+[mail function]
+; For Win32 only.
+SMTP = localhost
+smtp_port = 25
+
+; For Win32 only.
+;sendmail_from = me at example.com
+
+; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
+;sendmail_path =
+
+; Force the addition of the specified parameters to be passed as extra parameters
+; to the sendmail binary. These parameters will always replace the value of
+; the 5th parameter to mail(), even in safe mode.
+;mail.force_extra_parameters =
+
+[SQL]
+sql.safe_mode = Off
+
+[ODBC]
+;odbc.default_db    =  Not yet implemented
+;odbc.default_user  =  Not yet implemented
+;odbc.default_pw    =  Not yet implemented
+
+; Allow or prevent persistent links.
+odbc.allow_persistent = On
+
+; Check that a connection is still valid before reuse.
+odbc.check_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+odbc.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent).  -1 means no limit.
+odbc.max_links = -1
+
+; Handling of LONG fields.  Returns number of bytes to variables.  0 means
+; passthru.
+odbc.defaultlrl = 4096
+
+; Handling of binary data.  0 means passthru, 1 return as is, 2 convert to char.
+; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
+; of uodbc.defaultlrl and uodbc.defaultbinmode
+odbc.defaultbinmode = 1
+
+[MySQL]
+; Allow or prevent persistent links.
+mysql.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+mysql.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent).  -1 means no limit.
+mysql.max_links = -1
+
+; Default port number for mysql_connect().  If unset, mysql_connect() will use
+; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
+; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
+; at MYSQL_PORT.
+mysql.default_port =
+
+; Default socket name for local MySQL connects.  If empty, uses the built-in
+; MySQL defaults.
+mysql.default_socket =
+
+; Default host for mysql_connect() (doesn't apply in safe mode).
+mysql.default_host =
+
+; Default user for mysql_connect() (doesn't apply in safe mode).
+mysql.default_user =
+
+; Default password for mysql_connect() (doesn't apply in safe mode).
+; Note that this is generally a *bad* idea to store passwords in this file.
+; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
+; and reveal this password!  And of course, any users with read access to this
+; file will be able to reveal the password as well.
+mysql.default_password =
+
+; Maximum time (in secondes) for connect timeout. -1 means no limit
+mysql.connect_timeout = 60
+
+; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
+; SQL-Errors will be displayed.
+mysql.trace_mode = Off
+
+[MySQLI]
+
+; Maximum number of links.  -1 means no limit.
+mysqli.max_links = -1
+
+; Default port number for mysqli_connect().  If unset, mysqli_connect() will use
+; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
+; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
+; at MYSQL_PORT.
+mysqli.default_port = 3306
+
+; Default socket name for local MySQL connects.  If empty, uses the built-in
+; MySQL defaults.
+mysqli.default_socket =
+
+; Default host for mysql_connect() (doesn't apply in safe mode).
+mysqli.default_host =
+
+; Default user for mysql_connect() (doesn't apply in safe mode).
+mysqli.default_user =
+
+; Default password for mysqli_connect() (doesn't apply in safe mode).
+; Note that this is generally a *bad* idea to store passwords in this file.
+; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
+; and reveal this password!  And of course, any users with read access to this
+; file will be able to reveal the password as well.
+mysqli.default_pw =
+
+; Allow or prevent reconnect
+mysqli.reconnect = Off
+
+[mSQL]
+; Allow or prevent persistent links.
+msql.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+msql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent).  -1 means no limit.
+msql.max_links = -1
+
+[PostgresSQL]
+; Allow or prevent persistent links.
+pgsql.allow_persistent = On
+
+; Detect broken persistent links always with pg_pconnect().
+; Auto reset feature requires a little overheads.
+pgsql.auto_reset_persistent = Off
+
+; Maximum number of persistent links.  -1 means no limit.
+pgsql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent).  -1 means no limit.
+pgsql.max_links = -1
+
+; Ignore PostgreSQL backends Notice message or not.
+; Notice message logging require a little overheads.
+pgsql.ignore_notice = 0
+
+; Log PostgreSQL backends Noitce message or not.
+; Unless pgsql.ignore_notice=0, module cannot log notice message.
+pgsql.log_notice = 0
+
+[Sybase]
+; Allow or prevent persistent links.
+sybase.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+sybase.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent).  -1 means no limit.
+sybase.max_links = -1
+
+;sybase.interface_file = "/usr/sybase/interfaces"
+
+; Minimum error severity to display.
+sybase.min_error_severity = 10
+
+; Minimum message severity to display.
+sybase.min_message_severity = 10
+
+; Compatability mode with old versions of PHP 3.0.
+; If on, this will cause PHP to automatically assign types to results according
+; to their Sybase type, instead of treating them all as strings.  This
+; compatability mode will probably not stay around forever, so try applying
+; whatever necessary changes to your code, and turn it off.
+sybase.compatability_mode = Off
+
+[Sybase-CT]
+; Allow or prevent persistent links.
+sybct.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+sybct.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent).  -1 means no limit.
+sybct.max_links = -1
+
+; Minimum server message severity to display.
+sybct.min_server_severity = 10
+
+; Minimum client message severity to display.
+sybct.min_client_severity = 10
+
+[dbx]
+; returned column names can be converted for compatibility reasons
+; possible values for dbx.colnames_case are
+; "unchanged" (default, if not set)
+; "lowercase"
+; "uppercase"
+; the recommended default is either upper- or lowercase, but
+; unchanged is currently set for backwards compatibility
+dbx.colnames_case = "lowercase"
+
+[bcmath]
+; Number of decimal digits for all bcmath functions.
+bcmath.scale = 0
+
+[browscap]
+;browscap = extra/browscap.ini
+
+[Informix]
+; Default host for ifx_connect() (doesn't apply in safe mode).
+ifx.default_host =
+
+; Default user for ifx_connect() (doesn't apply in safe mode).
+ifx.default_user =
+
+; Default password for ifx_connect() (doesn't apply in safe mode).
+ifx.default_password =
+
+; Allow or prevent persistent links.
+ifx.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+ifx.max_persistent = -1
+
+; Maximum number of links (persistent + non-persistent).  -1 means no limit.
+ifx.max_links = -1
+
+; If on, select statements return the contents of a text blob instead of its id.
+ifx.textasvarchar = 0
+
+; If on, select statements return the contents of a byte blob instead of its id.
+ifx.byteasvarchar = 0
+
+; Trailing blanks are stripped from fixed-length char columns.  May help the
+; life of Informix SE users.
+ifx.charasvarchar = 0
+
+; If on, the contents of text and byte blobs are dumped to a file instead of
+; keeping them in memory.
+ifx.blobinfile = 0
+
+; NULL's are returned as empty strings, unless this is set to 1.  In that case,
+; NULL's are returned as string 'NULL'.
+ifx.nullformat = 0
+
+[Session]
+; Handler used to store/retrieve data.
+session.save_handler = files
+
+; Argument passed to save_handler.  In the case of files, this is the path
+; where data files are stored. Note: Windows users have to change this
+; variable in order to use PHP's session functions.
+;
+; As of PHP 4.0.1, you can define the path as:
+;
+;     session.save_path = "N;/path"
+;
+; where N is an integer.  Instead of storing all the session files in
+; /path, what this will do is use subdirectories N-levels deep, and
+; store the session data in those directories.  This is useful if you
+; or your OS have problems with lots of files in one directory, and is
+; a more efficient layout for servers that handle lots of sessions.
+;
+; NOTE 1: PHP will not create this directory structure automatically.
+;         You can use the script in the ext/session dir for that purpose.
+; NOTE 2: See the section on garbage collection below if you choose to
+;         use subdirectories for session storage
+;
+; The file storage module creates files using mode 600 by default.
+; You can change that by using
+;
+;     session.save_path = "N;MODE;/path"
+;
+; where MODE is the octal representation of the mode. Note that this
+; does not overwrite the process's umask.
+;session.save_path = "/tmp"
+
+; Whether to use cookies.
+session.use_cookies = 1
+
+; This option enables administrators to make their users invulnerable to
+; attacks which involve passing session ids in URLs; defaults to 0.
+; session.use_only_cookies = 1
+
+; Name of the session (used as cookie name).
+session.name = PHPSESSID
+
+; Initialize session on request startup.
+session.auto_start = 0
+
+; Lifetime in seconds of cookie or, if 0, until browser is restarted.
+session.cookie_lifetime = 0
+
+; The path for which the cookie is valid.
+session.cookie_path = /
+
+; The domain for which the cookie is valid.
+session.cookie_domain =
+
+; Handler used to serialize data.  php is the standard serializer of PHP.
+session.serialize_handler = php
+
+; Define the probability that the 'garbage collection' process is started
+; on every session initialization.
+; The probability is calculated by using gc_probability/gc_divisor,
+; e.g. 1/100 means there is a 1% chance that the GC process starts
+; on each request.
+
+session.gc_probability = 1
+session.gc_divisor     = 1000
+
+; After this number of seconds, stored data will be seen as 'garbage' and
+; cleaned up by the garbage collection process.
+session.gc_maxlifetime = 1440
+
+; NOTE: If you are using the subdirectory option for storing session files
+;       (see session.save_path above), then garbage collection does *not*
+;       happen automatically.  You will need to do your own garbage
+;       collection through a shell script, cron entry, or some other method.
+;       For example, the following script would is the equivalent of
+;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
+;          cd /path/to/sessions; find -cmin +24 | xargs rm
+
+; PHP 4.2 and less have an undocumented feature/bug that allows you to
+; to initialize a session variable in the global scope, albeit register_globals
+; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
+; You can disable the feature and the warning separately. At this time,
+; the warning is only displayed, if bug_compat_42 is enabled.
+
+session.bug_compat_42 = 0
+session.bug_compat_warn = 1
+
+; Check HTTP Referer to invalidate externally stored URLs containing ids.
+; HTTP_REFERER has to contain this substring for the session to be
+; considered as valid.
+session.referer_check =
+
+; How many bytes to read from the file.
+session.entropy_length = 0
+
+; Specified here to create the session id.
+session.entropy_file =
+
+;session.entropy_length = 16
+
+;session.entropy_file = /dev/urandom
+
+; Set to {nocache,private,public,} to determine HTTP caching aspects
+; or leave this empty to avoid sending anti-caching headers.
+session.cache_limiter = nocache
+
+; Document expires after n minutes.
+session.cache_expire = 180
+
+; trans sid support is disabled by default.
+; Use of trans sid may risk your users security.
+; Use this option with caution.
+; - User may send URL contains active session ID
+;   to other person via. email/irc/etc.
+; - URL that contains active session ID may be stored
+;   in publically accessible computer.
+; - User may access your site with the same session ID
+;   always using URL stored in browser's history or bookmarks.
+session.use_trans_sid = 0
+
+; Select a hash function
+; 0: MD5   (128 bits)
+; 1: SHA-1 (160 bits)
+session.hash_function = 0
+
+; Define how many bits are stored in each character when converting
+; the binary hash data to something readable.
+;
+; 4 bits: 0-9, a-f
+; 5 bits: 0-9, a-v
+; 6 bits: 0-9, a-z, A-Z, "-", ","
+session.hash_bits_per_character = 5
+
+; The URL rewriter will look for URLs in a defined set of HTML tags.
+; form/fieldset are special; if you include them here, the rewriter will
+; add a hidden <input> field with the info which is otherwise appended
+; to URLs.  If you want XHTML conformity, remove the form entry.
+; Note that all valid entries require a "=", even if no value follows.
+url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
+
+[MSSQL]
+; Allow or prevent persistent links.
+mssql.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+mssql.max_persistent = -1
+
+; Maximum number of links (persistent+non persistent).  -1 means no limit.
+mssql.max_links = -1
+
+; Minimum error severity to display.
+mssql.min_error_severity = 10
+
+; Minimum message severity to display.
+mssql.min_message_severity = 10
+
+; Compatability mode with old versions of PHP 3.0.
+mssql.compatability_mode = Off
+
+; Connect timeout
+;mssql.connect_timeout = 5
+
+; Query timeout
+;mssql.timeout = 60
+
+; Valid range 0 - 2147483647.  Default = 4096.
+;mssql.textlimit = 4096
+
+; Valid range 0 - 2147483647.  Default = 4096.
+;mssql.textsize = 4096
+
+; Limits the number of records in each batch.  0 = all records in one batch.
+;mssql.batchsize = 0
+
+; Specify how datetime and datetim4 columns are returned
+; On => Returns data converted to SQL server settings
+; Off => Returns values as YYYY-MM-DD hh:mm:ss
+;mssql.datetimeconvert = On
+
+; Use NT authentication when connecting to the server
+mssql.secure_connection = Off
+
+; Specify max number of processes. Default = 25
+;mssql.max_procs = 25
+
+[Assertion]
+; Assert(expr); active by default.
+;assert.active = On
+
+; Issue a PHP warning for each failed assertion.
+;assert.warning = On
+
+; Don't bail out by default.
+;assert.bail = Off
+
+; User-function to be called if an assertion fails.
+;assert.callback = 0
+
+; Eval the expression with current error_reporting().  Set to true if you want
+; error_reporting(0) around the eval().
+;assert.quiet_eval = 0
+
+[Ingres II]
+; Allow or prevent persistent links.
+ingres.allow_persistent = On
+
+; Maximum number of persistent links.  -1 means no limit.
+ingres.max_persistent = -1
+
+; Maximum number of links, including persistents.  -1 means no limit.
+ingres.max_links = -1
+
+; Default database (format: [node_id::]dbname[/srv_class]).
+ingres.default_database =
+
+; Default user.
+ingres.default_user =
+
+; Default password.
+ingres.default_password =
+
+[Verisign Payflow Pro]
+; Default Payflow Pro server.
+pfpro.defaulthost = "test-payflow.verisign.com"
+
+; Default port to connect to.
+pfpro.defaultport = 443
+
+; Default timeout in seconds.
+pfpro.defaulttimeout = 30
+
+; Default proxy IP address (if required).
+;pfpro.proxyaddress =
+
+; Default proxy port.
+;pfpro.proxyport =
+
+; Default proxy logon.
+;pfpro.proxylogon =
+
+; Default proxy password.
+;pfpro.proxypassword =
+
+[com]
+; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs
+;com.typelib_file =
+; allow Distributed-COM calls
+;com.allow_dcom = true
+; autoregister constants of a components typlib on com_load()
+;com.autoregister_typelib = true
+; register constants casesensitive
+;com.autoregister_casesensitive = false
+; show warnings on duplicate constat registrations
+;com.autoregister_verbose = true
+
+[mbstring]
+; language for internal character representation.
+mbstring.language = UTF-8
+
+; internal/script encoding.
+; Some encoding cannot work as internal encoding.
+; (e.g. SJIS, BIG5, ISO-2022-*)
+mbstring.internal_encoding = UTF-8
+
+; http input encoding.
+mbstring.http_input = UTF-8
+
+; http output encoding. mb_output_handler must be
+; registered as output buffer to function
+;mbstring.http_output = SJIS
+
+; enable automatic encoding translation accoding to
+; mbstring.internal_encoding setting. Input chars are
+; converted to internal encoding by setting this to On.
+; Note: Do _not_ use automatic encoding translation for
+;       portable libs/applications.
+mbstring.encoding_translation = Off
+
+; automatic encoding detection order.
+; auto means
+mbstring.detect_order = UTF-8
+
+; substitute_character used when character cannot be converted
+; one from another
+;mbstring.substitute_character = none;
+
+; overload(replace) single byte functions by mbstring functions.
+; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(),
+; etc. Possible values are 0,1,2,4 or combination of them.
+; For example, 7 for overload everything.
+; 0: No overload
+; 1: Overload mail() function
+; 2: Overload str*() functions
+; 4: Overload ereg*() functions
+;mbstring.func_overload = 0
+
+[FrontBase]
+;fbsql.allow_persistent = On
+;fbsql.autocommit = On
+;fbsql.default_database =
+;fbsql.default_database_password =
+;fbsql.default_host =
+;fbsql.default_password =
+;fbsql.default_user = "_SYSTEM"
+;fbsql.generate_warnings = Off
+;fbsql.max_connections = 128
+;fbsql.max_links = 128
+;fbsql.max_persistent = -1
+;fbsql.max_results = 128
+;fbsql.batchSize = 1000
+
+[exif]
+; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
+; With mbstring support this will automatically be converted into the encoding
+; given by corresponding encode setting. When empty mbstring.internal_encoding
+; is used. For the decode settings you can distinguish between motorola and
+; intel byte order. A decode setting cannot be empty.
+;exif.encode_unicode = ISO-8859-15
+;exif.decode_unicode_motorola = UCS-2BE
+;exif.decode_unicode_intel    = UCS-2LE
+;exif.encode_jis =
+;exif.decode_jis_motorola = JIS
+;exif.decode_jis_intel    = JIS
+
+[Tidy]
+; The path to a default tidy configuration file to use when using tidy
+;tidy.default_config = /usr/local/lib/php/default.tcfg
+
+; Should tidy clean and repair output automatically?
+; WARNING: Do not use this option if you are generating non-html content
+; such as dynamic images
+tidy.clean_output = Off
+
+[soap]
+; Enables or disables WSDL caching feature.
+soap.wsdl_cache_enabled=1
+; Sets the directory name where SOAP extension will put cache files.
+soap.wsdl_cache_dir="/tmp"
+; (time to live) Sets the number of second while cached file will be used 
+; instead of original one.
+soap.wsdl_cache_ttl=86400
+
+; Local Variables:
+; tab-width: 4
+; End:

Added: sandbox/jng/cmake_v2/cmake/configs/serverconfig.ini.in
===================================================================
--- sandbox/jng/cmake_v2/cmake/configs/serverconfig.ini.in	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/configs/serverconfig.ini.in	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,624 @@
+# *****************************************************************************
+# MapGuide Server Configuration File
+#
+# The following configuration is based on a single CPU with a single core.
+#
+# WARNING: BE VERY CAREFUL WHEN MODIFYING THIS FILE AS IT COULD
+#          ADVERSLY IMPACT SERVER PERFORMANCE
+#
+# When saving this file use a UTF-8 encoding.
+#
+# *****************************************************************************
+# COMMON VALIDATION INFORMATION
+#
+# (Unless otherwise noted under the property description)
+# -----------------------------------------------------------------------------
+# String Property                  Range of String Length   Reserved Characters
+# -----------------------------------------------------------------------------
+# File Name                        0 <  Length <= 128       \/:*?"<>|
+# Folder Name                      0 <  Length <= 128       \/:*?"<>|
+# Log Parameters                   0 <= Length <= 1024
+# Password                         0 <= Length <= 64        \t\r\n\v\f
+# Path                             0 <  Length <= 255       *?"<>|
+# -----------------------------------------------------------------------------
+# Numeric Property                 Range of Numeric Value
+# -----------------------------------------------------------------------------
+# Port Number                      0 <= Value <= 65535
+# *****************************************************************************
+
+[GeneralProperties]
+# *****************************************************************************
+# G E N E R A L
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# ConnectionTimeout                Time duration in seconds for when an idle
+#                                  connection is dropped
+#                                       0 < Value <= 86400
+# ConnectionTimerInterval          Time interval in seconds for when the server
+#                                  checks for idle connections
+#                                       0 < Value <= 2147483647
+# DefaultMessageLocale             ISO 639-1 name for the message locale
+#                                       Length = 2
+#                                       Example: en
+# DisplayName                      Display name of the server
+#                                       0 <= Length <= 255
+#                                       Reserved Characters: \/:*?"<>|
+# FdoPath                          Path where FDO is installed
+# LicenseServerPath                The path to the License server (not used by MapGuide Open Source)
+#                                       0 <= Length <= 255
+# LinuxFontDirectories             A colon-separated (:) list of directories to search for additional fonts on Linux
+#                                  Has no effect on Windows
+# Locale                           The server's locale. If left blank it will default to the operating system locale
+#                                       0 <= Length <= 255
+#                                       Format           : lang[_country_region.code_page]
+#                                       Example (Windows): English_United States.1252
+#                                       Example Linux)   : en_US.iso88591
+# LogsDelimiter                    Delimiter that separates the data fields in
+#                                  the log files
+# LogsDetail                       Level of logging detail per service
+#                                       0 - Errors without parameters (default)
+#                                       1 - Warnings and Errors with parameters
+#                                       2 - Trace, Warnings, and Errors
+#                                       3 - Internal Trace, Trace, Warnings, and Errors
+#                                       Service keys: ResourceService, DrawingService, FeatureService, MappingService,
+#                                           RenderingService, TileService, KmlService, ServerAdminService, SiteService
+#                                       Example: MappingService:3,FeatureService:1
+# LogsPath                         Path where log files are stored
+# MachineIp                        IP address of this server
+#                                       0 < Length <= 255
+# MaxLogFileSize                   Max size allowed for the log files in
+#                                  kilobytes (KB)
+#                                       0 < Value <= 2000000
+# MaxLogFileSizeEnabled            0 = max size disabled, 1 = max size enabled
+# MentorDictionaryPath             The path where the CS-Map Coordinate System Dictionaries are installed
+# MentorUserDictionaryPath         The path where user defined CS-Map Coordinate System Dictionaries are stored
+# PreCacheMaps                     The list of maps to precache at server startup.
+#                                       Value = Map resource name(s) separated by ","
+#                                       Example: Library://Samples/Sheboygan/Maps/Sheboygan.MapDefinition
+# Renderer                         Image renderer to use (GD or AGG)
+# ResourcesPath                    Path where the localization resource files are stored
+# SerialNumber                     The MapGuide Server serial number (not used by MapGuide Open Source)
+#                                       0 <= Length <= 12
+# TcpIpMtu                         TCP/IP maximum transmission unit
+#                                       0 < Value <= 65535
+# TempPath                         Path where the temporary files are stored
+# WfsDocumentPath                  Document path location for WFS documents
+# WmsDocumentPath                  Document path location for WMS documents
+# *****************************************************************************
+ConnectionTimeout                  = 120
+ConnectionTimerInterval            = 60
+DefaultMessageLocale               = en
+DisplayName                        =
+FdoPath                            = @FDO_LIBRARY_DIR@
+LicenseServerPath                  = @localhost
+LinuxFontDirectories               = /usr/share/fonts/truetype/msttcorefonts:/usr/share/fonts/msttcore
+Locale                             =
+LogsDelimiter                      = \t
+LogsDetail                         =
+LogsPath                           = @MG_INSTALL_SERVER_PREFIX@/Logs/
+MachineIp                          = 127.0.0.1
+MaxLogFileSize                     = 1024
+MaxLogFileSizeEnabled              = 0
+MentorDictionaryPath               = @MG_INSTALL_COORDSYS_PREFIX@
+MentorUserDictionaryPath           =
+PreCacheMaps                       =
+Renderer                           = AGG
+ResourcesPath                      = @MG_INSTALL_SERVER_PREFIX@/Resources/
+SerialNumber                       =
+TcpIpMtu                           = 1460
+TempPath                           = @MG_INSTALL_SERVER_PREFIX@/Temp/
+WfsDocumentPath                    = @MG_INSTALL_SERVER_PREFIX@/Wfs/
+WmsDocumentPath                    = @MG_INSTALL_SERVER_PREFIX@/Wms/
+
+[AdministrativeConnectionProperties]
+# *****************************************************************************
+# A D M I N I S T R A T I V E  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Email                            Server administrator's email address
+#                                       0 <= Length <= 255
+# MaxConnections                   Max # of open administration connections
+#                                       0 < Value <= 1024
+# Port                             Port to use for administration operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the web tier configuration
+#                                           file.
+#
+# QueueSize                        Max # of administration operations to queue
+#                                       0 < Value <= 1024
+# ThreadPoolSize                   # of threads available for processing
+#                                  administration operations
+#                                       0 < Value <= 1024
+# *****************************************************************************
+Email                              =
+MaxConnections                     = 10
+Port                               = 2810
+QueueSize                          = 20
+ThreadPoolSize                     = 10
+
+[ClientConnectionProperties]
+# *****************************************************************************
+# C L I E N T  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# MaxConnections                   Max # of open client connections
+#                                       0 < Value <= 1024
+# Port                             Port to use for client operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the web tier configuration
+#                                           file.
+#
+# QueueSize                        Max # of client operations to queue
+#                                       0 < Value <= 1024
+# ThreadPoolSize                   # of threads available for processing
+#                                  client operations
+#                                       0 < Value <= 1024
+# *****************************************************************************
+MaxConnections                     = 100
+Port                               = 2811
+QueueSize                          = 40
+ThreadPoolSize                     = 20
+
+[SiteConnectionProperties]
+# *****************************************************************************
+# S I T E  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# IpAddress                        IP address of the site server. This is typically 
+#                                  the address of this server and matches the 
+#                                  MachineIp given above.
+#                                       0 < Length <= 255
+# MaxConnections                   Max # of open site connections
+#                                       0 < Value <= 1024
+# Port                             Port to use for site operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the web tier configuration
+#                                           file.
+#
+# QueueSize                        Max # of site operations to queue
+#                                       0 < Value <= 1024
+# ThreadPoolSize                   # of threads available for processing
+#                                  site operations
+#                                       0 < Value <= 1024
+# *****************************************************************************
+IpAddress                          = 127.0.0.1
+MaxConnections                     = 20
+Port                               = 2812
+QueueSize                          = 20
+ThreadPoolSize                     = 10
+
+[HostProperties]
+# *****************************************************************************
+# H O S T
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# DrawingService                   0 = service unavailable, 1 = service available
+# FeatureService                   0 = service unavailable, 1 = service available
+# KmlService                       0 = service unavailable, 1 = service available
+# MappingService                   0 = service unavailable, 1 = service available
+# RenderingService                 0 = service unavailable, 1 = service available
+# ResourceService                  0 = service unavailable, 1 = service available
+# SiteService                      0 = service unavailable, 1 = service available
+# TileService                      0 = service unavailable, 1 = service available
+# *****************************************************************************
+DrawingService                     = 1
+FeatureService                     = 1
+KmlService                         = 1
+MappingService                     = 1
+RenderingService                   = 1
+ResourceService                    = 1
+SiteService                        = 1
+TileService                        = 1
+
+[DrawingServiceProperties]
+# *****************************************************************************
+# D R A W I N G  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# *****************************************************************************
+
+[FeatureServiceProperties]
+# *****************************************************************************
+# F E A T U R E  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# CacheSize                        Max # of internal data objects to cache
+#                                  (schemas, classes, etc...)
+#                                       0 < Value <= 5000
+# CacheTimeLimit                   Time duration in seconds for how long to
+#                                  cache the internal data objects
+#                                       0 < Value <= 2147483647
+# CacheTimerInterval               Time interval in seconds for when the server
+#                                  checks for expired cache entries
+#                                       0 < Value <= 2147483647
+# DataCacheSize                    Max # of features to fetch
+#                                       0 < Value <= 2147483647
+# DataConnectionPoolEnabled        FDO connection pooling
+#                                       0 = disabled, 1 = enabled
+# DataConnectionPoolExcludedProviders  The list of providers to exclude from connection pooling.
+#                                       0 <= Length <= 1024
+#                                       Value = provider name(s) separated by ","
+#                                       Example: OSGeo.SDF,OSGeo.SHP
+# DataConnectionPoolSize           Default # of FDO connections to cache per provider
+#                                       1 < Value <= 1024
+# DataConnectionPoolSizeCustom     Custom # of FDO connections to cache for specified provider
+#                                       0 <= Length <= 1024
+#                                       Example: OSGeo.SDF:10,OSGeo.SHP:10
+# DataConnectionTimeout            Time duration in seconds for when an idle FDO
+#                                  connection is dropped
+#                                       0 < Value <= 2147483647
+# DataConnectionTimerInterval      Time interval in seconds for when the server
+#                                  checks for idle FDO connections
+#                                       0 < Value <= 2147483647
+# JoinQueryBatchSize               Join query batch size
+#                                       1 < Value <= 10000
+# DataTransactionTimeout          Time duration in seconds for when an idle FDO
+#                                  transaction is dropped
+#                                       0 < Value <= 1800
+# DataTransactionTimerInterval  Time interval in seconds for when the server
+#                                  checks for idle FDO transactions
+#                                       0 < Value <= 1800
+# FDOConnectionTimeoutCustom    Time duration in seconds for an FDO connection
+#                                       0 < Value <= 600
+# UseFdoJoinOptimization        Determines whether to use FDO Join APIs for feature joins between 
+#                               classes from the same Feature Source for FDO providers that support it
+#                               1 = Use FDO Join APIs if possible, 0 = Fallback to GwsQueryEngine
+# *****************************************************************************
+CacheSize                          = 100
+CacheTimeLimit                     = 86400
+CacheTimerInterval                 = 3600
+DataCacheSize                      = 100
+DataConnectionPoolEnabled          = 1
+DataConnectionPoolExcludedProviders= OSGeo.SDF,OSGeo.SHP
+DataConnectionPoolSize             = 200
+DataConnectionPoolSizeCustom       = OSGeo.Gdal:1
+DataConnectionTimeout              = 28800
+DataConnectionTimerInterval        = 3600
+JoinQueryBatchSize                 = 1000
+DataTransactionTimeout             = 360
+DataTransactionTimerInterval       = 60
+FDOConnectionTimeoutCustom         = OSGeo.WMS:120
+UseFdoJoinOptimization             = 1
+
+[MappingServiceProperties]
+# *****************************************************************************
+# M A P P I N G  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# LegendFont                       Font to use when rendering legend elements
+#                                       0 < Length <= 255
+# *****************************************************************************
+LegendFont                         = Arial
+
+[ProfilingServiceProperties]
+# *****************************************************************************
+# P R O F I L I N G S E R V I C E  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+#                                                                               
+#                                                                               
+# *****************************************************************************
+
+[RenderingServiceProperties]
+# *****************************************************************************
+# R E N D E R I N G  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# TileExtentOffset                 Max request extent offset to use when
+#                                  requesting features for a tile, specified as
+#                                  a factor of the tile size
+#                                       0.0 <= Value <= 1.0
+# RasterGridSize                   Size of raster re-projection grid in pixels
+#                                       0 < Value <= 2147483647
+# MinRasterGridSize                Minimum size of raster re-projection grid in
+#                                  pixels. This should be less than RasterGridSize.
+#                                       0 < Value <= 2147483647
+# RasterGridSizeOverrideRatio      If the RasterGridSize is larger than the
+#                                  image's height or width multiplied by the
+#                                  RasterGridSizeOverrideRatio, then the
+#                                  RasterGridSize is overridden with this value.
+#                                  Set to 0 or 1 to disable the override.
+#                                       0.0 <= Value <= 1.0
+# RasterGridSizeForPlot            Size of raster re-projection grid in pixels
+#                                  for plot
+# MinRasterGridSizeForPlot         Minimum size of raster re-projection grid in
+#                                  pixels for plot. This must be less than
+#                                  RasterGridSizeForPlot.
+# RasterGridSizeOverrideRatioForPlot If the RasterGridSizeForPlot is larger than the
+#                                  image's height or width multiplied by the
+#                                  RasterGridSizeOverrideRatioForPlot, then the
+#                                  RasterGridSizeForPlot is overridden with this
+#                                  value.
+#                                  Change this setting to 1 to disable the
+#                                  override.
+# RenderSelectionBatchSize         The batch size to use when rendering a selection
+# ClampPoints                      Specifies whether point coordinates are clamped
+#                                  to integer values before passing them to the
+#                                  AGG renderer (experimental)
+#                                       0 = false and 1 = true
+# GeneralizeData                   Specifies whether feature geometry is generalized
+#                                  before being rendered (experimental)
+#                                       0 = false and 1 = true
+# MaxRasterImageWidth              The max width of raster image in pixels 
+#                                       0 < Value <= 2147483647
+# MaxRasterImageHeight             The max height of raster image in pixels 
+#                                       0 < Value <= 2147483647
+# *****************************************************************************
+TileExtentOffset                   = 0.35
+RasterGridSize                     = 100
+MinRasterGridSize                  = 10
+RasterGridSizeOverrideRatio        = 0.25
+RasterGridSizeForPlot              = 50
+MinRasterGridSizeForPlot           = 5
+RasterGridSizeOverrideRatioForPlot = 0.10
+RenderSelectionBatchSize           = 50000
+ClampPoints                        = 0
+GeneralizeData                     = 0
+MaxRasterImageWidth                = 2048
+MaxRasterImageHeight               = 2048
+
+[ResourceServiceProperties]
+# *****************************************************************************
+# R E S O U R C E  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# LibraryRepositoryPath            Path where the Library repository is stored
+# LibraryResourceDataFilePath      Path where the Library resource data files
+#                                  are stored
+# PackagesPath                     Path where the resource packages can be found
+# RepositoryCheckpointsTimerInterval Time duration in seconds for when the server
+#                                  performs checkpoints for all the repositories
+#                                       0 < Value <= 2147483647
+# ResourceChangeTimerInterval      Time duration in seconds for when the server
+#                                  dispatches resource change notifications
+#                                       0 < Value <= 2147483647
+# ResourceDataFileTrashFolderName  Folder where the repository trash files are
+#                                  stored
+# ResourcePermissionCacheSize      Max # of resources with permission
+#                                  information to be cached
+#                                       0 <= Value <= 2147483647
+# ResourceSchemaFilePath           Path where the resource schema files are
+#                                  stored
+# SessionRepositoriesConfig        Sets whether to use a single file session 
+#                                  repository or a session repository file per session.
+#                                       SingleFile or FilePerSession
+# SessionRepositoriesLimit         The total number of active session files allowed.
+#                                  This setting only works when FilePerSession
+#                                  is used.
+# SessionRepositoryPath            Path where the Session repository is stored
+# SessionResourceDataFilePath      Path where the Session resource data files
+#                                  are stored
+# SiteRepositoryPath               Path where the Site repository is stored
+# *****************************************************************************
+LibraryRepositoryPath              = @MG_INSTALL_SERVER_PREFIX@/Repositories/Library/
+LibraryResourceDataFilePath        = @MG_INSTALL_SERVER_PREFIX@/Repositories/Library/DataFiles/
+PackagesPath                       = @MG_INSTALL_SERVER_PREFIX@/Packages/
+RepositoryCheckpointsTimerInterval = 600
+ResourceChangeTimerInterval        = 5
+ResourceDataFileTrashFolderName    = @MG_INSTALL_SERVER_PREFIX@/Trash/
+ResourcePermissionCacheSize        = 1000
+ResourceSchemaFilePath             = @MG_INSTALL_SERVER_PREFIX@/Schema/
+SessionRepositoriesConfig          = FilePerSession
+SessionRepositoriesLimit           = 200
+SessionRepositoryPath              = @MG_INSTALL_SERVER_PREFIX@/Repositories/Session/
+SessionResourceDataFilePath        = @MG_INSTALL_SERVER_PREFIX@/Repositories/Session/DataFiles/
+SiteRepositoryPath                 = @MG_INSTALL_SERVER_PREFIX@/Repositories/Site/
+
+[SiteServiceProperties]
+# *****************************************************************************
+# S I T E  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# SessionTimeout                   Time duration in seconds for when an idle
+#                                  session is expired
+#                                       0 < Value <= 86400
+# SessionTimerInterval             Time interval in seconds for when the server
+#                                  checks for idle sessions
+#                                       0 < Value <= 2147483647
+# *****************************************************************************
+SessionTimeout                     = 1200
+SessionTimerInterval               = 400
+
+[TileServiceProperties]
+# *****************************************************************************
+# T I L E  S E R V I C E
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# RenderOnly                       Renders the tile only
+#                                       0 = false and 1 = true
+# TileCachePath                    Root path of the image tile cache
+# TileColumnsPerFolder             Number of columns of tiles per folder
+#                                       0 < Value <= 1000
+# TileRowsPerFolder                Number of rows of tiles per folder
+#                                       0 < Value <= 1000
+# DefaultTileSizeX                 Width of generated tiles in pixels
+#                                       50 < value <= 10000
+# DefaultTileSizeY                 Height of generated tiles in pixels
+#                                       50 < value <= 10000
+# ImageFormat                      Image format for generated tiles
+#                                       PNG, PNG8, GIF or JPG
+# *****************************************************************************
+RenderOnly                         = 0
+TileCachePath                      = @MG_INSTALL_SERVER_PREFIX@/Repositories/TileCache/
+TileColumnsPerFolder               = 30
+TileRowsPerFolder                  = 30
+DefaultTileSizeX                   = 300
+DefaultTileSizeY                   = 300
+ImageFormat                        = PNG
+
+[AccessLogProperties]
+# *****************************************************************************
+# A C C E S S  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 1
+Filename                           = "Access.log"
+Parameters                         = CLIENT,CLIENTIP,USER,OPID
+
+[AdminLogProperties]
+# *****************************************************************************
+# A D M I N  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 1
+Filename                           = "Admin.log"
+Parameters                         = CLIENT,CLIENTIP,USER,OPID
+
+[AuthenticationLogProperties]
+# *****************************************************************************
+# A U T H E N T I C A T I O N  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 1
+Filename                           = "Authentication.log"
+Parameters                         = CLIENT,CLIENTIP,USER
+
+[ErrorLogProperties]
+# *****************************************************************************
+# E R R O R  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 1
+Filename                           = "Error.log"
+Parameters                         = CLIENT,CLIENTIP,USER,ERROR,STACKTRACE
+
+[PerformanceLogProperties]
+# *****************************************************************************
+# P E R F O R M A N C E   L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# Interval                         Time interval in seconds for when the server
+#                                  writes the performance information to the log
+# *****************************************************************************
+Enabled                            = 0
+Filename                           = "Performance.log"
+Parameters                         = ADMINOPQCOUNT,CLIENTOPQCOUNT,SITEOPQCOUNT,AVGOPTIME,CPU,WORKINGSET,VIRTUALMEMORY,TOTALOPTIME,TOTALACTIVECONNECTIONS,TOTALCONNECTIONS,TOTALPROCESSEDOP,TOTALRECEIVEDOP,UPTIME, CACHESIZE, CACHEDROPPEDENTRIES
+Interval                           = 300
+
+[SessionLogProperties]
+# *****************************************************************************
+# S E S S I O N  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 0
+Filename                           = "Session.log"
+Parameters                         = CLIENT,CLIENTIP,USER,STARTTIME,ENDTIME,OPSFAILED,OPSRECEIVED,AVERAGEOPTIME
+
+[TraceLogProperties]
+# *****************************************************************************
+# T R A C E  L O G
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# Enabled                          0 = log disabled, 1 = log enabled
+# Filename                         Name of the log file
+# Parameters                       Log parameters
+# *****************************************************************************
+Enabled                            = 0
+Filename                           = "Trace.log"
+Parameters                         = INFO
+
+[FontAliases]
+# *****************************************************************************
+# F O N T  A L I A S E S
+# This section is used to map a font family name to another.  The left side
+# is a name that might be specified by the user and the right side is what
+# font to actually use.
+# *****************************************************************************
+MS ゴシック = MS Gothic
+MS Pゴシック = MS PGothic
+MS 明朝 = MS Mincho
+MS P明朝 = MS PMincho
+굴림 = Gulim
+굴림체 = GulimChe
+돋움 = Dotum
+돋움체 = DotumChe
+바탕 = Batang
+바탕체 = BatangChe
+궁서 = Gungsuh
+궁서체 = GungsuhChe
+
+[UnmanagedDataMappings]
+# *****************************************************************************
+# U N M A N A G E D  D A T A  M A P P I N G S
+# This section is used to map a mapping name to an unmanaged data folder.
+# *****************************************************************************
+
+[DBEnvironmentProperties]
+# *****************************************************************************
+# DB ENVIRONMENT
+# This section is to set DB Environment. Determine the best sizes to improve the Server performance.
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# LibraryCacheSize                 The size for library cache size in MB
+# SessionCacheSize                 The size for session cache size in MB
+# DBPageSize                       The size for library DB page in KB
+# DBXMLPageSize                    The size for library DBXML page in KB
+# LibraryLogBufferSize             The size for library log buffer in MB
+# SessionLogBufferSize             The size for session log buffer in MB
+# DBMaxTransactions                The max number of DB transactions
+# SessionDBPageSize                The size for session DB page in KB
+# SessionDBXMLPageSize             The size for session DBXML page in KB
+# DBTimeout                        The time out for lock and transaction in second
+# DBMaxLockers                     The max number of DB lockers
+# *****************************************************************************
+LibraryCacheSize                   = 32
+SessionCacheSize                   = 2
+DBPageSize                         = 32
+DBXMLPageSize                      = 32
+LibraryLogBufferSize               = 12
+SessionLogBufferSize               = 1
+DBMaxTransactions                  = 1000
+SessionDBPageSize                  = 2
+SessionDBXMLPageSize               = 0.5
+DBTimeout                          = 0.2
+DBMaxLockers                       = 1000

Added: sandbox/jng/cmake_v2/cmake/configs/webconfig.ini.in
===================================================================
--- sandbox/jng/cmake_v2/cmake/configs/webconfig.ini.in	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/configs/webconfig.ini.in	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,198 @@
+# *****************************************************************************
+# MapGuide Web Configuration File
+#
+# WARNING: BE VERY CAREFUL WHEN MODIFYING THIS FILE AS IT COULD
+#          ADVERSLY IMPACT SERVER PERFORMANCE
+# *****************************************************************************
+# COMMON VALIDATION INFORMATION
+#
+# (Unless otherwise noted under the property description)
+# -----------------------------------------------------------------------------
+# String Property                  Range of String Length   Reserved Characters
+# -----------------------------------------------------------------------------
+# File Name                        0 <  Length <= 128       \/:*?"<>|
+# Folder Name                      0 <  Length <= 128       \/:*?"<>|
+# Log Parameters                   0 <= Length <= 1024
+# Password                         0 <= Length <= 64        \t\r\n\v\f
+# Path                             0 <  Length <= 255       *?"<>|
+# -----------------------------------------------------------------------------
+# Numeric Property                 Range of Numeric Value
+# -----------------------------------------------------------------------------
+# Port Number                      0 <= Value <= 65535
+# *****************************************************************************
+
+[GeneralProperties]
+# *****************************************************************************
+# G E N E R A L
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# DefaultMessageLocale             ISO 639-1 name for the message locale
+#                                       Length = 2
+#                                       Example: en
+#                                  or
+#                                       Length = 5
+#                                       Example: en-US
+#
+#                                  WARNING: if a 5 character locale is specified
+#                                           the first 2 characters must be lower
+#                                           case and the last 2 characters must
+#                                           be upper case.
+#
+# LogsPath                         Path where log files are stored 
+# MentorDictionaryPath             The path where the CS-Map Coordinate System Dictionaries are installed
+# ResourcesPath                    Path where the localization resource files are stored
+# TcpIpMtu                         The TCP/IP maximum transmission unit
+#                                       0 < Value <= 65535
+# TempPath                         Path where the temporary files are stored
+# FailoverRetryTime                Time in seconds for when to retry connecting
+#                                  to a MapGuide server that has gone offline.
+#                                  Note: For a single Web Tier and MapGuide server 
+#                                        pair use 1. For a load balanced 
+#                                        configuration with multiple MapGuide 
+#                                        servers use 60. Values other than 1 will 
+#                                        cause a delay when re-establishing a 
+#                                        connection with the Web Tier after 
+#                                        restarting a MapGuide server.
+#
+# *****************************************************************************
+DefaultMessageLocale               = en
+LogsPath                           = @MG_WWWROOT@/Logs/
+MentorDictionaryPath               = @MG_INSTALL_COORDSYS_PREFIX@
+ResourcesPath                      = @MG_WWWROOT@/Resources/
+TcpIpMtu                           = 1460
+TempPath                           = @MG_WWWROOT@/Temp/
+FailoverRetryTime                  = 1
+
+[AdministrativeConnectionProperties]
+# *****************************************************************************
+# A D M I N I S T R A T I V E  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# MaxConnections                   The maximum allowed concurrent connections for this port.
+#                                  Default value of 2 is for a typical load when the web 
+#                                  is connected to a quad core server machine.
+#
+# Port                             The port to use for administration operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the server configuration
+#                                           file.
+#
+# *****************************************************************************
+MaxConnections                     = 2
+Port                               = 2810
+
+[ClientConnectionProperties]
+# *****************************************************************************
+# C L I E N T  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# MaxConnections                   The maximum allowed concurrent connections for this port.
+#                                  Default value of 12 is for a typical load when the web 
+#                                  is connected to a quad core server machine.
+#
+# Port                             The port to use for client operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the server configuration
+#                                           file.
+#
+# *****************************************************************************
+MaxConnections                     = 12
+Port                               = 2811
+
+[SiteConnectionProperties]
+# *****************************************************************************
+# S I T E  C O N N E C T I O N
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# IpAddress                        The IP address of the site server
+#                                       0 < Length <= 255
+#
+# MaxConnections                   The maximum allowed concurrent connections for this port.
+#                                  Default value of 6 is for a typical load when the web 
+#                                  is connected to a quad core server machine.
+#
+# Port                             The port to use for site operations
+#
+#                                  WARNING: If you change the port # here you
+#                                           must also change the corresponding
+#                                           port # for the server configuration
+#                                           file.
+#
+# *****************************************************************************
+IpAddress                          = 127.0.0.1
+MaxConnections                     = 6
+Port                               = 2812
+
+[AgentProperties]
+# *****************************************************************************
+# M A P  A G E N T
+#
+# Property Name                     Description
+# -----------------------------------------------------------------------------
+# DebugPause                       Number of seconds the agent pauses before
+#                                  each request, for debugging purpose
+#                                       0 <= Value <= 86400
+# DisableAuthoring                 Disables Authoring HTTP requests
+#                                       0 = false and 1 = true
+# DisableWfs                       Disables OGC Wfs HTTP requests
+#                                       0 = false and 1 = true
+# DisableWms                       Disables OGC Wms HTTP requests
+#                                       0 = false and 1 = true
+# ErrorLogEnabled                  0 = log disabled, 1 = log enabled  
+# ErrorLogFilename                 Name of the log file  
+# RequestLogEnabled                0 = log disabled, 1 = log enabled  
+# RequestLogFilename               Name of the log file  
+# *****************************************************************************
+DebugPause                         = 0
+DisableAuthoring                   = 0
+DisableWfs                         = 0
+DisableWms                         = 0
+ErrorLogEnabled                    = 0
+ErrorLogFilename                   = Error.log
+RequestLogEnabled                  = 0
+RequestLogFilename                 = Request.log
+
+[OgcProperties]
+# *****************************************************************************
+# O G C  S E T T I N G S
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# WfsPassword                      Password to be used for credentials in WFS
+#                                  requests
+# WmsPassword                      Password to be used for credentials in WMS
+#                                  requests
+# CITEWfsEnabled                   Enable OGC CITE Test for WFS 
+#                                  Consider unknown requests as OGC Wfs HTTP requests
+#                                        0 = false and 1 = true
+# CITEWmsEnabled                   Enable OGC CITE Test for WMS 
+#                                  Consider unknown requests as OGC Wms HTTP requests
+#                                        0 = false and 1 = true
+# *****************************************************************************
+WfsPassword                        = wfs
+WmsPassword                        = wms
+CITEWfsEnabled                     = 0
+CITEWmsEnabled                     = 0
+
+[WebApplicationProperties]
+# *****************************************************************************
+# W E B   A P P L I C A T I O N   S E T T I N G S
+#
+# Property Name                    Description
+# -----------------------------------------------------------------------------
+# TemplateRootFolder               The root folder containing the viewer
+#                                  templates
+# WidgetInfoFolder                 The folder containing widget info files
+# ContainerInfoFolder              The folder containing container info files
+# *****************************************************************************
+TemplateRootFolder                 = @MG_WWWROOT@/fusion/templates/mapguide
+WidgetInfoFolder                   = @MG_WWWROOT@/fusion/widgets/widgetinfo
+ContainerInfoFolder                = @MG_WWWROOT@/fusion/containerinfo

Added: sandbox/jng/cmake_v2/cmake/modules/FindLinuxApt.cmake
===================================================================
--- sandbox/jng/cmake_v2/cmake/modules/FindLinuxApt.cmake	                        (rev 0)
+++ sandbox/jng/cmake_v2/cmake/modules/FindLinuxApt.cmake	2018-01-09 07:23:31 UTC (rev 9293)
@@ -0,0 +1,32 @@
+# FindDbXml.cmake
+#
+# Looks for HTTPD/PHP headers and supporting libraries. If none found, the internal copy
+# is built and the check is done again
+#
+# This module defines (if found, or found after build):
+#
+# PHP_INCLUDE_DIR - The PHP headers
+# HTTPD_INCLUDE_DIR - The HTTPD headers
+
+message(STATUS "Checking for PHP in ${MG_OEM_WORK_DIR}/LinuxApt/php-${PHP_VER}")
+message(STATUS "Checking for HTTPD in ${MG_OEM_WORK_DIR}/LinuxApt/httpd-${HTTPD_VER}")
+
+find_path(PHP_INCLUDE_DIR
+    NAMES "Zend/zend_API.h" 
+    PATHS ${MG_OEM_WORK_DIR}/LinuxApt/php-${PHP_VER})
+
+find_path(HTTPD_INCLUDE_DIR
+    NAMES "include/ap_config.h" 
+    PATHS ${MG_OEM_WORK_DIR}/LinuxApt/httpd-${HTTPD_VER})
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set LinuxApt_FOUND to TRUE if 
+# all listed variables are TRUE
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LinuxApt DEFAULT_MSG PHP_INCLUDE_DIR HTTPD_INCLUDE_DIR)
+
+if (LinuxApt_FOUND)
+    message(STATUS "Found PHP: ${PHP_INCLUDE_DIR}")
+    message(STATUS "Found HTTPD: ${HTTPD_INCLUDE_DIR}")
+endif (LinuxApt_FOUND)
+
+mark_as_advanced(PHP_INCLUDE_DIR HTTPD_INCLUDE_DIR)
\ No newline at end of file

Modified: sandbox/jng/cmake_v2/cmake_build.sh
===================================================================
--- sandbox/jng/cmake_v2/cmake_build.sh	2018-01-09 05:26:15 UTC (rev 9292)
+++ sandbox/jng/cmake_v2/cmake_build.sh	2018-01-09 07:23:31 UTC (rev 9293)
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+MG_INST_PREFIX=/usr/local/mapguideopensource-3.3.0
 CMAKE_BUILD_DIR=~/mapguide_build_area
 OEM_WORK_DIR=~/mapguide_oem_build
 BUILD_CPU=32
@@ -116,38 +117,133 @@
     cp -Rf Oem/dbxml ${OEM_WORK_DIR}/dbxml
     cd ${OEM_WORK_DIR}/dbxml
     if test $HAVE_SYSTEM_XERCES -eq 1; then
-        echo "Building DBXML with system-installed xerces"
+        echo "Building DBXML with system-installed xerces. Please wait"
         if test $BUILD_CONFIG == "Debug"; then
-            ./buildall.sh --enable-debug --with-xerces=/usr --have-system-xerces
+            ./buildall.sh --enable-debug --with-xerces=/usr --have-system-xerces 2>&1 | tee $OEM_WORK_DIR/dbxml_build.log
             check_build
         else
-            ./buildall.sh --with-xerces=/usr --have-system-xerces
+            ./buildall.sh --with-xerces=/usr --have-system-xerces 2>&1 | tee $OEM_WORK_DIR/dbxml_build.log
             check_build
         fi
     else
-        echo "Building DBXML with internal copy of xerces"
+        echo "Building DBXML with internal copy of xerces. Please wait"
         if test $BUILD_CONFIG == "Debug"; then
-            ./buildall.sh --enable-debug
+            ./buildall.sh --enable-debug 2>&1 | tee $OEM_WORK_DIR/dbxml_build.log
             check_build
         else
-            ./buildall.sh
+            ./buildall.sh 2>&1 | tee $OEM_WORK_DIR/dbxml_build.log
             check_build
         fi
     fi
 fi
 
-# TODO: LinuxApt should probably be built here too
+PHP_VER=5.6.23
+HTTPD_VER=2.4.18
+TC_VER=1.2.41
 
+HTTPD_PORT=8008
+TOMCAT_PORT=8009
+
+MG_INSTALL_WEB_PREFIX=$MG_INST_PREFIX/webserverextensions
+
+LA_WORKDIR=${OEM_WORK_DIR}/LinuxApt
+HTTPD_FAKE_INSTALL=${OEM_WORK_DIR}/HttpdFakeInstall
+HTTPD_WORKDIR=${LA_WORKDIR}/httpd-${HTTPD_VER}
+PHP_WORKDIR=${LA_WORKDIR}/php-${PHP_VER}
+TC_WORKDIR=${LA_WORKDIR}/tomcat-connectors-${TC_VER}-src
+
+if [ ! -d ${LA_WORKDIR} ]; then
+    mkdir -p $LA_WORKDIR
+fi
+
+# BOGUS: We have to build httpd twice
+# Once to install to a fake location so that PHP and TC have a valid apxs tool when we configure them for building
+# Second to re-configure httpd to install to the real location
+REBUILD_HTTPD_FOR_REAL=0
+
+echo "Checking if we need to build httpd"
+HAS_HTTPD=0
+if [ -d ${HTTPD_WORKDIR} ]; then
+    HAS_HTTPD=1
+fi
+echo "Checking if we need to build php"
+HAS_PHP=0
+if [ -d ${PHP_WORKDIR} ]; then
+    HAS_PHP=1
+fi
+echo "Checking if we need to build tomcat connector"
+HAS_TOMCAT_CONNECTOR=0
+if [ -d ${TC_WORKDIR} ]; then
+    HAS_TOMCAT_CONNECTOR=1
+fi
+echo "Has HTTPD: ${HAS_HTTPD}"
+echo "Has PHP: ${HAS_PHP}"
+echo "Has Tomcat Connector: ${HAS_TOMCAT_CONNECTOR}"
+if test $HAS_HTTPD -eq 0; then
+    cd $SOURCE_DIR/Oem/LinuxApt
+    echo "Extracting HTTPD tarballs"
+    tar -jxf httpd-${HTTPD_VER}.tar.bz2 -C ${LA_WORKDIR}
+    tar -jxf httpd-${HTTPD_VER}-deps.tar.bz2 -C ${LA_WORKDIR}
+    cd ${HTTPD_WORKDIR}
+    echo "Configuring HTTPD (fake install)"
+    ./configure --prefix=${HTTPD_FAKE_INSTALL} --enable-mods-shared-all --with-included-apr --with-port=${HTTPD_PORT} 2>&1 | tee $OEM_WORK_DIR/configure_httpd_fake.log
+    check_build
+    echo "Building HTTPD. Please wait"
+    make 2>&1 | tee $OEM_WORK_DIR/make_httpd_fake.log
+    check_build
+    make install 2>&1 | tee $OEM_WORK_DIR/make_install_httpd_fake.log
+    check_build
+    REBUILD_HTTPD_FOR_REAL=1
+fi
+if test $HAS_PHP -eq 0; then
+    cd $SOURCE_DIR/Oem/LinuxApt
+    echo "Extracting PHP tarball"
+    tar -jxf php-${PHP_VER}.tar.bz2 -C ${LA_WORKDIR}
+    cd ${PHP_WORKDIR}
+    echo "Configuring PHP"
+    ./configure --prefix=${MG_INSTALL_WEB_PREFIX}/php --with-apxs2=${HTTPD_FAKE_INSTALL}/bin/apxs --with-openssl --with-curl --enable-xml --enable-wddx --enable-shared --with-zlib --enable-zip --enable-mbstring=all --with-xsl=/usr/lib --with-gd --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --with-freetype-dir=/usr/lib 2>&1 | tee $OEM_WORK_DIR/configure_php.log
+    check_build
+    echo "Building PHP. Please wait"
+    make 2>&1 | tee $OEM_WORK_DIR/make_php.log
+    check_build
+    REBUILD_HTTPD_FOR_REAL=1
+fi
+if test $HAS_TOMCAT_CONNECTOR -eq 0; then
+    cd $SOURCE_DIR/Oem/LinuxApt
+    echo "Extracting Tomcat Connector tarball"
+    tar -zxf tomcat-connectors-${TC_VER}-src.tar.gz -C ${LA_WORKDIR}
+    cd ${TC_WORKDIR}/native
+    echo "Configuring Tomcat Connector"
+    ./configure--with-apxs2=${HTTPD_FAKE_INSTALL}/bin/apxs 2>&1 | tee $OEM_WORK_DIR/configure_tc.log
+    check_build
+    echo "Building Tomcat Connector. Please wait"
+    make 2>&1 | tee $OEM_WORK_DIR/make_tc.log
+    check_build
+    REBUILD_HTTPD_FOR_REAL=1
+fi
+if test $REBUILD_HTTPD_FOR_REAL -eq 1; then
+    cd ${HTTPD_WORKDIR}
+    echo "Cleaning httpd"
+    make clean
+    check_build
+    echo "Configuring httpd (for real)"
+    ./configure --prefix=${MG_INSTALL_WEB_PREFIX}/apache2 --enable-mods-shared-all --with-included-apr --with-port=${HTTPD_PORT} 2>&1 | tee $OEM_WORK_DIR/configure_httpd_real.log
+    check_build
+    echo "Rebuilding httpd for real. Please wait"
+    make 2>&1 | tee $OEM_WORK_DIR/make_httpd_real.log
+    check_build
+fi
+
 # Now for the main event
 echo "Setting up CMake in: $CMAKE_BUILD_DIR"
 cd $CMAKE_BUILD_DIR
 if test $USE_NINJA -eq 1; then
-    cmake -G Ninja $SOURCE_DIR -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR
+    cmake -G Ninja $SOURCE_DIR -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DPHP_VER=${PHP_VER} -DHTTPD_VER=${HTTPD_VER} -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR
     check_build
     ninja
     check_build
 else
-    cmake $SOURCE_DIR -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR
+    cmake $SOURCE_DIR -DMG_CPU=$BUILD_CPU -DWITH_JAVA=TRUE -DPHP_VER=${PHP_VER} -DHTTPD_VER=${HTTPD_VER} -DCMAKE_BUILD_TYPE=$BUILD_CONFIG -DMG_OEM_WORK_DIR=$OEM_WORK_DIR
     check_build
     make
     check_build



More information about the mapguide-commits mailing list