|
Mini Servers: Introduction | Support | Server 1 - Portable | Server 2 - Service | Server 3 - Portable Authentication | Server 4 - Portable Authen. SSL | Server 5 - SSL Standalone | Browsers dislike self-signed certificates | Server 6 - PHP 5.2.6 Portable | Server 7 - PHP 5.2.6 Service | Server 8 - MySQL Support | Guest Book | Server 9 - Perl 5.2.6 Portable | Server 10 - Perl 5.2.6 Service | Server 11 - MySQL 5.0.67 Portable | Server 12 - MySQL 5.0.67 Service | Server 13 - MySQL 4.1.22 Portable | Server 14 - MySQL 4.1.22 Service | phpMyAdmin - Mini support | MySQL - General problems |
| Mini Servers: Compact fully functional. |
This page covers running our mini server (describe on the previous page) as a service, its big brother Uniform Server 3.5-Appolo automates this process. We are not going to take this easy option! Well you would never learn anything by doing that, the manual alternative although slightly more difficult provides an insight into Apache and Uniform Servers flexibility.
Note: Check support section for download details
The server has the following specification:
The only difference in this specification server is no longer portable but run as a service. This means every time you restart your PC the Apache server will automatically start. The advantage of this, when running a server permanently connected to the Internet should a power interruption occur the server will automatically restart when power is restored. If other elements of the system have been set accordingly them your Internet presence will also be restored.
Security issues remain as explained on the previous two pages. I would like to stress this is about as best as it gets. If you take this and pop it on a Unix box you can harden the server a little more however they are also faced with the same issues.
Interestingly if you run the portable version of this sever on a dedicated disk the configuration file would remain unchanged. Use the two new batch files and you are ready to go.
However like many others I run this on C drive with loads of other software yep alarm bells security issue, I am neither complacent nor unaware of these issues, Apache is probably the most secure bit on kit I have on my PC. Anyway I digress; changes are all associated with paths more precisely relative and absolute.
In theory Apache is quite happy to use relative paths for example “/” refers to the top level of the current disk. Uniform Server and our portable mini server use this to great advantage by defining a dedicated virtual disk “w”. However when changing across disk space Windows gets uptight about relative paths unless you can explicitly define a disk.
Windows likes pegs hammered into the ground so to speak, hence when running as a service specifying absolute paths is essential to keep both parties happy for example c:\mini_server_10, the drive must be specified and then any folders etc.
No need to ramble on, just remember absolute paths are the order of the day so lets roll up ours sleeves and look at some code hacking.
As mentioned above absolute paths are required in the configuration file. I have chosen to run the server on C drive from folder mini_server_10 you can use a different drive and or folder the choice is yours, just substitute accordingly. I have highlighted these absolute paths in bold interestingly these are the only changes required to our original configuration file.
Note: I have moved the server to port 8090 prevents clashing with other servers.
| httpd.conf located in folder: C:\mini_server_10\usr\local\apache2\conf |
|---|
|
# File name: http.conf |
|
# ================================================ |
|
# ======================================== |
|
# ======================================== |
|
# ======================================== <Directory "c:/mini_server_10/www"> |
|
# ======================================== <Directory "c:/mini_server_10/cgi-bin"> |
|
# ======================================== |
|
# ======================================== |
Batch files to install and uninstall Apache as a service are not very complex; the trick is to supply all the right parameters as shown.
Install service employs a nice bit of defensive programming when run the first line checks Apache’s configuration file for errors. Errors are listed including line numbers once corrected rerun the batch file. The second line installs Apache as a service once installed the third line starts the service.
| install.bat located in folder: C:\mini_server_10 |
|---|
echo. c:\mini_server_10\usr\local\apache2\bin\Apache.exe -k install -n "mini_server_10" echo. net start mini_server_10 echo. echo Type http://localhost:8090 into your browser to access server. echo. pause |
The uninstall batch file first stops the “mini_server_10” service and then proceeds to uninstall it.
| uninstall.bat located in folder: C:\mini_server_10 |
|---|
echo. net stop mini_server_10 echo. c:\mini_server_10\usr\local\apache2\bin\Apache.exe -k uninstall -n "mini_server_10" echo. echo Done pause |
Note 1: The service name mini_server_10 this along with a unique port number allows all mini servers to be run alongside each other.
Note 2: To avoid clashing with Uniform Server do not name the service Apache2.
After installing the Apache service with the above batch file you can start and stop the "mini_server_10" service at anytime using a command line this saves uninstalling the service every time you want to stop the server:
Each mini server is complete and zipped into a single self-extracting archive file.
Download this server from SourceForge Project Page save the file mini_server_10.exe to drive C.
Note: Check out the mini server's support and download page detailing how to obtain full binaries for Apache and Perl.
Double click on mini_server_10.exe, starts the extraction process. No need to change the folder destination, click extract, this creates a new folder mini_server_10 containing the following files and folders:
|
Testing is straight forward.
Note 1: The server automatically starts when your PC is restarted (that’s the reason for installing as a service.)
Note 2: Adding extra pages or changing your web site there is no need to either restart or uninstall the server.
Note 3: Stop the service before making changes to Apache's configuration file; restarting service guarantees the new changes will be picked up.
Open the folder www located in folder *mini_server_10\www delete everything in this folder and copy your site in to it.
Note: Make sure one of your pages in folder www is named index.html or index.htm, otherwise you will need to type a page name in every time to access your site.
e.g. http://localhost:8090/somepage.html
I found this to be a real pain you need to change the “shebang” depending on how you run the mini server, portable or as a service. If you're running CGI's on Windows use the portable server, this will allow you to move the scripts to a Unix system without change!
The following lists the “shebang” required to get your cgi scripts working:
Note: If you use the Unix "shebang" on a mini server installed as a service you will receive this error message in
Apache's error log: (OS 3) The system cannot find the path specified
The server requires a fixed location currently: c:\mini_server_10
You can move the server to any drive and folder for example e:\my_server\mini_server_10
To do this you need to edit threer files:
Find all occurrences of c:\mini_server_10 and replace with e:\my_server\mini_server_10
In addition you need to change all Perl scripts that use a Shebang:
#!c:/mini_server_10/usr/bin/perl
To:
#!e:/my_server/mini_server_10/usr/bin/perl
This moves the server to the standard secondary web server port
Note: Type http://localhost:8080 into a browser to view the site.
If port already in use try any value above 2000
You can run more than one copy of this server as a service.
To do this you need to:
Note: You can run the mini servers alongside Uniform Server 3.5-Apollo however you must start Uniform Server first.
That concludes server 3, I have shown how to run it either in a portable or service configuration. It is a very powerful mini server you can use for either testing or putting your web site on-line (production server). Perl is a very powerful CGI scripting language allowing you to produce dynamic web sites.
Both PHP and Perl have integrated database support using this capability enhances functionality of any dynamic web site. To complete the mini server series I have included a mini MySQL server.
| | Ric |
Categories: UniCenter | Mini Servers | Perl | Oily Rag | Self Install