microapache.png (24029 bytes)
Legacy Site Under Revision

Home

Tips and Tricks Page
Installation and Configuration
Monitoring Server Logs Using Tail
MicroApache MP3 Jukebox
MicroApache 2.2.x
Ultra-Micro 1.3.x
MicroApache for BartPE
MicroSQL
SQLite Database

Using MicroApache with Legacy Visual BASIC
Using MicroApache with Ch++

Frequently Asked Questions

MicroApache Update History
Frequently Asked Questions

Downloads

Licensing Information


This project is shared with the community at in good faith and at no cost and using whatever free time I have available. Sorry but I do not have time to give one-to-one support for Apache Webserver. If you use MicroApache then please link to this page or mention MicroApache! Please see the licensing conditions for each component


Downloads

NEW RELEASES!
April 2011

MicroApache 2.0.64

MicroApache 2.0.64 (no PHP)
ZIP format 515kb Unzipped

MicroApache 2.0.64+PHP 5.2.17
ZIP format 2.42Mb Unzipped

MicroApache 2.0.64+PHP 5.2.17
+GD2
ZIP format 2.76Mb Unzipped

MicroApache 2.0.64+PHP 5.2.17
MP3 Jukebox (+sample MP3)x
ZIP format 4.09mb ZIP file

2.0.64 - All SO Modules (as DLLs)
Compressed + ZIP Format (358kb)

MicroApache 2.0.64+PHP 5.2.17+SQLite
ZIP format 2.79Mb Unzipped

PHP Test Program
SQLite guestbook


MicroApache 2.0.63

MicroApache 2.0.63 (no PHP)
ZIP format 510kb Unzipped

MicroApache 2.0.63+PHP 4.4.9
ZIP format 1.04Mb Unzipped

MicroApache 2.0.63+PHP 4.4.9+GD2
ZIP format 1.34Mb Unzipped

MicroApache 2.0.63+PHP 4.4.9+SQLite
ZIP format 1.37Mb Unzipped

MicroApache 2.0.63+PHP 5.2.9
ZIP format 2.41Mb Unzipped

MicroApache 2.0.63+PHP 5.2.9+GD2
ZIP format 3.30Mb Unzipped

MicroApache 2.0.63+PHP 5.2.9+SQLite
ZIP format 2.79Mb Unzipped

MicroApache 2.0.63
MP3 Jukebox (+sample MP3)
ZIP format 4.41mb ZIP file

2.0.63 - All SO Modules (as DLLs)
Compressed + ZIP Format (487kb)


MicroApache 1.3.41

Updated
October 2011
Apache 1.3.x is now obsolete

Updated Launch13x.exe v1.05
16th October 2011 (ZIP)
Adds document root configuration and moving the entire config/logs to %TEMP% with more config macro variables

Updated Launch13x.exe v1.04
17th September 2011 (ZIP)
Supports dynamic macro IP or host name configuration

MicroApache 1.3.41 (no PHP)
Updated launch13x.exe v1.05)
6th October 2011
ZIP Format 320kb Zipped

MicroApache 1.3.41+PHP 4.4.9
Updated launch13x.exe v1.05)
6th October 2011
ZIP Format 847kb Zipped

MicroApache 1.3.41+PHP 4.4.9+SQLite+GD2
Updated launch13x.exe v1.05)
6th October 2011
ZIP Format 1263kb Zipped


Older Releases

These older releases may be sub-optimal or have known security weaknesses. Use with care in production/public environments

MicroApache 2.0.61

MicroApache 2.0.61 (no PHP)
ZIP format 464kb Unzipped

MicroApache 2.0.61+PHP 5.2.5
ZIP format 2.33Mb Zipped

MicroApache 2.0.61+PHP 4.4.7
ZIP format 1021kb Unzipped

MicroApache 2.0.61+PHP 5.2.5+SQLite
ZIP format 2.79Mb UnZipped

MicroApache 2.0.61+PHP 4.4.7+GD2
ZIP format 1.54Mb Unzipped

MicroApache 2.0.61+PHP 4.4.7+SQLite
ZIP format 1,57Mb Unzipped

MicroApachePE 2.0.61+PHP 5.2.5
For BartPE or UBCD4Win
ZIP format 2.53Mb UnZipped

2.0.61 - All SO Modules
Compressed + ZIP Format 519kb

MicroPHP 4.4.7 Only
Micro-PHP 4.4.7(ZIP) 553kb


MicroApache 1.3.x

MicroApache 1.3.41 (no PHP)
ZIP Format 276kb Unzipped

MicroApache 1.3.41+PHP 4.4.9
ZIP Format 849kb Unzipped

MicroApache 1.3.41+PHP 4.4.9+SQLite
ZIP Format 960kb Unzipped

MicroApache 1.3.41+PHP 4.4.9+SQLite+GD2
ZIP Format 1.24Mb Unzipped

MicroApache 1.3.37 (no PHP)
ZIP Format 243kb (10k deleteable)
Includes self-configuring launch13x.exe for use with the PortableApps Menu

MicroApache 1.3.37+PHP 4.4.7
ZIP format 801kb UnZipped
Includes self-configuring launch13x.exe for use with the PortableApps Menu

MicroApache 1.3.37+PHP 4.4.7+SQLite ZIP format 1,11Mb UnZipped
Includes self-configuring launch13x.exe for use with the PortableApps Menu

MicroApache 1.3 Standard Modules
All modules - 1.3.37/1.3.x (ZIP)


