Install UniServer Run UniServer Left Menu Start UniServer (Apache MySQL) Stop UniServer (Apache MySQL) Individual Server Control Start Apache Server Stop Apache Server Start MySQL Server Stop MySQL Server Server Status Apache Syntax Check Admin Panel phpMyAdmin WWW Root SSL Root Advanced MySQL password restore Server Certificate and Key Generator Move Servers multi-server operation Perl Shebang Update cgi-bin Perl win2unix + Shebang Update Edit Apache Configuration Edit MySQL Configuration Edit php.ini Production Edit php.ini Development php.ini switch to Production php.ini switch to Development Start Portable Cron Stop Portable Cron Server information and Logs Server Information Server Status PHP Information Apache Error Log Apache Access Log Apache SSL Error Log Apache SSL Access Log MySQL Error Log Reload Menu Server Documentation About Exit | ### Uniform Server 5-Nano Quick Guide Intro: This quick guide starts with installation and running Uniform Server. In addition it mimics menu items in UniTray. Installation: In reality there is no installation once the files are extracted servers are ready to run. That said if you run the servers as a service these services are installed. There is no restriction you can install a service from a USB memory stick. Hence to prevent leaving any dross behind, please remember to uninstall any services. Menu Items: Although there are a bewildering number of menu items. To run the servers only the first two items are required. Remaining menu items, provide useful features, of importance is the Server Status. Server Status: Run this first it checks current ports status if these are in use will prevent the servers starting. With your server running and connected to the Internet server status will display your IP address as seen from the Internet. In addition will attempt to connect to your server over the Internet using the above IP address. | Install UniServer Run UniServer Right Menu Install and Run All Services Stop and Remove All Services Individual Server Control Install Run Apache Service Stop Uninstall Apache Service Install Run MySQL Service Stop Uninstall MySQL Service Server Status Apache Syntax Check Admin Panel phpMyAdmin WWW Root SSL Root Advanced MySQL password restore Server Certificate and Key Generator Move Servers multi-server operation Perl Shebang Update cgi-bin Perl win2unix + Shebang Update Edit Apache Configuration Edit MySQL Configuration Edit php.ini Production Edit php.ini Development php.ini switch to Production php.ini switch to Development Start Portable Cron Stop Portable Cron Server information and Logs Server Information Server Status PHP Information Apache Error Log Apache Access Log Apache SSL Error Log Apache SSL Access Log MySQL Error Log Reload Menu Server Documentation About Exit

## Left Menu

This page you are now viewing shows Unitray’s left and right menus expanded.

Left Menu: Selected with left-mouse button, this runs the servers as a standard program.

- Top menu item starts both Apache and MySQL servers.
- Second item stops both servers.

Standard program: Every time you switch your PC on you need to restart the servers.

Note: After individual server control all menu items are common these are include in both menus for connivance.

## Start UniServer (Apache MySQL)

Starts, Apache and MySQL as a standard program also opens www index page

Note: Runs script unicon\main\start_servers.php with parameter 7

This parameter is optional, in its absents defaults are used these are configurable in file unicon\main\includes\config.inc.php

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache server 0 - Do not run program
      Mysql          2  1 - Run MySQL  server 0 - Do not run program
      Index page     4  1 - Start Index page  0 - Do not start index page
      MySQL Console  8  1 - Display console   0 - Do not display console
      Cron          16  1 - Run cron          0 - no change ignore

Note 1: A parameter passed to script start_servers.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to run Apache and MySQL gives parameter 3

Note 3: You cannot use selections 4 and 8 on their own you must include the appropriate server. Hence 4+1 would start the Apache server and display the index page.

Note 4: Selecting this menu option with the servers already running script ignores request.

Note 5: If one of the servers is running as a service only the free server will be run as a standard program.

## Stop UniServer (Apache MySQL)

Stops, Apache and MySQL when run as a standard program

Note: Runs script unicon\main\stop_servers.php with parameter 7

This parameter is optional, in its absents defaults are used these are configurable in file unicon\main\includes\config.inc.php

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache server 0 - Do not run program
      Mysql          2  1 - Run MySQL  server 0 - Do not run program
      Index page     4  1 - Start Index page  0 - Do not start index page
      MySQL Console  8  1 - Display console   0 - Do not display console
      Cron          16  1 - Run cron          0 - no change ignore

Note 1: A parameter passed to script stop_servers.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to stop Apache and MySQL gives parameter 3

Note 3: Selections 4 and 8 are ignored hence if included have no effect.

Note 4: Selecting this menu option with the servers already stopped script ignores request.

Note 5: If one of the servers is running as a service only the server running as a standard program will be stopped.

