Instalar o phpScheduleIt no Linux/Debian

Publicado: 06/10/2012 em Linux, Serviços IP
Tags:

O phpScheduleIt é um sistema de reservas e de agendamento, Open Source Web-based, que permite a usuários registrar e fazer reservas de qualquer tipo de recursos, tais como salas de conferência, máquinas, computadores, etc. A parte administrativa da solução oferece o controle completo sobre as permissões de usuários, sobre os dados dos recursos e da reserva, e tem muitas opções configuráveis​​.

No momento deste post, tínhamos:
Debian: Debian-6, Squeeze
Versão do phpScheduleIt: 2.3

1.Fazer download do phpScheduleIt e desempacotar o aplicativo
Acessar a página para download do aplicativo em http://sourceforge.net/projects/phpscheduleit/files/1.%20phpScheduleIt/2.3/

/usr/share# unzip  phpScheduleIt-2.3.3.zip
/usr/share# rm phpScheduleIt-2.3.3.zip
/usr/share# cd phpScheduleIt

2. Criar as configuração para o Apache
# mkdir /etc/phpScheduleIt

Criar o arquivo /etc/phpScheduleIt/apache.conf com o seguinte conteúdo:

Alias /phpScheduleIt /usr/share/phpScheduleIt/
<Directory /usr/share/phpScheduleIt/>
DirectoryIndex index.php
Options +FollowSymLinks
AllowOverride None

order deny,allow
deny from all
# allow from 127.0.0.0/255.0.0.0 ::1/128
allow from all

<IfModule mod_php5.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
php_value include_path .
</IfModule>
</Directory>

Criar um link simbólico e reiniciar o Apache:
/etc/apache2/conf.d# ln -s ../../phpScheduleIt/apache.conf phpScheduleIt
# /etc/init.d/apache2 restart

3. Setar autoridades
/usr/share/phpScheduleIt# chmod 757 tpl_c/
/usr/share/phpScheduleIt# chmod 757 tpl

4. Preparar arquivo de configuração do phpScheduleIt
/usr/share/phpScheduleIt# cp config/config.dist.php config/config.php

Editar o arquivo config.php, atentando para as seguintes parametrizações:

$conf['settings']['server.timezone'] = 'America/Belem';
$conf['settings']['default.language'] = 'pt_br';
$conf['settings']['script.url'] = 'http://agenda.meusite.com.br'; // no caso usei um subdominio agenda
$conf['settings']['install.password'] = 'minha_senha_instalacao';

$conf['settings']['database']['type'] = 'mysql';
$conf['settings']['database']['user'] = 'user_admin_base';        // database user with permission to the phpScheduleIt database
$conf['settings']['database']['password'] = 'user_admin_base_password';
$conf['settings']['database']['hostspec'] = '127.0.0.1';        // ip, dns or named pipe
$conf['settings']['database']['name'] = 'phpscheduleit2';

5. Configurar a base de dados manualmente
Isto é especialmente recomendável em caso de instalação do phpScheduleIt remotamente.

5.1 Abra o arquivo “…/phpScheduleIt/database_schema/full-install.sql” e edite o nome do “banco” e o nome de “usuário/senha” para coincidir com os valores fornecidos em “config.php”. No caso mostrado, as primeiras linhas deste arquivo ficarão assim:

DROP DATABASE IF EXISTS phpscheduleit2;
CREATE DATABASE phpscheduleit2;
USE phpscheduleit2;
GRANT ALL on phpscheduleit2.* to 'user_admin_base'@'127.0.0.1' identified by 'user_admin_base_password';SET foreign_key_checks = 0;

5.2 Importar o script de criação do banco e tabelas do phpScheduleIt
/usr/share/phpScheduleIt/database_schema# mysql -u root -p < full-install.sql

5.3 Importar “sample-data-utf8.sql” to phpscheduleit2 (Serão criados 2 usuários: admin/password e user/password). Estes usuários estarão disponíveis para testar a instalação).
/usr/share/phpScheduleIt/database_schema# mysql -u root -p -D phpscheduleit2 < sample-data-utf8.sql

6. Arquivos de Log
phpScheduleIt faz o “log” de vários níveis de informações categorizadas em “logs” da aplicação e do banco de dados. Por padrão, o “log” está desativado (“OFF”).

Para ativar, proceder:
6.1 Renomear o arquivo de configuração de logs:
/usr/share/phpScheduleIt/config# mv log4php.config.dist.xml log4php.config.xml

6.2 Configurar a pasta de logs no arquivo log4php.config.xml
<param name="file" value="/var/log/phpscheduleit/log_%s.log" />