Micro-Apache 2.2.2

MicroApache 2.2.2
(327kb ZIP file)

Micro-Apache 2.0.59

Micro-Apache 2.0.59
ZIP format 419kb UNZipped

Micro-Apache 2.0.59+PHP 4.4.4
ZIP format 974kb UNZipped

Micro-Apache 2.0.59+PHP 4.3.10
ZIP format 943kb UNZipped

2.0.59 - All SO Modules
Compressed + ZIP Format 366kb


Micro-Apache 2.0.55

Micro-Apache 2.0.55
ZIP format 349kb UNZipped

Micro-Apache 2.0.55+PHP 4.3.10
ZIP format 873kb UNZipped

2.0.55 - All SO Modules
Compressed + ZIP Format 368kb

MicroApache GeoIP
ZIP format DLL distro (446kb)

MicroApache Mod_LimitIPConn
ZIP format DLL distro (6kb)

Micro-PHP 4.4.4 Only
Micro-PHP 4.4.4 (ZIP)

Micro-PHP 4.4.2 Only
Micro-PHP 4.4.2 (ZIP)

Micro-PHP 4.3.10 Only
ZIP Format 523kb UNZipped

Micro-PHP GPL Licence


BartPE Versions

Micro-ApachePE + PHP 4.3.10
ZIP format 966kb Zipped


Micro-Apache 2.0.52

MicroApache 2.0.52
ZIP File (336kb UNzipped)

MicroApache 2.0.52+PHP 4.3.10
ZIP File (860kb UNzipped)

Apache 2.0+PHP+CGIApps
ZIP File (989kb UNzipped)

Apache GPL Licence

Example floppy-control BAT files


Ultra-Micro-Apache 1.3.34

The smallest distro - 1.3.34
222kb Unzipped

Apache 1.3.34 + PHP 4.3.10
807kb Unzipped

MicroSQL 4.1.9

MicroSQL 4.1.9.3 (ZIP)
3.6Mb - Alpha release
No install needed


Ultra-Micro-Apache 1.3.27

The smallest distro - 1.3.27
169kb Unzipped - Floppyweb config

Apache 1.3.27 + PHP 4.3.3
693kb Unzipped - Floppyweb config


Complete Floppy-Webservers

Demo Floppy Website Disk Image
(Now Deprecated)
Apache 2.0.xx on a Floppy Disk

1.44mb VFD Disk Format (as B:)

Live 1.44mb FloppyWeb Micro-Challenge Apache 2.0.55/PHP Website

Live 1.44mb FloppyWeb Micro-Challenge Apache 2.2.x Sever


 

 

 

MicroApache Vice Logo A Portable, USB-Drive-Friendly, Micro-Sized Apache Server for Windows

This is a legacy site, last upated around 2011. It is currently being reviewed and edited - March 2021

This is a microscopic and very-heavily trimmed-down version of the standard, Apache server; made available under the Apache GPL licence. It was developed initially just for fun to meet a FloppyWeb Challenge which was to run Apache from a standard 1.44Mb floppy disk. My thanks to James Greenwood (no website, unfortunately) for coming up with the original idea. It has been progressively revised to provide a portable micro-server for home use which will run from a USB drive with no install and minimal configuration. I've also added some freeware binary code of my own to some distros.

I have further reduced the size by another 50% by compression and removing additional files - it now weighs in at around about 450kb for the most-minimal, fully-working version of Apache; with a legacy version of 1.3.x weighing-in at only 170Kb. Larger versions with bundled apps are still less than a megabyte. The object code is not modified and you can safely configure it or add modules in just the same way as "big" Apache. Many non-essential files are stripped-out and compression used to reduce the size of both EXE and DLL (SO) modules. Micro-PHP adds only another ~523kb to make a grand total of about 900kb. Micro-SQL modules are available using both MySQL and SQLite. If all you need to do is share a USB stick or other removable device, quickly and conveniently, using HTTP then why bother with other less-flexible ultra-micro webservers when you can have genuine Apache, fully extendible and with practically limitless configuration in about the same digital footprint?. Start small and just add the bits you need until you're ready to install the full-blown server.

USB-Friendly

The best thing about this distro is that it is configured to be "portable" and thus requires no setup or install to get the basic server up-and-running. Just unzip-and-run using the supplied command files. This is a minimalist distro intended to help you cram a complete website with webserver, ftp server and content on a 1.44mb floppy, USB key-drive or to be burned onto optical media such as a DVD-ROM.  You can access my original first effort still running live from a 1.44mb floppy or floppy disk image by clicking here. [Link removed] Unfortunately I can only squeeze down to 1.19mb when PHP + CGI Apps, an FTP server and web-content and guestbook are also included.

MicroApache is offered in the hope it may be useful to anyone who wants to squeeze a quality personal web server into a very tiny footprint. MicroApache is ideal for disaster recovery since you can quickly configure and run Apache from removable-media on any Win32 box simply by inserting a floppy disk, CD-ROM, micro-hard-drive or USB-stick.

Test your access using http://localhost:8800 (use this link once running - you should see your local disk drive-root contents indexed). You will see the need to pay attention to the security advice.

MicroApache is Designed for Home and Local Network Use, It is Not Intended for Public-Facing Server Use!

