Monthly Archives: outubro 2008

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.

Time zone x Linux x Java

Esta semana tive uma desagradável surpresa em meus servidores Linux que rodam aplicações Java. Como todo ano, o Brasil entra em horário de verão e oficialmente até o ano passado era o dia 12 de outubro. Sendo assim, desavisado sobre meu ambiente de produção que está localizado em São Paulo e foi instalado pelos administradores do data-center paulistano e que selecionaram na hora da instalação do sistema operacional o fuso-horário “America/São Paulo” e não “America/Recife” que é a cidade onde a empresa está sediada.

Na segunda-feira a surpresa, todas as lojas pegaram o famoso “horário de verão” então lá fomos nós setar os horários nos servidores mas não basta só isso, afinal quando acabar o horário de verão os servidores iriam atrasar em 1h. Porém tivemos a desgradável surpresa de que a Java Virtual Machine (JVM) ignora a hora do computador. Embora o horário “estivesse” correto a JVM adiantava em 1h, pesquisando descobrimos que a JVM usa o fuso para ajustar o relógio interno e ignora a hora da BIOS/Sistema Operacional.

Primeiro foi necessário setar o fuso do Sistema Operacional de forma correta. Em nosso ambiente de testes que roda CentOS 5.2 e 4.3 resolvemos com o “zic” através do comando:

# zic -l America/Recife

Lembrando que aqui você poderia colocar o seu fuso.

Já em produção temos Redhat 4 EL. Então o “zic” estava nos retornando o erro abaixo:

# zic -l America/Recife
“command line”, line 1: warning: hard link failed, symbolic link used

Então mais um pouco de pesquisa descobri que o Redhat tem um utilitário chamado “dateconfig” para configuração do fuso.

# dateconfig

Selecione seu fuso e dê Ok.

Lembrando que: Para fazer isso em produção pare os serviços da máquina, pois poderá afetar as suas aplicações que utilizam data/hora do servidor.

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.

Acessando compartilhamento SMB no CentOS 5

Hoje precisei restaurar um backup via rede de Linux para Linux via SMB (poderia ter usado NFS, mas eu queria fazer via SMB), então lá fui eu a moda antiga montar o meu compartilhamento samba usando a opção “smbfs” e o CentOS me dizia que não conhecia esse sistema de arquivos e agora o que fazer?

Simples, 2min de conversa com o Oráculo, eis que descobri que o SMBFS está “deprecated”, e a recomendação é utilizar o “CIFS”

Então foi assim que resolvi o meu problema:

# mount -t cifs -o users,rw //192.168.100.60/backup /mnt

Prontinho! Compartilhamento SMB acessível, isso serve tanto para servidores com samba quanto servidores Windows.