6.3 Configurar os níveis de logs
“Logging” é controlado alterando o valor referente a tag <level>. Os “levels” usados pelo phpScheduleIt são: OFF, DEBUG, ERROR. Em operação em produção, a opção ERROR é a mais apropriada. Se trace logs São necessárias, DEBUG é apropriada.  Para alterar o nível de “logging” da aplicação, deve-se alterar o <level value=”OFF” /> para o nível apropriado tanto da aplicação quanto dos “sql loggers”. Por exemplo, <level value=”ERROR” />.

7. Quanto a tradução
Na versão que estava utilizando, observei alguns problemas de tradução especialmente quanto a não tradução de alguns termos. Abaixo transcrevo os termos que tive de agregar ao arquivo phpscheduleIT/lang/pt_br.php:

$strings['Select'] = 'Selecionar';
$strings['List'] = 'Lista';
$strings['TotalTime'] = 'Tempo Total';
$strings['Count'] = 'Contagem';
$strings['Resources'] = 'Recursos';
$strings['Accessories'] = 'Acessórios';
$strings['AllTime'] = 'Tempo Total';
$strings['CurrentMonth'] = 'Mês Corrente';
$strings['CurrentWeek'] = 'Semana Corrente';
$strings['Today'] = 'Hoje';
$strings['Between'] = 'Entre';
$strings['None'] = 'Nenhum';
$strings['Resource'] = 'Recurso';
$strings['Usage'] = 'Uso';
$strings['Range'] = 'Intervalo';
$strings['FilterBy'] = 'Filtrado por';
$strings['AllAccessories'] = 'Todos os acessórios';
$strings['GetReport'] = 'Gerar Relatório';
$strings['GenerateReport'] = 'Gerar Novo Relatório';
$strings['AggregateBy'] = 'Agregado por';
$strings['Group'] = 'Grupo';
$strings['ReservedResources'] = 'Recursos Reservados';
$strings['ReservedAccessories'] = 'Acessórios Reservados';
$strings['ResourceUsageTimeBooked'] = 'Uso dos Recursos - Tempo Reservado';
$strings['ResourceUsageReservationCount'] = 'Uso dos Recursos - Contagem de Reservas';
$strings['Top20UsersTimeBooked'] = '20 maiores Usuários - Tempo Reservado';
$strings['Top20UsersReservationCount'] = '20 maiores Usuários - Contagem de Reservas';
$strings['Total'] = 'Total';
$strings['Administration'] = 'Administration';
$strings['NoResultsFound'] = 'Sem Resultados';
$strings['QuantityReserved'] = 'Quantidade Reservada';
$strings['All'] = 'Todos';

Além disso, para que na Gerência de Usuários (http://agenda.meusite.com.br/admin/manage_users.php) possa ser visualizado o estado de cada usuário, é necessário corrigir o valor das variáveis:

$strings['Active'] = 'Active';
$strings['Inactive'] = 'Inactive';

8. Dicas úteis
8.1 Encontrei alguns questionamentos no fórum do phpscheduleIT sobre como configurar a página inicial do aplicativo. Estava utilizando um subdominio chamado “agenda” para armazenar os scripts do aplicativo. Assim, configurei:
a) em phpscheduleIt/config/config.php:
$conf['settings']['script.url'] = 'http://agenda.meusite.com.br';

b) para o link do Apache, usar a página inicial do phpscheduleIt como sendo:
http://agenda.meusite.com.br/Web/

8.2 Cache do phpscheduleIT
Os arquivos de cache da aplicação são armazenados em phpscheduleIt/tpl_c

8.3 Outras páginas com traduções insuficientes
a) Página de créditos: phpscheduleIt/tpl/support-and-credits.tpl
b) Página da ajuda da administração: /lang/pt_br/help-admin.tpl (obs: na verdade este arquivo nem existia. Tive de copiá-lo da pasta lang/en_us/ para esta pasta e traduzi-lo.)

9. Páginas úteis
Página inicial da aplicação: http://<IP-server>/phpScheduleIt/Web/
Página de help:  http://<IP-server>/phpScheduleIt/Web/help.php
Procedimentos de instalação: /usr/share/phpScheduleIt/readme_installation.html, acessado por http://<IP-server>/phpScheduleIt/readme_installation.html (obs: se a instalação for numa máquina remota, é recomendável realizar os procedimentos manuais conforme descritos anteriormente).

Links
1- phpScheduleIt Forum
2- phpScheduleIt home-page

comentários
  1. Edeilton disse:

    É possível instalar o phpScheduleIt no Windows tb?

  2. Jefferson disse:

    Por acaso você tem alguma orientação a segui de como integrar phpsheduleIt com o Active Directory do Windows?

  3. Lucas Arruda disse:

    Essa instalação funciona da mesma forma para o ubuntu server ?
    Para a versão 2.4 tem linguagem pt-br ?
    Grato

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s