Requirements
Hardware Requirements
There are many possible
configurations that could run this application. The scale of the
enterprise obviously will have a significant bearing on the final
configuration.
The operating system and the
database engine chosen will have the largest bearing on System
requirements. Each client connection to the web server and database
engine will also consume RAM so the more connections the larger the
RAM requirement. Similarly disk space required is a function of the
volume of customers, suppliers and transactions. Suffice it to say
that due to the efficiency of the components of the system the
demands on the hardware are exceptionally light by client server
application standards.
As a guide, an installation for up to 50 simultaneous users could
consist of the following: a Linux operating system, an Apache web
server, an entry level server with 512 MB RAM and a 10 Megabit
network card. This would provide more than adequate performance.
100 Megabit network cards are now entry level. RAID SCSI swappable
disks are preferred in any mission critical environment where disk
access is intensive.
With multiple servers with with SMP, load balancing, a separate
database server, and large amounts of RAM the limit on database
size and the number can be scaled to the most demanding businesses.
Software Requirements
- PHP
greater than 4.2. The system is
therefore operating system independent since PHP can be configured
as a CGI module for use on MS IIS or as a module for Apache under
either Windows (NT, 2000 or XP) or Unix/Linux. If transfer of EDI
orders is required the ftp extensions for PHP will be needed.
- MySQL-Max
with Innodb transactional tables support. Innodb was introduced in
2001 to MySQL and has Oracle like functionality – with similar
speed. (The system could be used with Oracle or other database
systems too with minimal modification.) MySQL later than version 4
has Innodb tables in by default. Since MySQL represents such good
value for money it has been used. An example configuration file
my.cnf normally under /usr/local/mysql/var is available in the mysql
documentation to show typical settings for the Innodb configuration.
The expected size of the data is useful although additional data
files can be created retrospectively as necessary. Note that only
the tables that require transaction support are defined as Innodb
tables. There is always debate but the MyISAM tables are reputed to
be faster.
- A web server. Apache
makes the most sense – but
most web servers are supported by PHP in various forms.
- If the web server is
accessible over the Internet and not just over a LAN then encrypted
communications are required. The openssl and mod-ssl modules for
apache can be easily used to ensure all data is transmitted in
encrypted form.
There are many sources of
information on the compilation and installation of MySQL and PHP. See
the following links:
http://logidac.com/apache/apache-install-rpm.phtml
http://www.linux-sottises.net/en_apache_install.php
The system could be used with many
other database servers but it is tested and developed on MySQL.
Independent benchmarks show that MySQL is one of the fastest
for most common database tasks, particularly at establishing
connections – since this is required for every page, MySQL is
therefore ideally suited to the web environment.
The ftp library for PHP is only
required for sending order files to a Radio Beacon ftp server for
remote warehouse services.
Using Apache with mod_ssl
and openssl
secure sockets makes sense where
there is any data transmitted over the Internet and not just over a
LAN.