## Individual Server Control

This menu option opens the individual server control sub-menu.

You can individually start and stop each server as a standard program.

You can run one server as a standard program and the other as a service.

## Start Apache Server

Start Apache as a standard program

Note: Runs script unicon\main\start_servers.php with parameter 1

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache server 0 - Do not run program
      Index page     4  1 - Start Index page  0 - Do not start index page

Note 1: A parameter passed to script start_servers.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to run Apache and start index page use parameter 5

Note 3: Selecting this menu option with the server already running script ignores request.

Note 4: If Apache server is running as a service script ignores request.

## Stop Apache Server

Stop Apache as a standard program.

Note: Runs script unicon\main\stop_servers.php with parameter 1

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache server 0 - Do not run program
      Index page     4  1 - Start Index page  0 - Do not start index page

Note 1: A parameter passed to script stop_servers.php overrides defaults.

Note 2: Selection numbers 4 is ignore hence not included when stopping server.

Note 3: Selecting this menu option with the server already stopped script ignores request.

Note 4: If Apache server is running as a service script ignores request.

## Start MySQL Server

Start MySQL as a standard program .

Note: Runs script unicon\main\start_servers.php with parameter 2

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Mysql          2  1 - Run MySQL  server 0 - Do not run program
      MySQL Console  8  1 - Display console   0 - Do not display consolee

Note 1: A parameter passed to script start_servers.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to run MySQL and MySQL Console use parameter 10

Note 3: Selecting this menu option with the server already running script ignores request.

Note 4: If MySQL server is running as a service script ignores request.

## Stop MySQL Server

Stop MySQL as a standard program.

Note: Runs script unicon\main\stop_servers.php with parameter 2

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Mysql          2  1 - Run MySQL  server 0 - Do not run program
      MySQL Console  8  1 - Display console   0 - Do not display consolee

Note 1: A parameter passed to script stop_servers.php overrides defaults.

Note 2: Selection numbers 8 is ignored when stopping server.

Note 3: Selecting this menu option with the server already stopped script ignores request.

Note 4: If MySQL server is running as a service script ignores request.

## Right Menu

This page you are now viewing shows Unitray’s left and right menus expanded.

Right Menu: Selected with right-mouse button, this runs the servers as a service.

- Top menu item installs and runs both Apache and MySQL as a service.
- Second item stops and uninstalls both services.

Service: Every time you switch your PC on servers are automatically started.

Note: After individual server control all menu items are common these are include in both menus for connivance.

## Install and Run All Services

Installs and runs both Apache and MySQL as a service also opens www index page.

Note: Runs script unicon\main\service_install_run.php with parameter 7

This parameter is optional, in its absents defaults are used these are configurable in file unicon\main\includes\config.inc.php

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache as a service 0 - Do not run service
      Mysql          2  1 - Run MySQL  as a service 0 - Do not run service
      Index page     4  1 - Start Index page        0 - Do not start index page

Note 1: A parameter passed to script service_install_run.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to run Apache and MySQL service gives parameter 3

Note 3: You cannot use selection 4 on its own you must include the Apache server. Hence 4+1 would start the Apache server and display the index page at start-up.

Note 4: Selecting this menu option with the servers already running as a service script ignores request.

Note 5: If one of the servers is running as a standard program only the free server will be installed and run as a service.

## Stop and Remove All Services

Stops Apache and MySQL services and uninstals both services.

Note: Runs script unicon\main\service_stop_uninstall.php with parameter 7

This parameter is optional, in its absents defaults are used these are configurable in file unicon\main\includes\config.inc.php

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache as a service 0 - Do not run service
      Mysql          2  1 - Run MySQL  as a service 0 - Do not run service
      Index page     4  1 - Start Index page        0 - Do not start index page

Note 1: A parameter passed to script service_stop_uninstall.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to stop and unintal Apache and MySQL service gives parameter 3

Note 3: Selection 4 is ignored including it has no effect.

Note 4: Selecting this menu option with the servers already stopped and uninstalled script ignores request.

Note 5: If one of the servers is running as a standard program only the server runining as a service will be stopped and uninstalled.

## Individual Server Control

This menu option opens the individual server control sub-menu.

You can individually install/run or stop/uninstall each server as a service.

You can run one server as a service and the other as a standard program.

Note: There are no restrictions hence you can runs the servers as a service from a USB memory stick. When you have finished remember to uninstall service.

## Install Run Apache Service

Install and run Apache as a service.

Note: Runs script unicon\main\service_install_run.php with parameter 1

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1  1 - Run Apache as a service 0 - Do not run service
      Index page     4  1 - Start Index page        0 - Do not start index page

