Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Esse manual tem como objetivo final, gerar um artigo contendo o processo de instalao
otimizada do I-educar, de maneira que os erros conhecidos de instalao possam ser excludos,
minimizando assim o tempo de instalao.
Foi utilizado como base desse manual, as informaes de instalao que constam no Portal do
Software Publico Brasileiro, com contribuio de Franklin Ribeiro de Jesus e Marcus Paulo de Q.
Amorim, atravs de instalao e testes em vrios sistemas diferentes.
Pr-requisitos
ndice
1. PHP e Apache
2. Extenses PHP
3. Biblioteca PDFLib
4. Banco de dados PostgreSQL
O i-Educar uma aplicao web e depende de alguns outros softwares para o seu funcionamento.
PHP (verso 5.2 e superiores) com as extenses habilitadas:
o ext/pgsql;
o ext/gd;
o pecl/pdflib.
Biblioteca PDFLib;
Servidor web Apache ou outro servidor web que suporte PHP. A documentao assume o uso do
Apache;
Banco de dados PostgreSQL verso 8.2.19
As notas sobre cada uma das dependncias, inclusive com dicas de instalao so explicadas em seguida.
PHP e Apache
As distribuies Linux mais atuais possuem o PHP na verso 5.2 em seus repositrios de pacotes. A
forma mais fcil de instalar o PHP em um Linux usar o gerenciador de pacotes da distribuio ( apt-get
no Debian/Ubuntu, yum no Red Hat/Fedora, entre outros), no Ubuntu 10.10.
# apt-get install php5 php5-pgsql php5-dev php-pear
Para instalar o Apache, com suporte ao PHP, o comando :
# apt-get install libapache2-mod-php5 apache2-dev
Aps instalar o Apache, verifique se a instalao foi bem sucedida ao acessar via navegador o endereo:
http://localhost.
Notas:
Os pacotes php5-dev e php-pear so necessrios para a compilao da extenso pecl/pdflib;
O pacote apache2-dev necessrio pois o utilitrio phpize usado pelo pear/pecl depende dele.
Extenses PHP
No Linux, a instalao das extenses geralmente facilitada pelos gerenciadores de pacote da sua
distribuio favorita. Para instalar as extenses pgsql e gd no Ubuntu, seria necessrio usar o seguinte
comando:
# apt-get install php5-pgsql php5-gd
Aps a instalao das extenses, reinicie o Apache.
# /etc/init.d/apache2 restart
A exceo a extenso pdflib que no faz parte das extenses padres do PHP. Esta extenso tem
como pr-requisito a biblioteca PDFLib. O procedimento completo de instalao da extenso e da
biblioteca PDFLib podem ser visto a seguir.
Compilao
Como apenas o cdigo fonte da biblioteca PDFLib Lite distribudo, necessrio que este seja
compilado. Os utilitrios necessrios para isso so o make e o GNU C++ Compiler (g++). Para instal-los,
use o apt-get:
# apt-get install make g++
Feito isso, faa o download do cdigo fonte da biblioteca PDFLib Lite para Linux. Seguindo as
convenes, iremos fazer o download no diretrio /usr/src:
#
#
#
#
cd /usr/src
wget http://www.pdflib.com/binaries/PDFlib/704/PDFlib-Lite-7.0.4p4.tar.gz
tar -xzvf PDFlib-Lite-7.0.4p4.tar.gz
cd PDFlib-Lite-7.0.4p4
Para integrar a biblioteca PDFLib Lite no PHP, necessrio instalar a extenso PECL (PHP Extension
Community Library) pdflib. A instalao de extenses PECL bastante simples, pois usa-se o mesmo
sistema de empacotamento do PEAR (PHP Extension and Application Repository).
Para ter o utilitrio pecl instalado, necessrio instalar o pacote php5-dev.
# cd
# pecl install pdflib
O PECL ir fazer o download do pacote e perguntar qual o local em que a biblioteca foi instalada. Informe
/usr/local:
# path to pdflib installation? : /usr/local
Ao final da compilao da extenso PECL, a seguinte mensagem aparecer:
Build process completed successfully
Installing '/usr/lib/php5/20060613+lfs/pdf.so'
install ok: channel://pecl.php.net/pdflib-2.1.8
Pronto! A biblioteca PDFLib foi instalada e j est adicionada no seu arquivo php.ini.
Throubleshooting
Muito provavelmente, voc dever acrescentar em seu arquivo php.ini a seguinte linha:
extension=pdf.so
# nano /etc/php5/apache2/php.ini
Caso a linha no esteja no arquivo, adicione-a no final do arquivo e reinicie o Apache.
Banco de dados PostgreSQL
Compilando o PostgreSQL 8.2 no Debian Lenny
A verso 1.X do i-Educar est homologada para funcionar com o banco de dados PostgreSQL em
sua verso 8.2. Porm, as distribuies Linux mais atuais (como o Debian e o Ubuntu) no possuem mais
suporte a esta verso.
Para instal-lo, necessrio compil-lo ou instalar os pacotes pr-compilados de sua distribuio
(no recomendvel pois pode quebrar dependncias de sistema). Este guia segue a primeira opo,
ento prepare-se para a compilao.
Dependncias
Para compilar o PostgreSQL, necessrio resolver algumas dependncias:
$ apt-get install gcc g++ zlibc
$ apt-get install libreadline5-dev zlib1g-dev -y
Compilando o PostgreSQL
Faa o download do cdigo fonte do banco (arquivo postgresql-8.2.19.tar.gz) no site do projeto
PostgreSQL e compile o cdigo fonte (observe que os dois ltimos comandos devem ser dados como
root). Este guia foi baseado na verso 8.2.19.
$ wget http://ftp.esat.net/mirrors/ftp.postgresql.org/pub/source/v8.2.19/postgresql-8.2.19.tar.gz
# gedit /etc/init.d/postgresql
Altere as seguintes linhas:
echo -n "Starting PostgreSQL: "
su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1
Para:
echo -n "Starting PostgreSQL: "
su - $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1
Atenco: observe que apenas foi acrescentado o parmetro -i antes do -D.
Para verificar se o PostgreSQL est rodando na porto padro, utilize o comando netstat:
# netstat -avnp |grep 5432
O resultado esperado dever ser prximo de:
netstat:
netstat:
netstat:
netstat:
no
no
no
no
support
support
support
support
for
for
for
for
`AF
`AF
`AF
`AF
Como o postgresql est sendo compilado, ele no iniciado automaticamente ao se iniciar o sistema.
Utilizaremos os comandos abaixo para resolver esse problema.
# cd /etc/init.d
# chmod 775 postegresql
Isso dar as permisses necessrias para o arquivo ser executado.
Reiniciar
# /etc/init.d/postgresql restart
Verificar status
# /etc/init.d/postgresql status
Instalando o i-Educar
Instalar o i-Educar em si um processo bastante simples. Mas antes de instalar, importante que os
requisitos do sistema estejam satisfeitos:
PHP 5.2
o
ext/gd
ext/pgsql
pecl/pdflib
Biblioteca PDFLib
PostgreSQL 8.2.19
Download do software
Faa o download dos arquivos do sistema antes de prosseguir. A verso atual da famlia 1.1.0, est
disponvel em pacotes ZIP e Gzip. Ao descompactar, voc ter dois diretrios: intranet/ com os arquivos
da aplicao e misc/, onde se encontra o script SQL para a criao do banco de dados.
Crie uma pasta ieducar em /var/www e d as devidas permisses.
# chmod 777 R /var/www
# mkdir /var/www/ieducar
# chmod 777 R /var/www/ieducar
Faa o login no Portal do Software Pblico Brasileiro (www.softwarepublico.gov.br) e baixe o ieducar
na pasta /var/www/ieducar. Descompacte o arquivo baixado e depois mova todo o contedo da pasta
ieducar-1.1.0 que foi criada depois de descompactar para pasta /var/www/ieducar/.
#
#
#
#
cd /var/www/ieducar
tar xzvf ieducar-1.1.0.tar.gz
cd ieducar-1.1.0
mv * /var/www/ieducar/
Tambm pode ser feito via terminal. Aps fazer o login no site, digite no terminal:
# cd /var/www/ieducar
# wget http://softwarepublico.gov.br/file/21983010/ieducar-1.1.0.tar.gz
Observao: voc pode usar o nome de usurio, banco de dados e senha que desejar. No i-Educar existe
um arquivo onde estes parmetros de conexo so configurados. Caso decida dar outro nome ao banco
de dados, comente a linha 21 do arquivo ieducar.sql com dois hfens.
Faa login no servidor de banco de dados PostgreSQL com o cliente psql:
$ su postgres
# psql
postgres=#
Crie o usurio de banco de dados que ser utilizado pelo i-Educar:
postgres=# CREATE ROLE ieducaruser;
postgres=# ALTER ROLE ieducaruser WITH SUPERUSER INHERIT NOCREATEROLE CREATEDB
LOGIN PASSWORD 'ieducar';
Crie o banco de dados:
postgres=# CREATE DATABASE ieducardb WITH TEMPLATE = template0 OWNER = ieducaruser
ENCODING = 'LATIN1';
postgres=#\q
postgres@usuario:~$ exit
Faa o restore para criar as tabelas do sistema:
$ sudo u postgres psql -d ieducardb -f /var/www/ieducar/misc/database/ieducar.sql
Ateno: em algumas plataformas, o restore do banco tem que ser feito no mesmo diretrio em que o
arquivo sql reside seno o cliente psql mostra um erro FATAL no relacionado com a operao com a
tarefa.
Ajustando o search_path
Algumas instalaes do i-Educar tiveram o problema de no conseguir fazer o login no sistema aps a
criao do banco de dados. A mensagem de erro dever ser semelhante a essa durante o login:
Warning: pg_query() [function.pg-query]: Query failed: ERRO: relao "funcionario" no existe in
/var/www/ieducar/intranet/include/clsBancoPgSql.inc.php
on line 191 SQL invalido: SELECT ref_cod_pessoa_fj FROM funcionario WHERE matricula = 'adm'
Isso pode ter acontecido pelo fato do search_path no ter sido recuperado corretamente durante a
importao do arquivo SQL. Primeiro, faa um login no PostgreSQL pelo psql com o usurio ieducaruser e
verifique se o seu search_path est como o seguinte:
$ sudo -u postgres psql -U ieducaruser ieducardb
ieducardb=# SHOW search_path;
search_path
---------------"$user", public, portal, cadastro, acesso, alimentos, consistenciacao, historico, pmiacoes,
pmicontrolesis, pmidrh, pmieducar, pmiotopic, urbano
(1 row)
Caso no esteja, ser necessrio configur-lo corretamente. Ainda no psql, d o seguinte comando
para ajustar o search_path:
ieducardb=# ALTER DATABASE ieducardb SET search_path TO "$user", public, portal, cadastro,
acesso, alimentos, consistenciacao, historico, pmiacoes, pmicontrolesis, pmidrh, pmieducar,
pmiotopic, urbano;
ieducardb=#\q
Configurando o PHP
O i-Educar funciona com a configurao padro do PHP 5. Apenas alguns ajustes so necessrios para
evitar um mau comportamento da aplicao. Edite o arquivo php.ini ajustando as seguintes diretivas:
# nano /etc/php5/apache2/php.ini
memory_limit: altere para no mnimo 32M (devido ao gerador de relatrios, em plataformas 64 bit,
pode ser necessrio aumentar para uma quantidade maior);
memory_limit = 32M
error_reporting: altere para E_ALL & ~E_NOTICE para evitar que avisos do nvel E_NOTICE
(comuns na verso atual), apaream nas telas quebrando o layout do sistema;
error_reporting = E_ALL & ~E_NOTICE
display_errors: altere para Off em produo e deixe On para no seu ambiente de desenvolvimento.
display_errors = Off
Aps qualquer alterao no arquivo php.ini, reinicie seu servidor web (no nosso caso, o apache2):
# /etc/init.d/apache2 restart
Existem dois diretrios em que o i-Educar pode gravar arquivos e que precisam de permisso de
escrita (usurios Windows no precisam se preocupar com este passo):
intranet/pdf
intranet/tmp
Ao invs de dar uma permisso 777, mude o grupo do diretrio e d permisso de escrita para o
grupo tambm:
#
#
#
#
= ieducardb
= ieducaruser
= localhost
= ieducar
5432
Acessando a aplicao
Aps realizar os passos anteriores, basta acessar o endereo http://localhost/ieducar e comear a
navegar pela aplicao.
Observao: se voc recebeu um erro 403 Forbidden do Apache, provvel o diretrio (sub-diretrios e
arquivos) da aplicao esteja sem permisso de leitura. Para corrigir este problema rapidamente, execute
os seguintes comandos:
ieducar.local
Reinicie o Apache:
# /etc/init.d/apache2 restart
Acesse o endereo http://ieducar.local. Se tudo estiver correto, a tela inicial ir aparecer.
18/08/2011