It is important to note that because MicroApache was intended only for casual use sharing of USB devices or floppy disks using HTTP within "friendly" or home networks; the default configuration supplied may be too "relaxed" to offer security needed in other scenarios. It is NOT intended or configured for use as a public-facing webserver without the usual attention to web-security. If you intend to put MicroApache to use on any public-facing webserver this is perfectly feasible, but you MUST take extreme care to set up your server configuration properly adequately, just as you would any other normal version of Apache. Any person putting a "public-facing" webserver online has to take on and deal with serious responsibilities for their own system security. This should not be underestimated. However, the issues are exactly the same as those which need to be handled for "standard" Apache so if you can accept the challenge then please don't be put-off; it's really not that hard.

100% Free Software!

This Micro-Apache suite is offered completely free under the Apache GPL licence along with a few Public Domain or Freeware apps in the hope it may be of some use or benefit to the larger net community. The source-code is not modified in any way. Sorry, but absolutely NO one-to-one support or "hand holding" is offered. Life is just too short and I simply don't have time to do much more than what is offered here. Always check the official Apache documentation since it is 100% relevant to MicroApache and what is offered by the guys at Apache.org is incredibly useful. There is no substitute for reading the Apache online manual.


Recent News and Updates

  • 6th October 2011 - MicroApache v1.3.41 (PHP 4.4.9 or no-PHP) with updated launcher (v1.05) which allows the DocumentRoot to be dynamically-configured via a /DR:<path> argument.
    I intended MicroApache for writeable floppy and USB use but I'm finding new uses for it on non-writeable media so this version of the launcher also supports a /TEMP argument which transfers all of the configuration and log files to the system's %TEMP% folder - useful with optical media/CDROM distros where a dynamic config must be hosted on writeable-media. Apache v1.3.x is no longer officially supported and I may only release updates when it suits my own needs This release has been used in a PXE/gPXE chainbooting tutorial.
  • 6th October 2011 - Updated launch13x.exe v1.05 for use primarily with MicroApache 1.3.x. No has $confdir and $logdir macros added
  • 5th October 2011 - Tutorial - Chainbooting Tinycore Linux using PXE, gPXE, GRUB and MicroApache
  • 17th September 2011 - Updated launch and autoconfig program for MicroApache 1.3.x (LAUNCH13X.EXE) v1.04. This version supports httpd.conf template files with macro variables $ip and $hostname for configuration. This helps resolve problems with DNS resolving when using in a local LAN scenario and where page link references point to invalid "localhost" locations on the client machine.
  • 15th April 2011 - MicroApache 2.0.64 and associated PHP bundles released. I haven't had much time to do in-depth testing. Bug reports appreciated via the contact form. These are all VC6+Apache compiles not the VC9+Apache Lounge ones. I may do VC9 bundles if there's any demand. Tested on ReactOS 0.3.13 which still doesn't work with Apache even when patched with missing DLLs etc.
  • 23rd Februry 2011 - Donate PayPal (link above) to help cover server costs, or Bitcoin - 1EAio6MjzH8NaTzxwfStAH5joh8K6gz6GN
  • 17th July 2010 - Page URL changed from http://microapache.amadis.sytes.net to http://microapache.kerys.co.uk
  • 16th April 2010 - Server-wide DNS problems. I have had "grandfather" rights to a wildcard entry within a free No-IP.com account. This appeared to have been "pulled" on the 14th of April and has only just re-activated. This free account supports maybe 50 subdomains. Moved to a new domain.

Previous News and Updates...


Potential Uses for MicroApache

  • For less than the size of a large JPEG image you can download/install MicroApache...
  • A host for WikiFilter to serve Wikipedia pages
  • Use to support Windows-hosted TFTPD/PXE/gPXE diskless O/S booting - especially with gPXE like this and in my PXE chainboot tutorial here
  • Create "turnkey" CD/DVD media with diskless O/S serving using a combination of the above as in this HowTo   "HTTP servers typically scale better than TFTP"
  • Stream your home MP3 music collection from a central server using the free PremiumBeat SWF MP3 streamer and a little PHP code
  • Run a Bulletin-Board from a USB key (when "hardened" with full-security configuration and modules)
  • An ideal development tool for the web-developer "on-the-move"
  • A tool for PC and network engineers who need to access files from a large number of office PCs and where USB sticks are unfeasible or a security risk
  • Use anywhere where a microscopic Win32 webserver is required which must support advanced functionality
  • Floppy-disk based webserver for those who like doing "silly" things just for a challenge
  • Web server for micro-laptop running Windows such as the Asus EEEPC which has very limited disk space (4Gb)
  • USB-key-drive based or other "mobile" webserver for hobbyists or technicians
  • Installed as a useful "Portable" (no-install) application on USB key drive or micro-hard drive to share media amongst friends
  • Burned to optical media such as DVD or CDROM for IT-support techs to enable on-site software distribution to clients via a temporary webserver
  • Quick, no-install disaster-recovery webserver to use as a backup to a primary webserver (serving practically unlimited external media contents such as external/USB hard drive). i.e. if your webserver's data drive is still functional you can keep a website up and running using MicroApache from a CDROM or USB stick
  • As a rapid-install/rapid-deployment webserver to enable instant information sharing for business or home use
  • A quick-and easy personal webserver for home-use to share photos, video or other documents
  • To power a personal Wiki-project on USB stick or other removable media (see the DocuWiki on a Stick project)
  • To power presentations or public demonstrations where an install of Apache locally would be impossible or not-allowed
  • To present flash media, video, images or other web-delivered content on a temporary basis - e.g. for sales presentations
  • Home/personal MP3 and media streaming via a web browser from your home server
  • Can be easily ZIPped, hex-coded using File2Hex and emailed beyond secure email firewalls (recompile hexcode using the free online C compiler)
  • Carry a complete Win32 webserver with PHP and/or MySQL and full website content on a business-card or MMC/SD flash card
  • Fully expandable with all standard features of "grown up" Apache - including all 3rd-party add-on modules
  • You can harden it using ALL of the current security bolt-ons and configuration options should you need to use it in a public-facing scenario
  • May possibly work with WINE on Linux making a cross-platform USB server possible (feedback on this is appreciated)

