Difference between revisions of "Software Collections:PostgreSQL"

From SME Server
Jump to navigationJump to search
Line 60: Line 60:
  
 
====Configure private/public access====
 
====Configure private/public access====
If your SME Server is hosting the application and is being accessed by other hosts either locally (LAN) or remotely (WAN) the ports and access privileges need to be set. For this issue the following commands:
+
If your SME Server is hosting the application and is being accessed by other hosts either locally (LAN) or remotely (WAN) the ports and access privileges need to be set. For this issue the following commands (where 5432 is the port that PostgreSQL can be reached):
 
  config setprop postgresql92-postgresql TCPPort 5432
 
  config setprop postgresql92-postgresql TCPPort 5432
 
  config setprop postgresql92-postgresql UDPPort 5432
 
  config setprop postgresql92-postgresql UDPPort 5432

Revision as of 17:01, 6 January 2015

Warning.png Work in Progress:
This page is a Work in Progress. The contents off this page may be in flux, please have a look at this page history the to see list of changes.


Important.png Note:
Software Collections is only available for SME Server 9, 64-bit!


Postgresql.png

Installing and running PostgreSQL via Software collections

Software Collections has been introduced by Redhat as a safe way to run selective applications on Redhat based distributions in an isolated environment (separate directory), thus not effecting the base installation of the OS. This provides the possibility to e.g. test an application, install a higher version then the version installed by the base system (e.g. PHP), or temporarily use an application.

Software Collections applications can be started at boot as a system service, manually or in a specific shell.

PostgreSQL

Installation

To be able to install an application from the Software Collections, one must install software collections first. Please see Software collections on how to install this.


Required repository

After installing Software Collections, the scl repository for PostgreSQL has to added to the yum repositories. Please see here on how the enable the scl-postgresql92 repository.


Install application

After installing the scl-postgresql92 repository, PostgreSQL can be installed by issuing the following command:

yum install postgresql92 --enablrepo=scl-postgresql

Once installed, the application is installed on your SME Server at /opt/rh/postgresql92 as an isolated environment for the application.

Only 1 service script has been installed on your base SME Server which is /etc/rc.d/init.d/postgresql92-postgresql. This script will start and stop the installed application.


Test installed application

Once PostgreSQL has been installed, you can check if it is correctly installed by issuing:

scl -l

which will provide you a listing of all applications that are available on your system installed via Software Collections.

A simple man page about the installed application is now available via:

scl enable postgresql92 'man postgresql92'

press 'q' to leave the man page


Initialize database

PostgreSQL requires the initialization of t's database environment. This can be done by the following command:

service postgresql92-postgresql initdb


Start/Stop the application

PostgreSQL is now installed and initialized, and can be started and stopped via:

/etc/rc.d/init.d/postgresql92-postgres start

and

/etc/rc.d/init.d/postgresql92-postgres start


Start/Stop PostgreSQL as a system service

Issue the following commands as root:

ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/S99postgresql92-postgresql
chkconfig postgresql92-postgresql on
config set postgresql92-postgresql service
config setprop postgresql92-postgresql status enabled

The application will now automatically start at boot time as a system service.


Configure private/public access

If your SME Server is hosting the application and is being accessed by other hosts either locally (LAN) or remotely (WAN) the ports and access privileges need to be set. For this issue the following commands (where 5432 is the port that PostgreSQL can be reached):

config setprop postgresql92-postgresql TCPPort 5432
config setprop postgresql92-postgresql UDPPort 5432
config setprop postgresql92-postgresql access private

followed by the event to update the firewall rules:

signal-event remoteaccess-update

You can toggle between private and public access followed by the remoteaccess-update command.