Mini Servers: Apache 2.2.9 Portable: Difference between revisions
New page: {{Uc nav mini servers}} Apache 2.2.9|right'''Mini server using Apache 2.2.9 Core''' A mini server with all the power of Apache and the portability of Uniform Serv... |
m Text replace - "projects/uniformserver" to "projects/miniserver" |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Uc nav mini servers}} | {{Uc nav mini servers}} | ||
[[Image:Uc_mini_1a.gif|Apache 2.2.9|right]]'''Mini | [[Image:Uc_mini_1a.gif|Apache 2.2.9|right]]'''Mini Server 1 uses Apache 2.2.9 Core''' | ||
A mini server with all the power of Apache and the portability of Uniform Server what a mix, one very neat compact server. ([[#Support files |see support files for download]]) | A mini server with all the power of Apache and the portability of Uniform Server what a mix, one very neat compact server. ([[#Support files |see support files for download]]) | ||
Line 10: | Line 10: | ||
This write-up shows how to install, configure Apache 2.2.9 and to minimise the risk of unauthorized access. | This write-up shows how to install, configure Apache 2.2.9 and to minimise the risk of unauthorized access. | ||
== Specification == | == Specification == | ||
The server has the following specification: | The server has the following specification: | ||
* Server | * Server must be portable. | ||
* Only static HTML pages shall be served. | * Only static HTML pages shall be served. | ||
* The server | * The server will log all web requests. | ||
* All unused modules shall be disabled. | * All unused modules shall be disabled. | ||
The specification dictates using the minimum number of Apache (2.2.9) modules. You may be interested in the final disk size for such a solution | The specification dictates using the minimum number of Apache (2.2.9) modules. You may be interested in the final disk size for such a solution. Surprisingly its only 1MB for a server meeting our specification. | ||
Don’t be deceived by the size | Don’t be deceived by the size! It is a fully functioning production server. I have removed complexity to highlight security issues. | ||
Take the last line of the specification; it states only modules required shall be installed. This increases security | Take the last line of the specification; it states only modules required shall be installed. This increases security; any unused but installed modules have the capability to interact with others. It requires only one security vulnerability in any one of these unused modules to put the whole system at risk. Knowing our functionality requirements allows a list of required modules to be prepared and to exclude all unused modules. | ||
In terms of security, always ask the question, do we need that module? If not, don’t install it. The same argument applies to any other software. \if its not required uninstall it. | |||
== Modules == | == Modules == | ||
A complete list with a full description of Apache modules can be found here [http://httpd.apache.org/docs/2.2/mod/ Apache Docs] . | A complete list with a full description of Apache modules can be found here [http://httpd.apache.org/docs/2.2/mod/ Apache Docs] . | ||
Modules we require are listed below, note the core module is part of the main binary (program) and loaded by default. | Modules we require are listed below, note the core module is part of the main binary (program) and loaded by default. | ||
Highlighted in bold are separate modules these are loaded using Apache's configuration file. | Highlighted in bold are separate modules these are loaded using Apache's configuration file ''httpd.conf''. | ||
{|border="0" cellpadding="4" cellspacing="1" style="background:#222222" | {|border="0" cellpadding="4" cellspacing="1" style="background:#222222" | ||
Line 60: | Line 59: | ||
|} | |} | ||
== Configuring Apache == | == Configuring Apache == | ||
When starting Apache you supply it with the location and name of a configuration file this overrides the default location compiled into the program. Its common practice to name the file '''httpd.conf''' and place it in a sub-folder named '''conf'''. | When starting Apache you supply it with the location and name of a configuration file this overrides the default location compiled into the program. Its common practice to name the file '''httpd.conf''' and place it in a sub-folder named '''conf'''. | ||
Line 74: | Line 72: | ||
|-style="background:#f5f5f5" | |-style="background:#f5f5f5" | ||
| | | | ||
<nowiki>#</nowiki> | <nowiki>#</nowiki> File name: http.conf<br> | ||
<nowiki>#</nowiki> | <nowiki>#</nowiki> Created By: The Uniform Server Development Team<br> | ||
<nowiki>#</nowiki> Edited Last By: Mike Gleaves (ric) <br> | |||
<nowiki>#</nowiki> Main Apache 2.2.9 HTTP server configuration file.<br> | <nowiki>#</nowiki> Main Apache 2.2.9 HTTP server configuration file.<br> | ||
<nowiki>#</nowiki> | <nowiki>#</nowiki> V 1.0 2-8-2008 | ||
| | | | ||
General information a reminder for what the configuration is for. | General information a reminder for what the configuration is for. | ||
Line 101: | Line 100: | ||
<nowiki>#</nowiki> Basic settings <br> | <nowiki>#</nowiki> Basic settings <br> | ||
<nowiki>#</nowiki> ======================================== <br> | <nowiki>#</nowiki> ======================================== <br> | ||
'''Listen | '''Listen 8081''' <br> | ||
'''ServerName localhost: | '''ServerName localhost:8081'''<br> | ||
ServerAdmin fred@www.somedomain.com <br> | ServerAdmin fred@www.somedomain.com <br> | ||
UseCanonicalName Off <br> | UseCanonicalName Off <br> | ||
Line 202: | Line 201: | ||
|} | |} | ||
A word of caution | A word of caution. Although the server is very secure it is not possible to guarantee one hundred percent. Added to this a real problem of running on a machine populated with other software this increases the security risk. It requires only one security vulnerability in any of these programs to compromise the whole system. | ||
''Try not to be over paranoid with security issues then again do not be complacent. No single site on the Internet and that includes this one can ever cover all security issues. My personal advice is to get out there and research the subject, seek out what the professionals advise.'' | ''Try not to be over paranoid with security issues then again do not be complacent. No single site on the Internet and that includes this one can ever cover all security issues. My personal advice is to get out there and research the subject, seek out what the professionals advise.'' | ||
=== Access control === | === Access control === | ||
Each time a module is added Apache’s configuration file increases in complexity. Our minimalist solution reduces this complexity while still harnessing the power of Apache to great effect. Now take another look at that access control block, encapsulated in such a small space are very powerful control features. I have only scratched the surface of this block, for detailed information go to Apache’s web site. The real point I am trying to make, for this server, '''implementing security is clean neat and visible'''. | Each time a module is added Apache’s configuration file increases in complexity. Our minimalist solution reduces this complexity while still harnessing the power of Apache to great effect. Now take another look at that access control block, encapsulated in such a small space are very powerful control features. I have only scratched the surface of this block, for detailed information go to Apache’s web site. The real point I am trying to make, for this server, '''implementing security is clean neat and visible'''. | ||
== Support files == | == Support files == | ||
Each mini server is complete and zipped into a single self-extracting archive file. | Each mini server is complete and zipped into a single self-extracting archive file. | ||
=== Download === | === Download === | ||
Download this server from | Download this server from SourceForge [http://sourceforge.net/projects/miniserver/files/MiniServer/MiniServer_%20Apache%202.2.9%20Portable/ Project Page] save the file '''mini_server_1.exe''' to any folder of your choice. | ||
'''''[[ | '''''Note'':''' Check out the mini server's [[Mini Servers: Support and download|support and download page]], detailing how to obtain full binaries for Apache. | ||
=== Extract files === | === Extract files === | ||
Double click on | Double click on mini_server_1.exe, starts the extraction process. No need to change the folder destination. Click extract; this creates a new folder '''mini_server_1''' containing two files and one folder. | ||
# ''' | # '''server_start.bat''' - Double click to start the server | ||
# ''' | # '''server_stop.bat''' - Double click to stop server | ||
# '''udrive''' - Folder containing server and your web site. | # '''udrive''' - Folder containing server and your web site. | ||
=== Test === | === Test === | ||
Testing is straight forward. | Testing is straight forward. | ||
# Start the server by double clicking on ''' | # Start the server by double clicking on '''server_start.bat''' (automatically detects free drive letter creates new virtual drive and runs the server.) | ||
# Start a web browser. | # Start a web browser. | ||
# Type '''<nowiki>http://localhost/</nowiki>''' into the browser address bar. | # Type '''<nowiki>http://localhost:8081/</nowiki>''' into the browser address bar. | ||
# An index page is displayed, check out the test site '''MPG1'''. | # An index page is displayed, check out the test site '''MPG1'''. | ||
# Stop the server by double clicking on ''' | # Stop the server by double clicking on '''server_stop.bat''' | ||
== Change Virtual Drive == | |||
The server automatically detects the first free drive letter and uses that to run the server on. | |||
You can override this in one of two ways: | |||
# Start the server using a drive parameter, for example: '''server_start.bat z'''. This forces the server to use drive z | |||
# Edit server_start.bat, locate the following line:<br> '''rem set Disk=w''' <br>Remove the rem and replace w with the letter you want to use for example:<br> '''set Disk=x''' Forces the server to use drive letter x | |||
== Change server default port == | |||
*Open file: '''httpd.conf''' (Located in folder: \mini_server_1\udrive\usr\local\apache2\conf) | |||
*Locate the lines:<br>Listen 8081<br>ServerName localhost:8081<br> | |||
*Change to:<br>Listen 8080<br>ServerName localhost:8080 | |||
This moves the server to the standard secondary web server port | |||
'''''Note'':''' Type '''<nowiki>http://localhost:8080</nowiki>''' into a browser to view the site. | |||
If port already in use try any value above 2000 | |||
== Multi Servers == | |||
If you wish to run several mini servers at the same time, create a new folder for each server and copy contents of mini_server_1 into each of these. | |||
Change the server port for each server to be unique. The servers may be started in any order. | |||
'''''Note'':''' | '''''Note'':''' You can run the mini servers alongside The Uniform Server 3.5-Apollo however you must start The Uniform Server first. | ||
''' | == Your web site == | ||
Open the folder www located in folder '''*mini_server_1\udrive\www''' (Note: * is the path to the folder you extracted the server files) delete everything in '''www''' and copy your site into it. | |||
''''' | '''''Note'':''' Make sure one of your pages in folder www is named '''index.php''', '''index.html''' or '''index.htm''', otherwise you will need to type a page name in every time to access your site. | ||
e.g. <nowiki>http://localhost:8081/somepage.html</nowiki> | |||
== Putting the server on-line == | |||
If connected to the Internet by a router to put the server on-line you need to forward port 8081 (or the port you have chosen to run the server on). | |||
== Summary == | == Summary == | ||
Don’t be deceived by this mini server's size, remember | Don’t be deceived by this mini server's size, remember it's powered by Apache and very secure. For a quick test I loaded UniCenter and put the server on-line. | ||
I was surprised how fast it was. | I was surprised at how fast it was. In oOne final test I could not resist, I dumped the entire server straight onto a USB memory stick and put that on-line. The speed was slightly slower, but I was using a cheapo memory stick. I was more than impressed with this dynamic duo. Apache and The Uniform Server's method of portability make an excellent basic portable server. | ||
If you want a more permanent installation install the server as a service is covered on [[Mini Servers: Apache 2.2.9 Service|the next page page]]. | |||
Perhaps you would like to protect the server with a name and password. I cover this with [[Mini Servers: Apache 2.2.9 Portable - Authentication|Mini Server 3]]. | |||
---- | ---- | ||
Line 268: | Line 291: | ||
[[Category: Mini Servers]] | [[Category: Mini Servers]] | ||