Site Owner

From BOARD18 Project WIKI
Jump to: navigation, search
This page has been updated to comply with Release 2.4.x of BOARD18.

Introduction

BOARD18 does not [yet] have any code packaging or auto install facilities.
If you wish to install BOARD18 on your server, you will have to follow the manual instructions in the How To documents referred to on this page.
On the other hand, BOARD18 does have two ways to auto install game boxes. See below for details.

The developer guidelines added to the end of this page may also be of interest to you.

Initial Install

Follow the instructions in this How To document to download BOARD18 and install it on your server.

Adding Game Boxes

Follow the instructions in this How To document to mass download BOARD18 game boxes into a newly installed BOARD18.

Follow the instructions in this How To document to download individual BOARD18 game boxes into an existing BOARD18.

Version Update

Follow the instructions in this How To document to update an existing BOARD18 website on your server to a new release of BOARD18.

Making The Session Timeout In auth.php Actually Work

Timing Out A PHP Session

If a player is not signed on or is inactive for an excessive period; then the auth.php module, which is included at the start of all password protected code, will terminate the players access.

Being very liberal, the current implementation of auth.php defines "an excessive period" as over 24 hours. This is done as follows:

  session_start();
  if (isset($_SESSION['LAST_ACTIVITY']) && 
          (time() - $_SESSION['LAST_ACTIVITY'] > 86400)) { // 1 day
    // last request was more than one day ago
    session_unset();     // unset $_SESSION variable for the run-time 
    session_destroy();   // destroy session data in storage
  }
  $_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp

Making It Actually Work

Unfortunatly this liberal amount of time can be overridden by a PHP built in facility called garbage collection. The way this works is complex and somewhat random. For more on this you can reference this discussion. Suffice it to say that two php.ini settings must be altered to overcome this problem. They are session.gc_maxlifetime and session.save.path. The third and fourth lines in the following listing can be used as an example of this.

 
[server]$ more /home/priceweb/.php/5.4/phprc 
log_errors = 1
error_log = /home/priceweb/php.log
session.gc_maxlifetime = 86400
session.save.path = /home/priceweb/bd18sessions
[server]$ 

The number of seconds specified in session.gc_maxlifetime must be at least as large as that specified in auth.php.

The directory specified in session.save.path will be used to save all session data. This normally defaults to /temp but making it unique stops the session.gc_maxlifetime value from being overridden by another process using the same temp directory.

Finally, DO NOT change session.cookie_lifetime from its default value of 0! If the player closes the browser then we wish the session to be terminated regardless of time. A session.cookie_lifetime of 0 will make this so.

Developer Guidelines

BOARD18 is a very small project. At the time of this writing only 10 people have contributed code, documentation or other work to BOARD18.
The testing community for BOARD18 consists of fewer than 20 people. Thus there is no formal structure to the project.
The creator and main designer/coder of BOARD18 is Rich Price. And he is also the owner of the project.
You can contact him by email at rich at board18.org.

Communication with other Developers

The BOARD18 project has a closed Google group called "BOARD18 Dev" that was used by developers to communicate about the project and about code development.
This group is no longer used very much.

Reporting Bugs

The BOARD18 project also has a BUGZILLA issue tracker at bugs.board18.org. This tool is used to track bugs, enhancement requests and other tasks.

BOARD18 Code Repositories

The BOARD18 project keeps its code repositories at Github.