Future Plans

At some future point in time, when ReactOS is stable enough I hope to be able to release a CDROM-O/S-bootable mini-webserver with the latest version of MicroApache. This may be many months away (say 2010/2011) as ROS is a work-in-progress project in early alpha stage and not yet sufficiently stable for TCP/IP server use. Check out ReactOS project here.

Page Top


Supplied Disk Image Directory Tree - (Current USB MicroApache Versions)

Apache experts will notice that having the Document Root above the Server Root is not ideal and requires special protection for the Server Root if public-facing since it could become possible to "drill down" into the Server configuration. However, if set up properly it is acceptable for home use. If set up carefully it can work for public-facing us as well. Requires a restrictive root <Directory> policy or careful use of .htaccess files if this is not used in order to make safe.

<\ (Current drive)>
  +<any directory>\Apache
  +cgi-bin
  +conf
  +logs
  +modules
Document or "www" root - (driveless config)
Server root (Access normally blocked)
Demo CGI apps - CGI access only
Server configuration - httpd.conf
Log files and server PID file
Dynamic Shared Object modules (linked DLLs)

Supplied FloppyWeb Disk Image Directory Tree - (Early 1.44Mb FloppyWeb MicroApache Versions Only)

This was the first layout designed specifically for floppy-disk use with the Document Root ideally located in a different folder tree to the Server Root

<Disk Root - (as drive B:\)>
    \Apache
       \cgi-bin
       \conf
       \logs
       \modules
    \wwwroot  (root master - conf only)
       \htdocs (site root - conf only)
          index.htm | index.html | index.php

Page Top


Tutorial - Chainbooting PXE, gPXE and Tinycore Linux

I successfully managed to get gPXE to chainload Tinycore Linux via PXE, GRUB gPXE and MicroApache. This can be bundled on optical media such as DVD or CDROM - Read more....

MicroApache MP3 Jukebox

An implementation of MicroApache 2.x with PHP 5.x and a basic install script which is designed to enable a USB stick or other removable device to act as a handy and simple local streaming MP3 player for your Home Network. The concept is based on the freeware PremiumBeat SWF-based MP3 player. Unfortunately although free, the EULA prevents this being bundled with other software such as MicroApache so you will have to download and add a couple of files yourself to make this work.

You will need to unzip the MicroApache distro to the root of your USB drive; then download the free player package from this link and unzip two files - swfobject.js and playerMultipleList.swf into the unzipped MicroApache installation directory (\<microapache-distroname>\player\). Once integrated into the supplied distro, you will then need to run \<microapache-distroname>\setup.bat and follow the on-screen instructions. Please take extreme care if installing on a USB stick which already contains data. It is recommended that this distro is only installed on an empty USB or other removable device. The setup.bat file contains useful comments should you think of modifying or extending the idea.

Once installed you can play MP3 files locally via http://localhost/jukebox/ or elsewhere on your LAN using http://<ip-address>/Jukebox/ . If your local router also acts as a DNS server then you can access directly using the machine name e.g. http://snoopy/jukebox/

The player is enabled by means of a basic php-based index.php script which generates the required XML files for the PremiumBeat player. It also offers a level of automatic obfuscation of the actual MP3 filenames by randomly adding "_()" characters will are automatically-removed by the script. The distro contains free sample wallpapers and at least 1 legal sample MP3 copyrighted to the MicroApache author which is included as a demonstration.

Download -  v1.00 - 4.41mb ZIP file - 3rd August 2009 (You will need to add 2 freeware files from PremiumBeat to this distro once unzipped)

MicroApache MP3 Jukebox


MicroApachePE 2.0.61 + PHP 5.2.5

Released 3rd January 2008. An experimental but "proper" MicroApache version for BartPE and UBCD4Win. I have tested this using QEMU on Windows XP (see image opposite) and it seems to run just fine. Please let me know if there are problems. UBCD4Win uses X: as the system drive (CDROM) and BartPE uses D: as far as I can remember but it should handle both scenarios.

Due to withdrawal of official support for PHP 4.x PHP version 5.2.5 has been included as well as a PHPINFO.PHP file which is copied to the ROOT of the drive in order to facilitate testing. Unfortunately PHP 5.x has a somewhat larger "footprint" than PHP 4.x.and adds 1.88Mb in total to the size of the distro. If you wish you can remove PHP by deleting php5apache2.dll, php5ts.dll, php, ini and removing the load reference in httpd.conf.

MicroApache should not be used on live/public-facing servers without significant security-tweaking in line with the official Apache documentation. Nor can you use BartPE or UBCD4Win in a production environment - so this security issue may not be so paramount. If you are concerned then be sure to delete PHPINFO.PHP from the MicroApache\Files\ folder before you build your CDROM

