Search notes:

XAMPP

Acronym

X Cross platform (as opposed to limiting it to L = Linux or W = Windows in LAMP/WAMP)
A Apache (webserver)
M MariaDB (which replaced MySQL in the year 2015)
P PHP
P Perl
Although the acronym explicitly references MariaDB, it also comes with SQLite.

Installing XAMPP

XAMPP can be downloaded as an archive file from https://sourceforge.net/projects/xampp/files/ and then be installed with little configuration.
After extracting the archive, .\setup_xampp.bat must be executed.

Chocolatey

Alternatively, XAMPP can also be installed with Chocolatey:
choco install -y bitnami-xampp
When trying to install XAMPP with Chocolatey, some user interaction is still required to let Windows Defender Firewall unblock some ports.
I am not sure if or how choco can be invoked so that this manual intervention is not necessary.
The installation root is C:\xampp. (So, for example, the httpd.conf file is found under C:\xampp\apache\conf).

Directory structure

Some interesting files and directories found under XAMPP's installation root seem to be:
ROOT
|   apache_start.bat                                             ' Start Apache Webserver (without starting MariaDB or or anything else)
|   apache_stop.bat
|   catalina_service.bat
|   catalina_start.bat
|   catalina_stop.bat
|   mysql_start.bat
|   mysql_stop.bat
|   passwords.txt
|   readme_de.txt
|   readme_en.txt
|   setup_xampp.bat                                              ' calls install/install.php
|   test_php.bat
|   xampp-control.exe
|   xampp-control.ini
|   xampp_start.exe
|   xampp_stop.exe
|   
+---apache                                                       ' The so-called server root of Apache
|   |   makecert.bat                                             ' Create apache/conf/ssl.crt/server.crt and apache/conf/ssl.key/server.key.
|   |   
|   +---bin
|   |   |   ab.exe
|   |   |   abs.exe
|   |   |   ApacheMonitor.exe
|   |   |   curl-ca-bundle.crt
|   |   |   curl.exe
|   |   |   dbmmanage.pl
|   |   |   htcacheclean.exe
|   |   |   htdbm.exe
|   |   |   htdigest.exe
|   |   |   htpasswd.exe
|   |   |   httpd.exe                                            ' THE Apache executable
|   |   |   httxt2dbm.exe
|   |   |   logresolve.exe
|   |   |   openssl.exe                                          ' The OpenSSL executable
|   |   |   pv.exe
|   |   |   rotatelogs.exe
|   |   |   wintty.exe
|   |   |   
|   |   \---iconv                                                ' Lots of shared objects *.so
|   |           
|   +---conf
|   |   |   charset.conv
|   |   |   httpd.conf                                           ' An Apache httpd.conf file
|   |   |   magic
|   |   |   mime.types
|   |   |   openssl.cnf
|   |   |   
|   |   +---extra
|   |   |       httpd-ajp.conf                                   ' AJP proxy
|   |   |       httpd-autoindex.conf                             ' Fancy directory listings
|   |   |       httpd-dav.conf                                   ' Distributed authoring and verioning (WebDAV). Security risk - uncommented in XAMPP by default
|   |   |       httpd-default.conf
|   |   |       httpd-info.conf                                  ' Real-time info on requests and configuration
|   |   |       httpd-languages.conf                             ' Language settings (mostly AddLanguage, LanguagePriority and AddCharset directives)
|   |   |       httpd-manual.conf                                ' Access Apache Server manual locally - uncommented in XAMPP by default
|   |   |       httpd-mpm.conf                                   ' MPM specific Server-pool management
|   |   |       httpd-multilang-errordoc.conf                    ' Multli-language error messages
|   |   |       httpd-proxy.conf                                 ' A proxy/gateway for Apache
|   |   |       httpd-ssl.conf                                   ' Provide SSL support.
|   |   |       httpd-userdir.conf
|   |   |       httpd-vhosts.conf                                ' Used to maintain multiple domains or hostnames.
|   |   |       httpd-xampp.conf                                 ' Included from apache/conf/httpd.conf
|   |   |       proxy-html.conf
|   |   |       
|   |   +---original                                             ' This directory *seems* to store the default files delivered with Apache
|   |   |           
|   |   +---ssl.crt
|   |   |       server.crt                                       ' The server certificate, it can be created with apache/makecert.bat
|   |   |       
|   |   +---ssl.csr
|   |   |       server.csr
|   |   |       
|   |   \---ssl.key
|   |           server.key                                       ' The server private key, it can be created with apache/makecert.bat 
|   |           
|   +---error
|   |   |   contact.html.var
|   |   |   HTTP_BAD_GATEWAY.html.var
|   |   |   HTTP_BAD_REQUEST.html.var
|   |   |   HTTP_FORBIDDEN.html.var
|   |   |   HTTP_GONE.html.var
|   |   |   HTTP_INTERNAL_SERVER_ERROR.html.var
|   |   |   HTTP_LENGTH_REQUIRED.html.var
|   |   |   HTTP_METHOD_NOT_ALLOWED.html.var
|   |   |   HTTP_NOT_FOUND.html.var
|   |   |   HTTP_NOT_IMPLEMENTED.html.var
|   |   |   HTTP_PRECONDITION_FAILED.html.var
|   |   |   HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|   |   |   HTTP_REQUEST_TIME_OUT.html.var
|   |   |   HTTP_REQUEST_URI_TOO_LARGE.html.var
|   |   |   HTTP_SERVICE_UNAVAILABLE.html.var
|   |   |   HTTP_UNAUTHORIZED.html.var
|   |   |   HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|   |   |   HTTP_VARIANT_ALSO_VARIES.html.var
|   |   |   README
|   |   |   XAMPP_FORBIDDEN.html.var
|   |   |   
|   |   \---include
|   |           bottom.html
|   |           spacer.html
|   |           top.html
|   |           
|   +---icons
|   |           
|   +---include
|   |       
|   +---lib
|   |       apr-1.lib
|   |       aprutil-1.lib
|   |       libapr-1.exp
|   |       libapr-1.lib
|   |       libapriconv-1.exp
|   |       libapriconv-1.lib
|   |       libaprutil-1.exp
|   |       libaprutil-1.lib
|   |       libhttpd.exp
|   |       libhttpd.lib
|   |       mod_dav.exp
|   |       mod_dav.lib
|   |       mod_proxy.lib
|   |       xml.lib
|   |       zlib.lib
|   |       
|   +---logs
|   |       access.log
|   |       error.log                                            ' The error log file for Apache
|   |       httpd.pid
|   |       install.log
|   |       ssl_request.log
|   |       
|   +---manual
|   |       docs.txt
|   |       
|   \---modules                                                  ' The directory that contains the shared objects for the Apache modules
|           
+---cgi-bin
|       cgi.cgi                                                  ' A Perl script in disguise. Prints OK.
|       perltest.cgi                                             ' CGI with MiniPerl
|       printenv.pl                                              ' A demo CGI program which just prints the set of environment variables.
|       
+---contrib
|   …
|       
+---FileZillaFTP
+---htdocs
|   |   applications.html
|   |   bitnami.css
|   |   favicon.ico
|   |   index.php                                                ' The file that is served by pointin a web browser to localhost after a fresh installation
|   |   
|   +---dashboard
|   |   +---de
|   |   |       faq.html
|   |   |       howto.html
|   |   |       howto_platform_links.html
|   |   |       howto_shared_links.html
|   |   |       index.html                                       ' The file that is (via HTTP-redirection) served when pointing the browser to http://localhost
|   |   |       
|   |   +---docs
|   |   |       …   
|   |
|   +---img
|   |       …
|   |       
|   +---webalizer
|   \---xampp
|           .modell
|           .modell-usb
|           .version                                             ' Contains the version of XAMPP(?)
|           
+---install
|       .version
|       awk.exe
|       config.awk
|       folder.ico
|       install.php                                              ' invoked from setup_xampp.bat
|       install.sys                                              ' Stores the installation status for XAMPP basic packages. Absent in fresh USB installation, created by install/install.php
|       php.png
|       portcheck.bat
|       portcheck.php
|       serverupdate.sys
|       test.php
|       xampp-icon-uninstall.ico
|       xampp.ico
|       xamppbasic.inc
|       xamppserver.inc
|       
+---licenses
|   |   …
|           
+---locale
|   +---<lang>
|               
+---MercuryMail
|   |   sqlite3.exe
|
+---mysql
|   |   COPYING
|   |   CREDITS
|   |   README.md
|   |   resetroot.bat
|   |   THIRDPARTY
|   |   
|   +---backup
|   |   |   aria_log.00000001
|   |   |   aria_log_control
|   |   |   ibdata1
|   |   |   ibtmp1
|   |   |   ib_buffer_pool
|   |   |   ib_logfile0
|   |   |   ib_logfile1
|   |   |   multi-master.info
|   |   |   my.ini
|   |   |   
|   |   +---mysql
|   |   +---phpmyadmin
|   |   \---test
|   |           
|   +---bin
|   |       *.dll
|   |       aria_chk.exe
|   |       aria_dump_log.exe
|   |       aria_ftdump.exe
|   |       aria_pack.exe
|   |       aria_read_log.exe
|   |       innochecksum.exe
|   |       libmariadb.dll
|   |       mariabackup.exe
|   |       mbstream.exe
|   |       my.ini
|   |       myisamchk.exe
|   |       myisamlog.exe
|   |       myisampack.exe
|   |       myisam_ftdump.exe
|   |       myrocks_hotbackup
|   |       mysql.exe
|   |       mysqladmin.exe
|   |       mysqlbinlog.exe
|   |       mysqlcheck.exe
|   |       mysqld.exe
|   |       mysqldump.exe
|   |       mysqldumpslow.pl
|   |       mysqld_multi.pl
|   |       mysqlhotcopy.pl
|   |       mysqlimport.exe
|   |       mysqlshow.exe
|   |       mysqlslap.exe
|   |       mysql_config.pl
|   |       mysql_convert_table_format.pl
|   |       mysql_install_db.exe
|   |       mysql_ldb.exe
|   |       mysql_plugin.exe
|   |       mysql_tzinfo_to_sql.exe
|   |       mysql_upgrade.exe
|   |       mysql_upgrade_service.exe
|   |       mysql_upgrade_wizard.exe
|   |       my_print_defaults.exe
|   |       perror.exe
|   |       replace.exe
|   |       sst_dump.exe
|   |       ucrtbase.dll
|   |       vcruntime140_1.dll
|   |       
|   +---data
|   |   |   aria_log.00000001
|   |   |   aria_log_control
|   |   |   ibdata1
|   |   |   ibtmp1
|   |   |   ib_buffer_pool
|   |   |   ib_logfile0
|   |   |   ib_logfile1
|   |   |   multi-master.info
|   |   |   my.ini
|   |   |   
|   |   +---mysql
|   |   |       
|   |   +---performance_schema
|   |   |       db.opt
|   |   |       
|   |   +---phpmyadmin
|   |   |       
|   |   \---test
|   |           db.opt
|   |           
|   \---share
|       |   
|       +---charsets
|
+---perl
|      …
|
+---php
|   |   CompatInfo.php
|   |   deplister.exe
|   |   news.txt
|   |   pci
|   |   pci.bat
|   |   pci.css
|   |   pciconf
|   |   pciconf.bat
|   |   pear.bat
|   |   peardev.bat
|   |   pecl.bat
|   |   phar.phar.bat
|   |   pharcommand.phar
|   |   php-cgi.exe
|   |   php-win.exe
|   |   php.exe
|   |   php.ini                                                  ' The initialization file for PHP with which PHP's behavior is configured.
|   |   php.ini-development
|   |   php.ini-production
|   |   phpdbg.exe
|   |   phpunit
|   |   phpunit.bat
|   |   readme-redist-bins.txt
|   |   README.md
|   |   snapshot.txt
|   |   webdriver-test-example.php
|   |   …
|   |       
|   +---pear                                                     ' This directory is in PHP's (default?) include path which is set in php.ini
|   |   …
|   |               
|   \---www
|
+---phpMyAdmin
+---sendmail
|   …
|           
|
+---tmp                                                          ' The tmp directory is needed by PHP for saving sessions.
+---tomcat
+---webalizer
\---webdav

See also

Using certificates with XAMPP.
Uniform Server

Index