Agora iniciaremos o processo de instalação do
PostgreSQL. Preste muita atenção! Caso seu SO venha com Apache "enjaulado", ou seja, pré-instalado com CHROOT como acontece no OpenBSD, algumas partes da configuração deverão ser executadas.
Caso você tenha instalado o Apache de acordo com este artigo, pule os passos da configuração que possuem um (chroot) em cima.
Primeiramente baixe os códigos-fonte (
http://www.postgresql.org). Após isso descompacte-os:
# tar zxvf postgresql-7.4.5.tar.gz
# cd postgresql-7.4.5/
Agora vamos configurá-lo.
Lembre-se: Caso você não utilize Linux, você deverá instalar antes o compilador gmake (
http://www.gnu.org/software/make).
# ./configure --prefix=/usr --with-openssl
Uma breve explicação sobre as opções utilizadas:
- --prefix=/usr -> Especifica o local onde o PostgreSQL será instalado. Ele será instalado em vários subdiretórios, não diretamente neste diretório.
- --with-openssl -> Adiciona o suporte à encriptação SSL.
OBS: Caso a configuração não possa ser feita no diretório /usr, tente fazê-la sob o diretório /usr/local. Pode ser que na configuração, onde são checadas todas as dependências, seja dado algum erro por falta de alguma ferramenta do qual o PostgreSQL dependa. Caso isso aconteça, tente instalar essa ferramenta.
Pronto! Agora é só compilar e instalar.
# make && make install
Configuração do PostgreSQL
Antes de mais nada devemos criar o superusuário do PostgreSQL. Seu nome é, por padrão,
postgres.
# useradd -d /var/pgsql postgres
# mkdir /var/pgsql
# chown postgres /var/pgsql
Assim, o usuário será criado. O parâmetro -d indica o diretório home do usuário postgres, onde serão armazenados os arquivos do banco de dados. Após isso criamos o seu diretório home e o tornamos como o dono do diretório.
Agora é necessário iniciar o banco de dados, criando o diretório de armazenagem de dados e configurações.
# su postgres -c '/usr/bin/initdb /var/pgsql/data'
Assim, o banco de dados será criado em /var/pgsql/data e o dono do diretório será o usuário
postgres.
Agora para aqueles que possuem o Apache instalado com CHROOT. Quando o Apache é iniciado, o mesmo consegue enxergar apenas o seu diretório (/var/www), interpretando-o como o diretório raiz (/). Sendo assim, devemos criar um diretório tmp dentro da jaula do Apache, para que o arquivo .pid do PostgreSQL seja "enxergado" pelo PHP.
(chroot)
# mkdir /var/www/tmp
# chmod 777 /var/www/tmp
Agora é necessária a configuração do PostgreSQL para que este utilize o diretório tmp do Apache e não o do Sistema. Basta ir até o diretório /var/pgsql/data e alterar o arquivo
postgresql.conf:
# cd /var/pgsql/data
# vi postgresql.conf
Agora procure as seguinte linha e altere seu valor para o valor aqui representado:
Todo comando do PostgreSQL como o
createdb,
dropdb,
psql, entre outros, você irá necessitar especificar onde fica o diretório de arquivos temporários que o PostgreSQL está utilizando. Para isso, acrescente ao comando o parâmetro "-h /var/www/tmp" e assim o comando funcionará normalmente.
Para iniciar o PostgreSQL com o sistema, insira o comando no arquivo
rc.local -
Linux:
/etc/rc.d/rc.local / *BSD:
/etc/rc.local -, logo no final do arquivo: