Professional Documents
Culture Documents
We need to
get this up and running before we can write PHP scripts to talk to the database.
We need to install PostgreSQL before we can install PHP (since we need the
PostgreSQL header files).
The best bet is to install from packages since this will make things easier, both
now and for upgrades.
If you decide to install from source code, you'll need to create a user and
compile the source.
Create a PostgreSQL user (you'll need root access). This is who owns the system. I
use the "postgres" user and group, you can use something different but it's best
to keep it related to the package.
See your system documentation on how to do this (hint - man useradd). Give the
user a home directory of /usr/local/pgsql as this is where PostgreSQL defaults to
when it installs.
$ cd postgresql-<version>
(replace <version> with the version you downloaded from the website).
$ ./configure --help
We'll just install into /usr/local/pgsql and leave the rest as-is:
$ ./configure --prefix=/usr/local/pgsql
Next we have to make it (this will take a while, it takes longer than Apache):
$ make
$ su -
# make install
PostgreSQL doesn't allow root to start up the server for security reasons, so next
you'll have to change the owner of the files:
# su - postgres
$ cd /usr/local/pgsql
$ bin/initdb -D ./data
$ bin/initdb --help
Now that postgresql is started, we need to create a database and another user
before we go any further.
You should use a separate database for each of our projects, it's not essential
though - it just makes things a little cleaner and easier to understand.
You should also use separate users for each database. This keeps everything
separate and 'project a' won't be able to modify any of 'project b's data.
$ /usr/local/pgsql/bin/createuser
The new user should not be able to create new databases or create new users.
We have to set the owner of the database when we create it, otherwise the
'postgres' user owns it and then we have to grant access to allow our new user to
access it.
Now that that's all done, log out of the postgres user, so we're back as root. In
the postgres directory, the contrib/start-scripts/ directory has a few system
start up scripts.
Follow the instructions in the relevant one to install a start-up script so
postgres will start when your system does.
More detailed installation instructions are in the INSTALL file or by going to the
PostgreSQL website http://www.postgresql.org/docs/ and going to the right version
for you.