Note 1: A parameter passed to script service_install_run.php overrides defaults.

Note 2: Add selection numbers to create a parameter e.g to run Apache and start index page use parameter 5

Note 3: Selecting this menu option with the service already installed and running script ignores request.

Note 4: If Apache server is running as a standard program script ignores request.

## Stop Uninstall Apache Service

Stop and uninstall Apache service.

Note: Runs script unicon\main\service_stop_uninstall.php with parameter 1

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Apache         1 - Run Apache as a service 0 - Do not run service
      Index page     4 - Start Index page        0 - Do not start index page

Note 1: A parameter passed to script service_stop_uninstall.php overrides defaults.

Note 2: Selection number 4 is ignored by script.

Note 3: Selecting this menu option with the service already stopped and uninstalled script ignores request.

Note 4: If Apache server is running as a standard program script ignores request.

## Install Run MySQL Service

Install and run MySQL as a service.

Note: Runs script unicon\main\service_install_run.php with parameter 2

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Mysql          2  1 - Run MySQL  as a service 0 - Do not run service

Note 1: A parameter passed to script service_install_run.php overrides defaults.

Note 2: Selecting this menu option with the service already installed and running script ignores request.

Note 3: If MySQL server is running as a standard program script ignores request.

## Stop Uninstall MySQL Service

Stop and uninstall MySQL service.

Note: Runs script unicon\main\service_stop_uninstall.php with parameter 2

Parameters are binary coded allowing single bit option selection as follows:

                        Bit function
      Mysql          2  1 - Run MySQL  as a service 0 - Do not run service

Note 1: A parameter passed to script service_stop_uninstall.php overrides defaults.

Note 2: Selecting this menu option with the service already stopped and uninstalled script ignores request.

Note 3: If MySQL server is running as a standard program script ignores request.

## Install

Extract Uniform Server to any folder on any hard drive or USB memory stick.

Note: Path to UniServer folder must not contain any spaces in the folder names

c:\myserver\UniServer - Correct

c:\my_server\UniServer - Correct

c:\my server\UniServer - Incorrect servers will fail to start

## Run - Quick Start Guide

Navigate to folder UniServer and double click on Start.exe
This starts the tray menu where your servers are controlled from.

Left Menu: Selected with left-mouse button, this runs the servers as a standard program.

- Top menu item starts both Apache and MySQL servers.
- Second item stops both servers.

Standard program: Every time you switch your PC on you need to restart the servers.

Right Menu: Selected with right-mouse button, this runs the servers as a service.

- Top menu item installs and runs both Apache and MySQL as a service.
- Second item stops and uninstalls both services.

Service: Every time you switch your PC on servers are automatically started.

Note 1: If the servers fail to start run "Server Status" this provides diagnostic information.

Note 2: If path to folder UniServer contains spaces servers will not start and an error is reported in an alert box.

## Server Status

Provides diagnostic information, as shown in this example:

     Your Internet IP Address = 99.999.22.181
     Accessible from Internet = NO
     PHP INI: php.ini file    = Development

     APACHE SERVER:
       Apache port            = 81
       Apache SSL port        = 444
       Apache executable name = Apache1.exe
       Apache service name    = ApacheS2
       Apache SSL server      = Enabled
       Apache run status      = Not running
       Apache install status  = Free to install

     MySQL SERVER:
       MySQL port             = 3307
       MySQL executable name  = mysqld-opt1.exe
       MySQL service name     = MySQLS2
       MySQL run status       = Not running
       MySQL install status   = Free to install

     PORT STATUS:
       Apache port     = 81 Is free to use
       Apache SSL port = 444 Is free to use
       MySQL port      = 3307 Is free to use.

Note: The values displayed are the result of running the move-script once. In other words I am running two servers this being the second one.

## Apache Syntax Check

If you make changes to the server configuration files this menu item provides a quick check for Apache syntax errors.

Example with no errors:

     Server version: Apache/2.2.11 (Win32)
     Server built:   Dec 10 2008 00:10:06

     Syntax OK
     Press any key to continue . . .

Exampe with errors:

     Server version: Apache/2.2.11 (Win32)
     Server built:   Dec 10 2008 00:10:06

     Syntax error on line 124 of usr/local/apache2/conf/httpd.conf:
     Port must be specified
     Press any key to continue . . .

## Admin Panel

Admin panel provides fine server control and security configuration.

It allows you to set the root password for the MySQL server, which should be the first thing you do on a new server installation.

You can easily set main-parameters for each server configuration file.

For a personal server or to restrict access to specific areas you can set a name and password for each area.