To install, unzip the ZIP file to a MicroApache folder immediately under your \plugin\ folder. Ensure the plugin is detected and activated in the plugin selector. Ensure you have fully started the network service before installing from the BartPE/UBCD4Win menu or you will get a socket error.

See the PHP FAQ

Download here or visit the MicroApache website  (2.58MB Unzipped - 62kb readme files)

IMPORTANT Ensure you "harden" MicroApache security before using on a public-facing server

MicroApachePE 2.0.61 + PHP 5.2.5

Screenshot - MicroApache 2.0.61 with PHP 5.2.5 running on
UBCD4Win ISO under QEMU (XP) - Click for full-sized image - (opens in a new window)

Page Top


MicroApache 2.2.x (THERE IS NO PHP SUPPORT FOR APACHE 2.2.2 YET - June 2006)

Released June 8th 2006. Basic testing done but if you find any bugs in the config or things which could be improved please let me know. The install config is "drive free" which means drive letters are not specified and you can install simply by unzipping the ZIP file to any folder and running by clicking on GO.BAT in the root folder. The default webroot is wwwroot at the same level as the Apache directory.

It may still be a bit premature to consider moving to 2.2.x on Win32. As any IT professional knows moving early is all well and good for those who earn a living at the cutting edge of development. If you want an "easy life" and expect things to "work" then move later!. I'm quite conservative and 2.0.x does what I want so I'm under no pressure to move to 2.2.x

There are also some open bug reports and API compatibility issues relating to PHP 4.4.2 and Apache 2.2.x - rumours hint that the PHP 4.4.x release isn't full-compatible with the new Apache API (APR). In a non-production environment you could try this fix page. I am usually quite busy doing other things but If you become aware of a stable version of PHP which works with 2.2.x please let me know.

Many other modules may not yet be ported to Apache 2.2.x or may not be stable under 2.2.x

Please note that Apache changed the name of the EXE in 2.2.x from apache.exe to httpd.exe. MicroApache has had it's exe name changed to mhttpd.exe to avoid any possible conflicts or support issues with existing installations of Apache 2.2.x. In addition the default port is changed from 80 to 8800 to avoid conflicts with port bindings.

  • Please read the notes in conf/httpd.conf  before running - they ARE important!
  • Please ensure you configure your PHP.INI for maximum security - see security advice at www.php.net
  • PHP 4+5 is recommended but not yet fully tested and THERE ARE COMPATIBILITY PROBLEMS with 2.2.x
  • You may be able to get an early development release of PHP but it WILL NOT BE STABLE YET
  • PLEASE SEE THIS IMPORTANT README for PHP4.x on Apache 2.2.2 - you need an updated DLL (phpApache2_2.dll)
    I have downloaded several update releases and the mentioned 2.2.DLL isn't present
    The situation is little better with PHP 5.x - the product basically isn't ready yet (fingers crossed!)!
    Symptoms will be false "unable to find php4apache2.dll" error messages
  • See also the Apache Lounge website for useful info and a specially compiled dll produced by Steffan. Unfortunately this is produced with MSDev 2003 and requires additional support libraries. For this reason I won't recommend or include the DLL until I can get hold of the proper version.
  • As soon as I get hold of the correct and "official" 2.2.2 DLL I will release PHP 4.4.2 for Apache 2.2.2

IMPORTANT Ensure you harden MicroApache security before using on a public-facing server

Page Top


Ultra-Micro Apache 1.3.x

Apache 1.3.x  can also make for an ridiculously tiny distro. A minimalist install, with no php, can be set up in about 170kb for an older version of Apache 1.3. Even with PHP this is still very tiny. The 1.3.x version is not 100% recommended and is included here as a curiosity. The distros supplied will require some tweaking in respect of thread allocation and the ThreadsPerChild setting - but they prove just how small a footprint you can squeeze Apache into if you try hard!.

Page Top


Micro-PHP 4.4.x

  • Official support for PHP 4.x will cease in December 2007
  • Latest update - PHP only - Micro-PHP 4.4.7(ZIP) 553kb
  • For use with Micro-Apache. Micro-PHP 4.3.10. Standard PHP 4.3.10 reduced to it's essential components and compressed. Just the essential DLLs and a plain(ish) PHP.INI, compressed with UPX.
  • PHP5 will NOT be released as many scripts will not work in PHP 5 without tweaking.PHP 5.x is also bigger than PHP 4.x
  • Apache 1.3.x requires replacement of the apache2 dll.
  • Future versions of PHP will be added when I get time to do it
  • Please ensure you configure your PHP.INI for maximum security - see security advice at www.php.net
  • Please ensure you set register_globals=OFF in PHP.INI - see this advice
  • Please see the PHP GPL Licence terms

Page Top


Micro-Apache PE (2.0.55) + PHP 4.3.10 for BartPE

Replaced January 2008 with MicroApachePE 2.0.61

I have ported Micro-Apache to BartPE for my own use as a server disaster recovery platform. This version is freely offered under the same GNU GPL licence should it be of any use to anyone. It is recommended that you build and test your BartPE builds using QEMU. Details of this method of testing are documented on my BartPE page. You can download Micro-Apache PE here.

Please note that any PE version of Apache is NOT for those new to for Apache and is specifically targeted at Apache experts. Please don't inundate me with Apache config requests - I won't answer them. Instead visit a reputable Apache server forum such as www.apachefreaks.com

The default directory structure of the BartPE version

This version will not be updated as frequently as there is minimal interest in it at present - thus it may be several versions behind the latest releases of Apache and PHP

Page Top


