5.0-Nano: Multi-Servers

From The Uniform Server Wiki
Jump to navigation Jump to search

 

Uniform Server 5-Nano Multi-Servers

One of Uniform Server’s unique features is the capability to run more than one complete server on the same PC. You can use this to great advantage and prevent server collisions.

Moving UniServer increments the tray icon displaying a new digit for each server. In reality it’s not just a port change; the servers are reconfigured. In addition to the number displayed by the tray icon, running server status displays the new server's configuration.

To run multiple server instances on the same PC, several items require changing such as server ports, service names, Apache, MySql and UniTray executable names. Manually changing these can be time consuming and prone to errors. The process has been automated with the following script: move_servers.php


Option 1

You can invoke the script from UniTray:

  • Assumes this is the only server currently running. If not, close all other running servers, including their UniTrays.
  • Use either the right or left menu and mouse-over "Advanced"
  • Click Move Servers multi-server operation
  • Repeat as needed to change to the desired configuration set; this is indicated by the UniTray icon number.

Option 2

Alternatively, the batch file Run.bat will invoke the script.

  • Close all running servers including UniTrays
  • Navigate to folder unicon\move_servers
  • Double click Run.bat and enter the appropriate values.


Script Details

Unless you want to use specific ports and names, accept the defaults shown in brackets by pressing enter.

Note: If you manually change service or Apache executable names make sure these have eight or less characters.

The script uses existing names and either adds a digit to the end of this name or increments an exiting one. The ports are incremented and invalid ports are skipped. When run for the first time, the output looks like this:

################################################################################
 Current Apache port = 80         Proposed port [81] :
 Current SSL port    = 443        Proposed port [444] :
 Current MySQL port  = 3306       Proposed port [3307] :
 Current Apache name = Apache.exe Proposed name [Apache1.exe] :
 Current MySQL name  = mysqld-opt.exe  Proposed name [mysqld-opt1.exe] :

 ===== SERVICES Service names ====

 Current Apache name = ApacheS1 Proposed name = [ApacheS2] :
 Current MySQL  name = MySQLS1  Proposed name = [MySQLS2] :

 ===== UniTray Controller  ====
 Current UniTray name = UniTray1.exe Proposed name [UniTray2.exe] :

 ===== eAccelerator  ====

 If running a single server do not disable eAccelerator.
 For multi-servers enter Y

 Disable_eAccelerator type Y or N [Y] :

 Commit type Y or N [Y] :
################################################################################

Cloning servers

If you know in advance the number of additional servers that will be run, create them at the same time. It just makes the task a little easier.

  1. Extract a new copy of Uniform Server
  2. Move the server using the above script.
  3. Clone this server (copy to a new folder, like UniServer2)
  4. Move the server using the above script.
  5. Repeat steps 3 to 4 for each new server.

UniTray

Unitray's icon is updated to reflect changes (the digit increments). If you wish to change the icon displayed, edit the images, but do not change their names (tray_image_1.dat-tray_image_9.dat) These are used within UniTray's configuration file and are dynamically updated when servers are moved.


General Notes

If all the servers are to be installed as a service there is no need to disable eAccelerator.

If the servers are to be run as a standard program, eAccelerator must be disabled, otherwise Apache will fail to start.

Remember to append the new port number to localhost to access the server pages. For example, if the server was moved to port 81, type the following into your browser:

  • http://localhost:81/

Important note: MySQL port

When installing third party software you may be given a choice of entering a port number> Enter the one corresponding to the moved server (you can find this by running server statusfrom UniTray)

If this option is not provided (generally not), then append it to the server name e.g. localhost:3307


Related links

Running multi servers on the same PC prevents awaking a draconian dragon!

Not sure what a draconian dragon is? Follow the second link.

DtDNS Introduction

Design notes for DtDNS updater.

PHP cURL Introduction

Tutorial explaining cURL basics. These techniques are used in Server Status. Also shows how to avoid draconian dragons.

Summary

Having a capability of running more than one server on the same PC allows you to simulate external servers. For more information, follow the above related links.

I run my personal MediaWiki on icon 2 (servers moved one level) so I can carry it on my USB stick and know it will not collide with an IIS server on another PC.

Next page covers running Perl on Uniform Server 5-Nano.