To install, simply upload the files in the archive to your webserver, and navigate to http://yoursite.com/install/, then follow the prompts.

Prerequisites:

PHP

Installation prerequisites depend on your host.  PHP minimum version is 5.3, recommended version is php 5.4.  Some inexpensive shared hosts default to version 5.2 and you may need to request an upgrade to version 5.3 or later.  Virtually all shared hosts have version 5.3 available – it just may not be the default version.

You can confirm the version of php installed on your server by loading the following file in your browser: http://demo.restaurantbiller.com/install/phpinfo.php (of course change the domain name to match your own website).

Your installation of PHP must have the GD library installed.  Most shared hosts will have this.  Some development environments (some versions of Ubuntu) may not have it by default.  On Ubuntu, it can be installed by issuing the following commands:

sudo apt-get install php5-gd
sudo apachectl restart

Also, some OS distributions have remove json and curl support from their default PHP distribution (ubuntu). http://stackoverflow.com/questions/18239405/php-fatal-error-call-to-undefined-function-json-decode

to resolve this in Ubuntu 13.10:

sudo apt-get install php5-json
sudo apt-get install php5-curl
sudo apachectl restart

Other php prerequisites are checked for during the installation process, with links to the relevant documentation.

PHP error logs

Most customers can ignore this section, but it may be useful for developers customizing the php code.

Because changing the error_reporting setting can be difficult on some shared hosts, Restaurant Biller automatically overrides the error_reporting setting in the file /includes/errorConfig.php.  You can change the setting there to increase the level of error reporting during development and testing.

We also override the location of the error_log file (and turn on logging) in that errorConfig.php file.  The location of the error_log file is: templates_c/error_log (which is guaranteed to be readable and writeable by your account by the installation process).

All of this means that in some cases, your server log messages may be distributed across multiple files – the apache error log (which may contain 404 ‘file not found’ messages for missing images, etc), the error_log location defined in your php.ini file (which may contain php parsing errors if you have incorrectly customized some of the root php files such as index.php), and the one we define above.   In almost every case, any errors of interest will be in the easily located templates_c/error_log location.

Note: the standard error log can be viewed in /admin > server log, and you can turn on debug level logging there as well.

 Database

The installation process will attempt to create the mysql database specified during the installation, if one does not already exist.  If your host does not allow your code (user account) to create databases, then you must use the tools they provide to create a new (blank) database, and set appropriate (write, create) permissions for the user account provided.

If you are having trouble connecting to your database, you can test the your credentials and other connection information by loading up /install/connectionTest.php in your browser, after editing the obvious login information in that file.  This file has no dependencies on any other code so any problems that it has connecting with the database must be related to your infrastructure (typically it’s a matter of user permissions).

File/folder permissions:

The installation process will check for file and folder permissions required for successful installation and operation.  The install process will display the permissions requirements at the appropriate time, so you can change to appropriate tools to modify the permissions of the appropriate files/folders.  This typically is done via ssh command prompt, but can be done with most ftp clients.  The process will not proceed until the permissions are correct.

If you install restaurant biller to a sub-folder (EG mydomain.com/orders/ ) you will have to edit the .htaccess file  to supply the name of the folder.  There are comments near the top of the file indicating what needs to change.

You may also need to make additional changes if you are running a multi-site installation in a sub-folder.  This is not a common configuration – contact allan@restaurantbiller.com for more information on this configuration.

Licensing requirements:

Restaurant Biller is licensed per domain name, which is checked during the installation process, and at other times during the running of the application.  In order to successfully install, you must provide us with the fully qualified domain name (including the www. or orders. part), so that we can associate the license key you will be given with the domain name.  You will also be provided with a license to ‘localhost’ for development/testing purposes.  Some developers like to create a ‘fake’ domain name using their local hosts configuration file for development purposes to help them manage multiple development projects.  If you require a development address other than localhost, let us know and we’ll update the license to accommodate this.

Super Administrator:

In the last step of the installation wizard, you will be asked for the name of your restaurant, and the username/password for the administrator user.  All of these can be changed from the administration section of the application.  However it’s important to understand that the administrator of this first restaurant created is the ‘super administrator’ for the system, who has access to the configuration for all of the other restaurants in the system.  If you are setting up a multi-restaurant installation of the system, do not use this first restaurant as one of your third-party restaurants.  There is a configuration option in the restaurant settings to not include the restaurant in search results  (admin > restaurant settings > include restaurant in portal search result). You can use this setting if this first restaurant will not be a ‘live’ restaurant.

Once the installation process is finished, you can go to http://yoursite.com/admin/ to start configuring your restaurant(s).