MicroSQL 4.1.9 for MicroApache

sqlmyadmin-screendumpx300.jpg (30021 bytes) I released this to see if it worked but have had no feedback yet. Since I have no need of MySQL myself I don't release versions frequently.

Please see the README.TXT file included with the ZIP download. A useful manual install procedure for standard MySQL can be found on this site. Since this requires some more work please LET ME KNOW if you are interested before I waste time on it for no good reason.

If you're interested in it or in helping to test/fix it then please let me know. I need to finish testing the links and identifying required modules to be provided to plug-into MicroPHP. If anyone gets MicroSQL working with MicroApache/MicroPHP on a USB (or whatever) drive then PLEASE let me know. This product is being developed.

(Image) PHPMyAdmin administering MicroSQL Test DB

Other files may be required PLEASE REQUEST THEM if you identify them!!

Minimising the Disk Footprint

The compressed disk footprint, when operating for light use, can be reduced to about 2.5mb using NTFS compression and deleting the two local admin apps (mysql.exe and mysqladmin.exe). This needs more testing. Queries relating to disk footprint are posted at www.mysqlfreaks.com and at PortableApps.com.

If you need InnoDB then you can reduce the size of 2 x 10mb log files to 2 x 4mb by using: innodb_log_file_size=4M
You may be able to save about 20mb of live space by disabling InnoDB with skip-innodb. (being tested but looks OK)
You may also be able to delete /lib/opt/mysqlclient.lib but, again you will need to test with your full selection of apps

The lowest uncompressed footprint running has been

  • 3.58Mb (3.44Mb compressed using NTFS) with mysql.exe and mysqladmin.exe
  • 3.05Mb (2.91Mb compressed using NTFS) excluding mysql.exe
  • 2.55Mb (2.41Mb compressed using NTFS) excluding mysql.exe and mysqladmin.exe (which is needed to stop and start MySQL)

Example PHP SQL Query

Download the following SqlTest.PHP code. Place in your webserver tree and rename from *.TXT to *.PHP. It will select the MySQL database then do a simple web-based query on the help table within your web browser.

Deleteable Components

If you use an external web-based manager such as PHPMyAdmin and never use the CMD-line admin or access functions then you can reduce the footprint by deleting mysql.exe and mysqladmin.exe (and mysqlwatch.exe + mysqlcheck.exe if supplied)
Note that you need msqladmin.exe to use the stop/start batch files to control the MySQL console service.

Removed Components

You can restore these by running setup into a temporary directory then copying. The removed components are as follows...

13/01/2005 08:46   122,880 my_print_defaults.exe
13/01/2005 08:46 1,093,632 myisam_ftdump.exe
13/01/2005 08:46 1,200,128 myisamchk.exe
13/01/2005 08:46 1,118,208 myisamlog.exe
13/01/2005 08:46 1,118,208 myisampack.exe
13/01/2005 08:46 1,064,960 mysqlbinlog.exe
13/01/2005 08:46 1,044,480 mysqlcheck.exe
13/01/2005 08:46 3,493,888 mysqld.exe
13/01/2005 08:46 1,064,960 mysqldump.exe
13/01/2005 08:46 1,044,480 mysqlimport.exe
07/01/2005 00:30 1,523,200 MySQLInstanceConfig.exe
13/01/2005 08:46 1,040,384 mysqlshow.exe
13/01/2005 08:46    40,960 mysqlshutdown.exe
13/01/2005 08:46    45,056 mysqlwatch.exe
13/01/2005 08:46   110,592 perror.exe

Small Database Alternatives

IMPORTANT Ensure you "harden" MicroApache security before using on a public-facing server

Page Top


SQLite Database (PHP 4.4.x and PHP 5)

SQLite is a free, Public Domain database engine which rivals MySQL. Although not yet fully tested (Jan 2008) SQLite may be a better bet for use with MicroApache than MySQL. This is due to the incredibly small size of SQLite. it's availability as a single Windows DLL and the fact that it is supported by PHP. Support is built-in with PHP5 and PHP4 is supported via PECL.. To install, download and unzip or download the sqlite3.dll file and add to the root folder of your MicroApache distro. Please let me know if you encounter problems with this early release. Examples of when to use SQLite

A combined MicroApache 2.0.61 + PHP 5 + SQLite install weighs in at 2.78Mb when installed which is far less than MySQL

SQLite is Freeware and in the Public Domain. You can download the SQLite DLL from this link or the DLL package as a ZIP file from here (207kb) or from this site as a ZIP file here. There is a PowerPoint presentation on SQLite and PHP available from here

PHP 5.x Configuration

To activate in PHP 5.x you need to enable two extension, SQLite and PDO which is a dependency of SQLite by copying them to your distro and enabling in PHP.INI. If you are not using an external install of PHP then also copy the following 2 dlls to your MicroApache distro.

extension_dir=.
extension=php_pdo.dll
extension=php_sqlite.dll

Since extensions are not normally configured in MicroApache you will also probably need to configure the extension directory parameter - extension_dir - in PHP.INI
If you put these in the MicroApache server root folder then use extension_dir=.

Ensure you set the TMP variable to prevent SQLite creating temp files in the Windows directory using and ensure C:\TEMP (or other TEMP folder is created)

Setenv TMP=c:\temp

PHP 4.x and SQLite