The first port of call is Admin Panel’s security centre it is comprehensive and details each security option avaiable.

Note 1: By default the server is locked down allowing only local access.

Note 2: Double clicking on UniTray’s icon opens Admin Panel

## phpMyAdmin

phpMyAdmin is a software tool written in PHP to handle the administration of MySQL server.

It supports a wide range of operations such as managing databases, tables, fields, relations, indexes, users, permissions, etc these are accessible via a web page interface.

You can either directly execute any SQL statement or run a SQL file.

## WWW Root

To view your web site this menu item takes you to the index page contained in folder UniServer\www

Note 1: With the exception of file .htaccess you can delete the content of this folder and replace it with yours.

Note 2: To put your serves on-line it needs to be enabled in file .htaccess edit the file and change these three lines:

Location: UniServer\www\.htaccess

From:

        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1

To:

        #Order Deny,Allow
        #Deny from all
        #Allow from 127.0.0.1

## SSL Root

To view your secure web site this menu item takes you to the index page contained in folder UniServer\SSL

Note 1: With the exception of file .htaccess you can delete the content of this folder and replace it with yours.

Note 2: SSL by default is disabled, you need to create a server certificate and key to have it automatically enabled hence navigate to the Advance section and generate a certificate and key.

Note 3: To put your serves on-line it needs to be enabled in file .htaccess edit the file and change these three lines:

Location: UniServer\ssl\.htaccess

From:

        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1

To:

        #Order Deny,Allow
        #Deny from all
        #Allow from 127.0.0.1

## Advanced

This menu opens a sub-menu with items allowing you to configure the servers via their configuration files.

If the MySQL password has become corrupted the defaults can be restored using the first sub-menu option.

Running a personal secure server requires a server certificate and key this is easily generated and installed using the second sub-menu option.

Running multi-servers on the same PC is a snip using the third sub-menu option. Extract a new UniServer and run the script once, extract another new UniServer and run the script twice. This gives you two independent servers, when run the tray icons will display 2 and 3 respectively. The main server is number 1 and uses the standard ports.

## MySQL password restore

The MySQL password although very rare can become corrupted for any number of reasons click this menu item to restore the default name and password both to root

Generally the password gets corrupted because a user changes it using phpMyAdmin. The correct way to change the root MySQL password is via Admin Panel.

Note: Setting up additional user accounts with name/password access use phpMyAdmin make sure these users have limited privileges.

## Server Certificate and Key Generator

Running a personal secure server requires a server certificate and key run this sub-menu option.

The certificate and key generation script will prompt for three pieces of information. If you are running a local test server just press enter to accept the defaults.

If you have a real domain name for example www.fred.com enter that at the CN (common name prompt). The remaining two prompts OU (organisation unit) and O (organisation) are not strictly required hence enter something that meets your requirements.

Once the server certificate and key have been generated re-start the servers for the new configuration to be picked up by Apache.

Remember to type https://localhost/ into your browser or if you have a real domain name https://www.mydomain.com/ to access the secure site.

## Move Servers multi-server operation

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

Start with a clean version of UniServer run the script one or more times, Unitray's icon digit increments each time you move the server.

Unless you want to use specific ports and names accept defaults shown in brackets by pressing enter. When run for the first time the output looks similar to 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] :

## Perl Shebang Update cgi-bin

Perl scripts contain a Shebang (first line) this informs a server where to find the Perl program. Uniform Server is dynamic and tracks any path changes automatically updating the Shebang.

However if the server remains static and you have added new scripts in the cgi-bin folder the Shebang is never updated. Hence run this menu item after installing new scripts. It updates the Shebang in all files to the current Perl location.

## Perl win2unix + Shebang Update

Perl scripts developed on Windows will not run on a Unix machine they require conversion to a Unix format.

This script copies all files in cgi-bin to a new folder \cgi-bin-unix\

Scripts in this new folder are converted from Windows to Unix format.

- Converts end of line:
  Esc: \r\n to \n
  Dec: #10#13 to #13
  Hex: 0D0A to 0A
- Replaces Windows shebang with Unix shebang

## Edit Apache Configuration

Opens Apache configuration file usr\local\apache2\conf\httpd.conf in Notepad ready for editing.

## Edit MySQL Configuration

Opens MySQL configuration file usr\local\mysql\my.cnf in Notepad ready for editing.

The most likely reason for editing this file is to enable innodb

- Locate this line: skip-innodb
- Change to : #skip-innodb

Note: Enabling innodb initially crates three large files these will increase in size

- ib_logfile0 file size: 5M
- ib_logfile1 file size: 5M
- ibdata1 file size: 10M

