Difference between revisions of "GOCDB/Regional Module Technical Documentation"
< GOCDB
Jump to navigation
Jump to search
m (→Download) |
|||
(23 intermediate revisions by 3 users not shown) | |||
Line 3: | Line 3: | ||
== Download == | == Download == | ||
'''LATEST VERSION: GOCDBv5. | '''LATEST VERSION: GOCDBv5.6''' <br> | ||
https://github.com/GOCDB/gocdb | |||
*Packaged V5. | For install see: | ||
*svn v5. | https://github.com/GOCDB/gocdb/blob/master/INSTALL.md | ||
<pre>svn co https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/tags/gocdb/GOCDB-5. | |||
<!-- | |||
*Packaged V5.2: https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/tags/gocdb/GOCDB-5.2/GocDB-5.2.zip | |||
*svn v5.2: | |||
<pre>svn co https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/tags/gocdb/GOCDB-5.2 | |||
</pre> | </pre> | ||
*Latest dev/trunk svn: | *Latest dev/trunk svn: | ||
<pre>svn checkout https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/branches/gocdb/Doctrine%20Web%20Portal | <pre>svn checkout https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/branches/gocdb/MultipleEndpointsGocDB/</pre> | ||
</pre> | --> | ||
Note, for svn co, if you are asked to authenticate with a client certificate as below, you can dismiss by pressing Enter | |||
<!--<pre>svn checkout https://www.sysadmin.hep.ac.uk/svn/grid-monitoring/branches/gocdb/Doctrine%20Web%20Portal</pre> --> | |||
<!--Note, for svn co, if you are asked to authenticate with a client certificate as below, you can dismiss by pressing Enter | |||
<pre>Authentication realm: https://www.sysadmin.hep.ac.uk:443 | <pre>Authentication realm: https://www.sysadmin.hep.ac.uk:443 | ||
Client certificate filename: <ENTER to dismiss> | Client certificate filename: <ENTER to dismiss> | ||
Line 21: | Line 28: | ||
<br> | <br> | ||
--> | |||
<br> | <br> | ||
== | <!-- | ||
== Prerequisites== | |||
=== System prerequisites === | === System prerequisites === | ||
Line 32: | Line 39: | ||
==== Database ==== | ==== 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 | 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 or MySQL database (Doctrine also supports other DBs but these are untested). | ||
Oracle: | Oracle: | ||
Line 47: | Line 54: | ||
*Required space: See MySQL install guide:http://dev.mysql.com/doc/refman/5.7/en/installing.html | *Required space: See MySQL install guide:http://dev.mysql.com/doc/refman/5.7/en/installing.html | ||
<br> | <br> | ||
==== Web frontend ==== | ==== Web frontend ==== | ||
Line 132: | Line 134: | ||
=== Database Connection === | === 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: | 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 | * Navigate to to '<gocDBSrcHome>/lib/Doctrine' folder. | ||
* Locate the provided template file: ''bootstrap_doctrine_TEMPLATE.php''. In this file you will find three blocks of code commented out, once for each of the supported databased, SQLite, Oracle and MySQL as shown below: | * Locate the provided template file: ''bootstrap_doctrine_TEMPLATE.php''. In this file you will find three blocks of code commented out, once for each of the supported databased, SQLite, Oracle and MySQL as shown below: | ||
* '''Copy this file to''' ''bootstrap_doctrine.php'' in the same dir as the template file and modify to specify your chosen DB connection details. | * '''Copy this file to''' ''bootstrap_doctrine.php'' in the same dir as the template file and modify to specify your chosen DB connection details. | ||
Line 184: | Line 186: | ||
GocDB can be deployed as a blank instance ready for use or as a sample instance with a small amount of example data to demonstrate GocDB. The deploy script can be found at ''/lib/Doctrine/deploy/deploy.sh'':<br> | GocDB can be deployed as a blank instance ready for use or as a sample instance with a small amount of example data to demonstrate GocDB. The deploy script can be found at ''/lib/Doctrine/deploy/deploy.sh'':<br> | ||
'''Windows Users:''' These scripts are designed for deployment on a Linux machine | '''Windows Users:''' These scripts are designed for deployment on a Linux machine (Cygwin on Windows is ok). | ||
By supplying a flag when executing the script you can deploy either a new empty database or a sample database eg: | By supplying a flag when executing the script you can deploy either a new empty database or a sample database eg: | ||
Line 202: | Line 205: | ||
=== Apache Configuration === | === Apache Configuration === | ||
Now that your database is deployed the final step is to configure Apache. | |||
==== /etc/sysconfig/httpd - Oracle configuration ==== | |||
The Oracle environment must be set correctly before starting Apache so that PHP OCI8 works correctly. In general you should set the same variables that are set by the ''$ORACLE_HOME/bin/oracle_env.sh'' script. The necessary environment variables can be set in Apache's environment configuration file. | |||
On RedHat Linux and its derivatives with the default httpd package, this is ''/etc/sysconfig/httpd''. | |||
<pre> | |||
export ORACLE_HOME=/u01/app/oracle/product/12.1 # Adjust pathname to match your installation | |||
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH | |||
</pre> | |||
==== httpd.conf ==== | ==== httpd.conf ==== | ||
A few modules need to be enabled for GOCDB to work, check these are enabled on your Apache and if not enable them. | A few modules need to be enabled for GOCDB to work, check these are enabled on your Apache and if not enable them. | ||
Line 211: | Line 223: | ||
In ''httpd.conf'' enable ssl_module by un-commenting these lines: | In ''httpd.conf'' enable ssl_module by un-commenting these lines: | ||
<pre>LoadModule ssl_module modules/mod_ssl.so</pre> | <pre>LoadModule ssl_module modules/mod_ssl.so</pre> | ||
Line 256: | Line 263: | ||
=== Compiled Entities === | === Compiled Entities === | ||
This step is optional, but for production servers this step is strongly recommended. When Doctrine uses an entity it creates a compiled version of the entity which by default is stored in the machines temporary folder. This is un-suitable for production machines as this may well be emptied. To avoid this uncomment the following line in bootstrap_doctrine.php: | |||
<pre> | <pre> | ||
$config->setProxyDir(__DIR__."/compiledEntities"); | $config->setProxyDir(__DIR__."/compiledEntities"); | ||
Line 263: | Line 270: | ||
You now need to create this folder in the same directory as the ''bootstrap_doctrine.php'' file: | You now need to create this folder in the same directory as the ''bootstrap_doctrine.php'' file: | ||
<pre> | <pre> | ||
$mkdir compiledEntities | $mkdir compiledEntities | ||
</pre> | </pre> | ||
Once this folder is created it needs | Once this folder is created it, your apache server needs write permissions (the exact command may change depending on your apache server): | ||
<pre> | <pre> | ||
Line 275: | Line 279: | ||
</pre> | </pre> | ||
<pre> | |||
$ls -ltrh | |||
$ls - | |||
total 28 | total 28 | ||
-rw-r--r-- 1 root | drwxr--r-- 2 apache root 4.0K Nov 20 16:11 entities | ||
- | -rw-r--r-- 1 apache root 131 Nov 20 16:11 README.txt | ||
- | -rw-r--r-- 1 apache root 219 Nov 20 16:11 cli-config.php | ||
-rw-r--r-- 1 apache root 1.6K Nov 20 16:11 bootstrap.php | |||
-rw-r--r-- 1 apache root 3.0K Nov 20 16:11 bootstrap_doctrine_TEMPLATE.php | |||
-rw-r--r-- 1 apache root 2.8K Nov 27 09:38 bootstrap_doctrine.php | |||
- | drwxr--r-- 2 apache root 4.0K Nov 27 09:39 compiledEntities | ||
</pre | </pre> | ||
Finally command | Finally use the doctrine command line client to generate the compiled entities and store them in the folder: | ||
<pre> | <pre> | ||
doctrine orm:generate-proxies compiledEntities/ | doctrine orm:generate-proxies compiledEntities/ | ||
Line 328: | Line 331: | ||
use PDO for their execution to validate that the results that Doctrine is returning are true. To install the OCI8 drivers for pdo. See: http://www.php.net/manual/en/pdo.drivers.php | use PDO for their execution to validate that the results that Doctrine is returning are true. To install the OCI8 drivers for pdo. See: http://www.php.net/manual/en/pdo.drivers.php | ||
You can test that you have the OCI8 pdo drivers installed via | You can test that you have the OCI8 pdo drivers installed via php info. This can be called on the command line with $php -i or via a script with phpinfo(). There will be a section that lists your enabled pdo drivers, e.g. as below: | ||
There will be a section that lists your enabled pdo drivers, e.g. as below: | |||
<pre> | <pre> | ||
|-----------------------------| | |-----------------------------| | ||
Line 480: | Line 482: | ||
This shows the process of creating an entity, using its get and set methods to enter and retrieve data and then committing it to the database. It also shows the process of using the PDO connection to check that the data exists in the database as we expect. | This shows the process of creating an entity, using its get and set methods to enter and retrieve data and then committing it to the database. It also shows the process of using the PDO connection to check that the data exists in the database as we expect. | ||
--> | |||
Latest revision as of 17:02, 9 November 2016
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.6
https://github.com/GOCDB/gocdb
For install see: https://github.com/GOCDB/gocdb/blob/master/INSTALL.md