Difference between revisions of "GOCDB/Regional Module Technical Documentation"
(→Apache) |
|||
Line 110: | Line 110: | ||
=== Apache === | === Apache === | ||
Apache http server version 2.2 or higher. | |||
=== PHPUnit === | === PHPUnit === |
Revision as of 13:01, 12 November 2013
Main | EGI.eu operations services | Support | Documentation | Tools | Activities | Performance | Technology | Catch-all Services | Resource Allocation | Security |
GOC DB menu: | Home • | Documentation Index • |
This page is the main install documentation for GOCDB Version 5
Download
LATEST VERSION: GOCDBv5
- A packaged V5 release will also be made available for download soon.
- In the meantime, early adopters can check out the v5 src from svn:
svn checkout https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/branches/gocdb/Doctrine%20Web%20Portal
Note, if you are asked to authenticate with a client certificate as below, you can dismiss by pressing Enter
Authentication realm: https://www.sysadmin.hep.ac.uk:443 Client certificate filename: <ENTER to dismiss>
OLD v4.4 Install doc has been relocated
Deployment
(Under Construction - more details comming soon)
System prerequisites
GOCDB-5 has two components: a database and a web front end. Both components can work on the same machine but it is very likely that in most environments they will be separated. This is what we would advise. Machine requirements for these 2 components are described below.
Database
Version 5 of GocDB uses Doctrine ORM (Object Relational Mapping) as it's interface to the datastore. This allows GocDB to be deployed to either a Oracle, MySQL or SQLite database (Postgres comming soon).
Oracle:
- Required database: Oracle 11g or higher (note: the free Oracle 11g XE Express Editions which comes with a free license is perfectly suitable. 10g may also work but is untested)
- Required space: 150 MB Dowload free Oracle XE from the following link and follow the installation instructions: http://www.oracle.com/technetwork/database/express-edition/overview/index.html
- For gocdb admin tasks, we also recommend the SQL Developer tool.
MySQL:
- Required database: Any version of MySQL will work including the free MySQL Community Server edition
- Required space: See MySQL install guide:http://dev.mysql.com/doc/refman/5.7/en/installing.html
SQLite:
- Required database: SQLite 3.x.x or higher. SQLite is produced as an open source database and all versions are free to use.
- Required: See the SQLite documentation: www.sqlite.org/docs.html
Web frontend
The machine to use as the web frontend will need the following:
- Apache http server version 2.2 or higher.
- PHP version 5.3 or higher (version <=5.2 has some OOP related bugs).
- PHP oci8 extension
- PHP oci8 extension
- a X509 host certificate for the machine
Optional
- PHP Unit for testing developments
Preparing your installation
Database preparation
GocDB v5 comes with deploy script which will setup the schema required for GocDB. The only preperation is that you have setup a database in your chosen database provider and have the user access details which are required later in the installation when configuring GocDB for deployment.
GOCDB file system
Place the GocDB source folder on your chosen web server.
PEAR
Pear is recommended to install Doctrine and PHPUnit, many builds of PHP come pre-bundled with PEAR.
http://pear.php.net/manual/en/installation.getting.php
Verify the PEAR installation by running pear version on the command line.
$ pear version PEAR Version: 1.9.4 PHP Version: 5.3.8 Zend Engine Version: 2.3.0 Running on: Windows NT ESCPC0095 6.1 build 7601 (Windows 7 Business Edition Service Pack 1) i586
Doctrine
Doctrine can be installed using PEAR. First add the Doctrine and Symfony channels to PEAR:
$pear channel-discover pear.doctrine-project.org $pear channel-discover pear.symfony.com
Then install Doctrine and it's dependencies:
$pear install --alldeps doctrine/DoctrineORM
Verify the Doctrine installation by running "doctrine --version" on the command line:
$ doctrine --version Doctrine Command Line Interface version 2.3.3
See the possible errors and troubleshooting section if you encounter errors at this point.
Apache
Apache http server version 2.2 or higher.
PHPUnit
PHPUnit is an optional choice for GOCDB users. GOCDB5 includes a test suite of unit tests that can be used to verify buisness logic and database connections for a deployed instance of GOCDB. In addition developers extending and modifying GOCDB can write unit tests for their own developements. To install PHPUnit use PEAR:
$pear clear-cache $pear config-set auto_discover 1 $pear install pear.phpunit.de/PHPUnit
This install can then be verified using "phpunit --version" on the command line:
$ phpunit --version PHPUnit 3.7.27 by Sebastian Bergmann.
Deploying GOCDB5
Configuration of the database connection
You should now have all the required blocks in place to deploy GOCDB V5. To Deploy the database schema to your desired database using Doctrine navigate to to gocDBSrc/lib/Doctrine/Deploy folder. In this folder you will configure the database connection details for your database. Depending on the type of database you are using open the bootstrap_doctrine.php file your database:
bootstrap_doctrine.php.mysql -> For MySQL databases bootstrap_doctrine.php.oci -> For Oracle databases bootstrap_doctrine.php.sqlite -> For SQLite databases
In the bootstrap_doctrine file complete the connection details for your database.
For Oracle:
$conn = array( 'driver' => 'oci8', 'user' => 'doctrine', 'password' => 'password', 'host' => 'localhost', 'port' => 1521, /*'service' = true,*/ 'dbname' => 'XE' ); # Note, you may need to add 'service' = true as commented out above depending on your Oracle server
For MySQL:
$conn = array( 'driver' => 'pdo_mysql', 'user' => 'Doctrine', 'password' => 'password', 'host' => '127.0.0.1', 'dbname' => 'doctrine' );
For SQLite:
$conn = array( 'driver' => 'pdo_sqlite', 'path' => __DIR__ . '/db.sqlite', );
Note: Doctrine can use APC caching however this is not suitable for all deployments. To disable comment out the APC configuration lines within the bootstrap_doctrine.php file:
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ApcCache()); $config->setQueryCacheImpl(new \Doctrine\Common\Cache\ApcCache());
Deploying GOCDB
To deploy GocDB can be deployed as a blank instance ready for use of as a sample instance with a small set of example data to demonstrate GocDB. There are three deploy scripts provided for each database supported, these can be found in the /lib/Doctrine/deploy folder:
oracleDeploy.sh mysqlDeploy.sh sqliteDeploy.sh
By supplying a flag when executing the script you can deploy either a new empty database or a sample database eg:
$ ./oracleDeploy.sh -s Deploying GocDB with sample data
or
$ ./oracleDeploy.sh -n Deploying new empty GocDB instance
Apache Configuration
httpd.conf
Now that your database is deployed the final step is to configure Apache.
A few modules need to be enabled for GOCDB to work, check these are enabled on your Apache and if not enable them.
In httpd.conf enable ssl_module by un-commenting these lines:
LoadModule ssl_module modules/mod_ssl.so
and
extension=php_openssl.dll
Depending on the database you are using the supporting module may also need to be enabled. For example Oracle requires the oracle module to be uncommented:
extension=php_oci8_11g.dll
Take the file gocdbssl.conf and place this file in the apache/conf/extra folder. In httpd.conf include the gocdbssl.con by adding the following line under the heading Supplemental Configuration:
Include conf/extra/gocdbssl.conf
gocdbssl.conf
This file defines the location of resources required by GocDB.
Paths
The first step is to setup the paths for the DocumentRoot, ErrorLog and TransferLog and define the ServerName and ServerAdmin details for your particular web service where you are hosting GocDB.
SSL Keys
The SSLCertificateFile should point to the location of your server SSL key file. The SSLCertificateKeyFile -- The SSLCACertificationPath should point to the location of your CA certificates which can be obtained from: //Ask Dave
For development the SSLCertificatedFile and SSLCertificateKeyFile can be self signed certificates. However these must not be used in production.
Aliases
The final step is to set the Alias to map your desired directory for GocDB webportal and Programmatic Interface (PI) to the correct folder and ensure the correct rules are defined for your server.
For the webportal the following settings are an example:
Alias "/portal" "/gocDBsrc/htdocs/web_portal" <Directory "/gocDBsrc/htdocs/web_portal"> SSLVerifyClient require Options FollowSymLinks Indexes Order deny,allow Allow from 127.0.0.1 deny from all </Directory>
The alias should and file location should also be set for the public PI and private PI. Public PI:
Alias "/gocdbpi/public" "/gocDBsrc/htdocs/PI/public" <Directory "/gocDBsrc/htdocs/PI/public">
Private PI:
Alias "/gocdbpi/private" "/gocDBsrc/htdocs/PI/private" <Directory "/gocDBsrc/htdocs/PI/private">
First Use
You should now be able to navigate to the GocDB webportal on your host using the URL defined in your alias. You will need to install a browser certificate that is suitable for the SSL keys you defined for your host to be able to view GocDB.