Compilando o PostgreSQL
O PostgreSQL é um poderoso gerenciador de bancos de dados. Neste artigo vou mostar como compilar o PostgreSQL em seu sistema operacional Linux. No geral, recomendo a utilização dos pacotes que já vem em sua distribuição, porém se você utiliza alguma distribuição (Ex: Slackware) que não vem com pacote nativo para o mesmo, o processo de compilação é bastante simples.
1) Download do código-fonte
Acesse o site http://www.postgresql.org/ftp/source/ e baixe a versão que deseja compilar. No meu caso irei compilar o 8.3.6.
2) Criação do usuário e grupo “postgres”
Primeiramente vamos criar um grupo denominado “postgres”.
root@slackware: ~# groupadd postgres
Agora iremos criar o usuário denominado “postgres”.
root@slackware: ~# mkdir /var/lib/pgsql
root@slackware: ~# chmod 700 /var/lib/pgsql
root@slackware: ~# useradd -g postgres -G postgres -d /var/lib/pgsql -s /bin/bash postgres
3) Descompactando & Compilando o código-fonte
Entre no diretório onde você efetuou o download do PostgreSQL e descompacte-o.
root@slackware: ~# tar xvjf postgresql-8.3.6.tar.bz2 -C /usr/src/.
Agora vamos compilar!
root@slackware: ~# cd /usr/src/postgresql-8.3.6
root@slackware: /usr/src/postgresql-8.3.6# ./configure –prefix=/usr –sysconfdir=/var/lib/pgsql –localstatedir=/var/lib/pgsql –with-openssl –with-libxml –with-libxslt
root@slackware: /usr/src/postgresql-8.3.6# make
root@slackware: /usr/src/postgresql-8.3.6# make install
PS: Na linha do comando “./configure” acima, as opções “–with-openssl –with-libxml –with-libxslt” não são obrigatórias. Você poderá visualizar a lista completa de opções a serem passadas na compilação do PostgreSQL através do comando “./configure –help“.
Protinho! PostgreSQL devidamente compilado e instalado.
4) Setando as permissões para o usuário “postgres” e inicializando o DB
root@slackware: /usr/src/postgresql-8.3.6# chown -R postgres.postgres /var/lib/pgsql
root@slackware: /usr/src/postgresql-8.3.6# su – postgres
postgres@slackware: ~$ initdb -D /var/lib/pgsql/data
postgres@slackware: ~$ logout
Prontinho! Agora só falta o script de inicialização do PostgreSQL.
5) Configurando o script de incialização
root@slackware: /usr/src/postgresql-8.3.6# cp contrib/start-scripts/linux /etc/rc.d/rc.postgresqld
root@slackware: /usr/src/postgresql-8.3.6# vi /etc/rc.d/rc.postgresqld
Agora vamos modificar as seguintes linhas:
# Installation prefix
prefix=/usr/local/pgsql
Modifique-a para:
prefix=/usr
# Data directory
PGDATA=”/usr/local/pgsql/data”
Modifique-a para:
PGDATA=”/var/lib/pgsql/data”
Salve e saia! Protinho! Agora é só inicializar o PostgreSQL através do comando:
root@slackware: ~# /etc/rc.d/rc.postgresqld start
PostgreSQL funcionando!
Inicializando o mySQL no Slackware
Bem, certamente muitos já passaram por isso: Ao tentar inicializar o mySQL no Slackware se deparou com a mensagem de que o usuário do mySQL não tinha permissão para trabalhar.
Então como resolver isso?
Simples, entre com o usuário root e digite:
# chown -R mysql.mysql /var/lib/mysql
Prontinho! Agora você pode iniciar o mysql através do /etc/rc.d/rc.mysqld
PS: Lembre-se sempre que antes da primeira inicialização do mySQL faz-se necessário executar como root o comando mysql_install_db.
Alterando a senha do usuário padrão do PostgreSQL
Mais uma dica rápidinha para os que estão precisando realizar esta tarefa.
Conecte ao servidor com o usuário root e depois se transforme no usuário “postgres” como no exemplo abaixo:
root@pgsql1:~# su – postgres
Agora que está com o usuário postgres, execute o seguinte comando:
postgres@pgsql1:~$ psql template1
Logado no “cliente do postgres” digite o seguinte comando:
template1=# ALTER USER postgres WITH PASSWORD ‘SUA_NOVA_SENHA’;
Agora digite “q” para sair, desconecte do servidor e tente conectar com a sua aplicação ou seu cliente PostgreSQL ao seu servidor com a nova senha.
Espero ter ajudado. Um abraço a todos!
Acesso via rede ao PostgreSQL
Vou explicar de forma rápida e objetiva como realizar o acesso via rede ao seu servidor PostgreSQL. Primeiramente, vamos editar o arquivo “pg_hba.conf” que no Debian fica em “/etc/postgresql/[Versao]/main”.
# vi /etc/postgresql/8.3/main/pg_hba.conf
Agora vamos adicionar a seguinte linha:
host all all 192.168.100.0 255.255.255.0 md5
Lembrando que o range de IPs de minha LAN é 192.168.100.0 e máscara 255.255.255.0.
Pronto, agora salve o arquivo e saia dele.
Nas versões > 8.0 do PostgreSQL, foi necessário modificar também o postgresql.conf setando a variável “listen_addresses”. Na verdade ela já existe dentro do arquivo, porém ela vem comentada. Então vamos descomenta-la e setar o valor:
listen_addresses = ‘*’
Pronto. Agora salve o arquivo, saia dele e reinicialize o seu servidor PostgreSQL.
# /etc/init.d/postgresql restart
Agora é só testar a conexão via rede.
Instalando PHP 5 com suporte a MySQL, PostgreSQL, FirebirdSQL e IBM DB2
Sistema operacional utilizado: Linux CentOS 5.2 (x86_64)
Servidor Web utilizado: Apache 2.2 HTTP Server
Versão do PHP: 5.2.6
Versão do DB2: 9.5
Não é uma tarefa nada difícil.
Primeiro passo é remover os pacotes do PHP do CentOS:
# rpm -e php-cli-5.1.6-20.el5 php-ldap-5.1.6-20.el5 php-5.1.6-20.el5 php-common-5.1.6-20.el5
Agora, atualizamos o sistema e instalamos as dependências:
# yum update
# yum install httpd-devel.x86_64 postgresql-devel.x86_64 postgresql-libs.x86_64 postgresql-server.x86_64 postgresql.x86_64 mysql-server.x86_64 mysql-devel.x86_64 mysql.x86_64 unixODBC.x86_64 libdbi-dbd-mysql.x86_64 mysql-devel.x86_64 mysql.x86_64 mysql-test.x86_64
Resolvendo problemas de link simbólicos do MySQL:
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so
# ln -s /usr/lib64/mysql/libmysqlclient.so.15.0.0 /usr/lib/libmysqlclient.so.15
Instalando o pacote do FirebirdSQL baixado do site oficial (www.firebirdsql.org).
# rpm -ihv FirebirdSS-2.0.4.13130-1.amd64.rpm
Compilando o PHP 5.2.6 (Código fonte baixado do site oficial: www.php.net).
# tar xvjf php-5.2.6.tar.bz2 -C /usr/src/.
# cd /usr/src/php-5.2.6
Lendo o profile da sua instância do DB2:
# source /home/db2inst1/sqllib/db2profile
Iniciando a compilação
# ./configure –prefix=/usr –sysconfdir=/etc/php5 –with-apxs2 –with-mod_charset –localstatedir=/var –with-config-file-path=/etc/php5 –with-config-file-scan-dir=/etc/php5/conf.d –disable-debug –enable-pic –enable-dbase –disable-rpath –enable-inline-optimization –with-bz2 –with-db4 –with-curl –with-freetype-dir=/usr –enable-gd-native-ttf –without-gdbm –with-gettext –without-gmp –with-iconv –with-openssl –with-xml –with-expat-dir=/usr –with-zlib –with-layout=GNU –enable-bcmath –enable-exif –enable-ftp –enable-magic-quotes –enable-safe-mode –enable-sockets –enable-shmop –enable-sysvmsg –enable-track-vars –enable-trans-sid –disable-yp –enable-wddx –with-pear –enable-memory-limit –enable-calendar –enable-dbx –enable-dio –with-mime-magic –with-mysql –with-pgsql –with-interbase –with-readline –enable-gd-jis-conv –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect –enable-dba –with-gd –with-jpeg-dir=/usr –with-png-dir=/usr –with-ibm-db2 –with-iodbc
# make
# make install
# cp php.ini-recommended /etc/php5/php.ini
Configurando o Apache
# vi /etc/httpd/conf.d/php5.conf
Inserir o seguinte conteúdo:
# Load PHP5 Module
LoadModule php5_module /usr/lib64/httpd/modules/libphp5.so
# File types
AddType application/x-httpd-php .php
Editando o HTTPD.CONF
# vi /etc/httpd/conf/httpd.conf
Localizar a linha que contém:
DirectoryIndex index.html index.html.var
Substituir por:
DirectoryIndex index.html index.php index.html.var
Configurando a inicialização do Apache:
# vi /etc/init.d/httpd
Adicionar no inicio:
. /home/db2inst1/sqllib/db2profile
Pronto! Agora crie o seu “phpinfo.php”.
# vim /var/www/html/phpinfo.php
Adicionar o seguinte conteúdo:
<? phpinfo(); ?>
Agora salve e reinicie o seu HTTPD:
# service httpd restart
Agora é só acessar: http://ip.do.seu.servidor/phpinfo.php
Várias customizações podem ser feitas no seu php.ini ou ainda na sua compilação, é só pesquisar.