Although PHP 4.x is no longer supported a PECL DLL is still available to enable SQLite in PHP 4.4.x. The stability and security of this DLL cannot be guaranteed and the authors of PHP strongly encourage all users to upgrade to PHP 5. It is, however, made available as a distro for those who want to experiment.  The configuration requires only...

extension_dir=.
extension=php_sqlite.dll

Compression

DLLs may be compressed with UPX (already compressed in the MicroApache distro)

86073 -> 33280 38.66% win32/pe php_pdo.dll
241724 -> 115200 47.66% win32/pe php_sqlite.dll
431131 -> 241179 55.94% win32/pe sqlite3.dll
-------------------- ------ ----------- -----------
758928 -> 389659 51.34% [ 3 files ]

Example SQL Code

Here is some brief example code from the above presentation. To use this on most distros you will need to copy to your configured webroot (DocumentRoot) - this is usually your drive root. Note that the demo database will be created in the same location should you want to delete it. Each successive reload of the page will add more records to the database.

<?
//SQLite Database test query
$count=0;
$db=sqlite_open("foo.db");
@sqlite_query($db,"CREATE TABLE foo (text varchar(10))",$sqliteerror);
sqlite_query($db, "INSERT INTO foo VALUES ('Hello')",$sqliteerror); 
sqlite_query($db, "INSERT INTO foo VALUES ('World')",$sqliteerror); 
$result=sqlite_query($db,"SELECT * from foo");
$count=sqlite_single_query($db,"SELECT count(text) from foo");
while($row=sqlite_fetch_array($result))
{
   print_r($row);
   echo "<br>";
}
sqlite_close($db);
echo "There are $count record(s) in the database<br>";
?>

Downloads

Troubleshooting SQLite

SQLite 3 Support

SQLite is built-in to PHP 5 however the programming interface API is slightly odd and incomplete. The procedural API doesn't support the full procedural SQLite API e.g. SQlite3_Open() and there's support for SQLite 2 databases only. If you want to use the advanced SQLite 3 features and open SQLite 3 databases you will have to use the object-based class library.More information the topic can be found in this thread at macosforge.org

IMPORTANT Ensure you "harden" MicroApache security before using on a public-facing server

Page Top


Using MicroApache with Visual BASIC CGI

You can use the tiny 80Kb Windows DLL provided by VBToolbox to add CGI console I/O to legacy Visual BASIC 5/6 and 100% VB clones. There is also a separate SQLite 3.5.x VB DLL available which adds SQLite SQL database functionality to VB applications. This means you can write VB based CGI applications which draw on the full power of things like Windows/MS-Access database interconnectivity.

Page Top


Using MicroApache with The Ch  C/C++ Interpreter

Ch is a powerful and free (for personal use) C/C++ interpreter which provides a superset of the C language and which lends itself very well to CGI script usage with Apache.The primary advantage of Ch is that it permits the use of standard "C" along with powerful add-on features such as shell interactivity. Unfortunately this is not Open Source so it cannot be redistributed or cut-down into a "micro" distro such as MicroApache. To use Ch with MicroApache you need to do the following.

  • Download the Ch package from www.softintegration.com with the standard version available as freeware from here
  • Install the program. Since this is portable once installed I tend to install such programs to C:\Apps\ rather than C:\Program files to keep my potentially "portable" apps separate.. So you may wish to install to, say, C:\Apps\Ch\ .
    Remember where you installed it to as you will need to use this in any script files later on by pointing the script to the right \Bin location under the install directory.
  • Add the configuration option  AddHandler CGI-Script .ch  to your \conf\httpd.conf file.  (Restart your Apache server if already running)
  • Create the following test script in your \cgi-bin\ folder..Save it as hello.ch. Note that the first line (the "shebang") - a hash character followed by an exclamation mark and the path in Unix format - must contain the correct path to the ch.exe interpreter. This will be under the \bin\ directory in the folder you installed Ch into.
#!/apps/ch/bin/ch.exe
// Hello World in Ch/CGI
printf("Content-type: text/html\n\n");
printf("<h1>Hello, world from the Ch interpreter!</h1>\n");
  • You can now access the above script by clicking http://localhost:8800/cgi-bin/hello.ch
  • If you want more advanced features such as CGI parameter-passing, form posting and full interactive support then download the Ch CGI Toolkit add-on (free for personal/educational use)
  • Please pay close attention to any security options in the Ch documentation and README files before making available on a public-facing server.

IMPORTANT Ensure you "harden" MicroApache security before using on a public-facing server

Page Top


Source Code

The code is not modified from the original sources. MicroApache is simply cut-down and repackaged and configured in a convenient way to make it USB-friendly and portable. You can get the relevant source code from the Apache website


MicroApache Support Forum

"Hey, there is no MicroApache forum! Why is this?". Well, apart from the fact that I don't have time or resources to run one, it's because there's really no special need as every aspect of configuration for "standard" Apache also applies to MicroApache so all you need to do is go to www.apache.org and read the standard online manual. It's 100% relevant. However, I recently signed up at StackOverflow so you can try posting a question on there. Please read the FAQs and any enclosed README.TXT *first*.

Although tweaked, renamed, pruned and compressed, the binaries operate in precisely the same way and your MicroApache installation can be expanded and extended in every way right up to the full/standard Apache Win32 install. Most of the common questions will be covered in the FAQ below. If you have a question which you think is specific to MicroApache (not to general Apache configuration) then please post your query here and the answer will be added to the FAQ section or II will post a reply in the site's guestbook in about 24hrs.