## Edit php.ini Production

After editing the file save it and run php.ini switch to Production this overwrites php.ini

Note 1: For the changes to be picked-up restart the servers

Note 2: If changes are common to both production and development both configurations require changing.

## Edit php.ini Development

After editing the file save it and run php.ini switch to Development this overwrites php.ini

Note 1: For the changes to be picked-up restart the servers

Note 2: If changes are common to both production and development both configurations require changing.

## php.ini switch to Production

Copies file: UniServer\usr\local\php\php.ini_production_nano

To file: UniServer\usr\local\php\php.ini

Note: Requires a server restart for the new file to be picked-up.

## php.ini switch to Development

Copies file: UniServer\usr\local\php\php.ini_delvelopment_nano

To file: UniServer\usr\local\php\php.ini

Note: Requires a server restart for the new file to be picked-up.

## Start Portable Cron

Starts script UniServer\unicon\main\run_cron.php in the background (hidden)

The script periodically runs a list of scripts contained in a configuration file cron.ini.

Edit file UniServer\unicon\main\cron.ini
Add scripts as required.

     A) Server Script Example

     [drupal]
     start  = 2009-09-21 2:56:52
     period = hourly
     path   = http://localhost/drupal/cron.php
     ref =

      B) CLI Script Example

     [dtdns]
     start  = 2009-09-21 2:56:52
     period = 36000                 ; 10 Mins as required by DtDNS
     path   = ..\..\plugins\dtdns_updater\dtdns_updater.php
     ref =

## Stop Portable Cron

Stops script UniServer\unicon\main\run_cron.php

## Server information and Logs

Opens a sub-menu with items allowing you to select and view specific server information.

For development having the ability to quickly display error log files and display server status will reduce amount of time when resolving server issues.

## Server Information

Displays Apache Server Information for example:

Subpages:

Configuration Files, Server Settings, Module List, Active Hooks

Loaded Modules:

mod_php5.c, mod_vhost_alias.c, mod_version.c, mod_userdir.c, etc

Note: Selecting a loaded module link displays all its current settings either set in the configuration file or defaults that are being used.

## Server Status

Displays Apache’s current running status:

Example of information provided:

Server Version: Apache/2.2.11 (Win32) PHP/5.3.0RC4 DAV/2

Server Built: Dec 10 2008 00:10:06

Current Time: Monday, 21-Jun-2009 09:46:42 GMT Standard Time

Restart Time: Monday, 21-Jun-2009 09:04:23 GMT Standard Time

Parent Server Generation: 0

Server uptime: 42 minutes 19 seconds

Total accesses: 53 - Total Traffic: 101 kB

.0209 requests/sec - 40 B/second - 1951 B/request

1 requests currently being processed, 249 idle workers

... etc

## PHP Information

Displays PHP information.

A comprehensive web page detailing PHP’s configuration and modules loaded.

Note: Generated with function phpinfo()

## Apache Error Log

Displays Apache’s error log file.

Location: usr\local\apache2\logs\error.log

Note: Overtime this becomes increasingly large. You can safely delete this file at any time.

## Apache Access Log

Displays Apache’s Access log file.

Location: usr\local\apache2\logs\access.log

Note: Overtime this becomes increasingly large (it logs every access). You can safely delete this file at any time.

## Apache SSL Error Log

Displays Apache’s SSL error log file.

Location: usr\local\apache2\logs\error_ssl.log

Note: Overtime this becomes increasingly large. You can safely delete this file at any time.

## Apache SSL Access Log

Displays Apache’s SSL Access log file.

Location: usr\local\apache2\logs\access_ssl.log

Note: Overtime this becomes increasingly large (logs ever access). You can safely delete this file at any time.

## MySQL Error Log

Displays MySQL Error log file.

Location: usr\local\mysql\data\mysql.err

Note: Overtime this becomes increasingly large. You can safely delete this file at any time.

## Reload Menu

This allows you to reload the menu configuration file. Preferably make small changes to this file, run menu item to quickly see any adverse effects of making changes. Makes it easier to revert back to a working menu.

Location of configuration file: unicon\tray_menu\UniTray1.ini

Note: If you have moved the servers UniTray1.ini will be diffirent, moving the servers incremets the digit each time the move script is run.

## Server Documentation

Opens folder UniServer\docs in a browser allowing you to access server documentation.

## About

About displays UniTray intro information in particular it acknowledges Onno Broekmans as the menu designer and provides a link to the designers site.

## Exit

Click this menu option to close UniTray.

Note: It does not close the servers. If you close UniTray with the servers running and wish to stop them just run UniTray again.

Developed By The Uniform Server Development Team