As a piece of general advice, around 75% of Apache support issues come from inappropriate use of .htaccess files where directives should, instead, be put in the main server config file. There are few cases where .htaccess files should ever be used with MicroApache and these are usually mandated by bespoke apps. See this official Apache advice regarding .htaccess files if you wish to go down that route.

IMPORTANT Ensure you "harden" MicroApache security before using on a public-facing server

Try the Tips and Tricks Page or see the official Apache 2.0 Documentation - See also the PHPFreaks Apache Support forum

Page Top


Recommended Portable Storage Products

I use the Excalibur 4Gb micro-hard drive and after about 12 months of heavy and reckless use I can heartily recommend it and can certainly confirm that it is far more reliable than any USB flash drive I've owned. I've burnt out two USB pen-drives in less than that time. The Excalibur micro-drive is "cheap as chips" with a flip-out USB connector and is about half the size of a packet of 10 fags (for Americans here, that's British for Cigarettes!). After testing USB flash memory for a few years I'd have to admit that they're just not reliable enough for anything other than casual and infrequent backup or use in digital cameras. The worst was the Disgo U3 1GB stick which finally took 3 months in the deep-freezer compartment to recover and remove the U3 software.

Cheap flash storage technology just isn't ready for heavy write-demand yet but apparently it's making progress. I wouldn't recommend anyone commit valuable data to a cheap one on a regular basis. Use as a MicroApache server host might be OK if writes can be kept to a minimum by disabling log files or other script-writing. Check out www.grc.com/securitynow/ where Steve Gibson relates a tale of Mark Thompson testing EEPROM flash memory similar to USB flash memory as a Windows swapfile host and burning it out in a matter of 60 minutes or so of continuous writes. ("It actually hurts non-volatile memory to change its data" S.G. 13/Dec/2007) See also this article on MLC/SLC memory

I can also recommend eBuyer.com for UK residents - I've obtained most of my IT kit from there for several years now and they're pretty competitive and with a no-nag returns policy which I've used several times now.

ARSoft RAMDisk Driver

After being discontinued in 2005 the ARSoft RAMDisk driver is available for download again (from November 2008). You can use it to run your website data (not server) from there to gain higher speeds - download from this page

Page Top


Sites Using MicroApache

If you have a site which uses MicroApache and want to trade links post me your details via the contact page. Sorry, but I may not reply to all emails but FAQ requests will either be posted back in the guestbook or FAQ section..

  • DVB Upload.com - DVB site (Educational use only)
  • MicroApache Web Challenge - A challenge to run a viable Win32 web+FTP server completely from a 1.44mb floppy disk
  • DokuWiki on a Stick - A superb, fully-featured PHP-based personal Wiki project configured to run from a USB stick. This software uses only text files and has no dependency on SQL. Although DokuWiki can be run on other platforms the core of the "stick" version is based around this MicroApache project. If you use MicroApache-powered DokuWiki please drop me a line and request a link to your project.
  • DokuWiki Users A list of sites using the DokuWiki free Wiki project

MicroApache Links

Links and Other WAMP Micro-Webservers

Page Top


Licensing

MicroApache is a selectively repackaged version of standard Win32 Apache with no modified code and the Apache components are therefore covered by the same Apache GPL license (see below).

"The Free Software Foundation considers the Apache License, Version 2.0 to be a free software license, compatible with version 3 of the GPL."

In order to comply with GPL licensing, source code is available by email request although you may find it quicker and far more convenient to download it from source-code repository of www.apache.org or the individual site for each sub-module rather than me relaying it to you. The repackaged bundle may include non-essential and non-GPL software supplied as public-domain freeware licensed and written by the author here. This may include CGI test code which you are free to delete if you do not require it. To the best of my knowledge, none of this additional freeware is covered under the GPL or any other form of license, however some freeware may be copyrighted to the author to prevent individuals charging, claiming credit for or or reselling the product commercially. The executable (EXE) Object code (but not the source code) for such additional freeware is placed in the Public Domain.

The project is offered at no-cost on a "best effort" basis. The package is designed not to be dependent on any public-domain freeware included and you must delete the non-GPL public-domain freeware if you wish to redistribute the package or re-use it in any other project which needs to strictly comply with the GPL license terms.For more detailed information see the conditions of the particular GPL licence concerned.

Licensing for each product can be found here:

Page Top


Copyright-Free MicroApache Logos

I have designed and created a few logos based on and similar to the original Apache feather design using PSP5.

Download instructions - Mozilla Seamonkey - Right-click, Save image as... IE 7 - Save picture as...

MicroApache Smallest PNG MicroApache link logo

Feel free to download and use this image it to link to this web page

PNG format - 300 x 80 pixels - 19kb

MicroApache Friendly PNG MicroApache link logo

Feel free to download and use this image it to link to this web page

PNG format - 300 x 80 pixels - 19kb

MicroApache Vice GIF MicroApache "vice" Logo

Transparent background - GIF Format - 32 x 32 pixels

micro-apache-vice.png (1616 bytes) MicroApache "vice" Logo

Transparent background - PNG Format - 32 x 32 pixels

MicroApache White PNG MicroApache "vice" Logo

White background - PNG Format - 32 x 32 pixels

MicroApache Blue Shaded PNG MicroApache "vice" Logo - Shaded Blue

Solid/shaded background - PNG Format - 32 x 32 pixels


Page Top

Page last updated on 25 February 2021 - This page is optimised for 1024x768 or higher screens

DO NOT CLICK THIS LINK