1)Ambiente inicial (que iremos alterar)
$ apt-cache policy mysql-server
mysql-server:
Instalado: 8.0.32-0ubuntu0.22.04.2
$ php -v
PHP 8.1.2-1ubuntu2.11 (cli) (built: Feb 22 2023 22:56:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
$ apachectl -v
Server version: Apache/2.4.52 (Ubuntu)
2) Selecionar a língua default para o sistema (pt_BR.UTF-8)
$ echo $LANG
# apt-get install locales
# dpkg-reconfigure locales
…selecionando pt_BR.UTF-8 UTF-8
3) Atualizar data e hora do servidor
# dpkg-reconfigure tzdata
Para verificar:
# date
Dom Set 17 13:14:05 -03 2017
4) Instalar complementos do PHP
# php -v
PHP 8.1.2-1ubuntu2.11 (cli) (built: Feb 22 2023 22:56:18) (NTS)
# apt install php-mbstring php-gd php-zip php-cgi php-xml php-intl
5) Definir parâmetros do PHP
# vim /etc/php/8.1/apache2/php.ini
memory_limit 128M
session.auto_start = 0
session.use_trans_sid = 0
date.timezone = America/Sao_Paulo
6) Preparar base de dados
mysql> create database nome_base;
mysql> CREATE USER nome_usuario@localhost IDENTIFIED BY 'senha_escolhida';
mysql> GRANT ALL PRIVILEGES on nome_base.* to 'nome_usuario'@'localhost';
mysql> FLUSH PRIVILEGES;
7)Baixar o pacote e já desempacotá-lo a partir da pasta raiz do virtualhost
https://sourceforge.net/projects/dotproject/
(dotProject-2.2.0.zip)
8) Criar um HostVirtual para a aplicação: /etc/apache2/sistes-available/dotproject.conf
<VirtualHost *:80>
ServerAdmin info@exercicio.com.br
DocumentRoot /var/www/html/project/
ServerName dotproject
ServerAlias www.dotproject.exercicio.com.br
<Directory /var/www/project/>
Options FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
# a2ensite dotproject.conf
# /etc/init.d/apache2 restart
9) Instalar PHP7.4
Obs: no momento deste post o dotProject estava incompatível com o PHP8. Vamos usar o php7.4
# add-apt-repository ppa:ondrej/php && sudo apt update
# apt-get install php7.4 php7.4-mysql libapache2-mod-php7.4 php7.4-mbstring php7.4-gd php7.4-zip php7.4-xml php7.4-intl
# update-alternatives --set php /usr/bin/php7.4
# a2dismod php*
# a2enmod php7.4
# systemctl restart apache2
# update-alternatives --set php /usr/bin/php7.4
# php -v
PHP 7.4.33 (cli) (built: Feb 14 2023 18:31:54) ( NTS )
# apt show php7.4 -a
add-apt-repository ppa:ondrej/php --remove
Obs: de forma alternativa, para listar as alternativas de versões PHP instaladas e poder fazer a escolha desejada, utilize o comando update-alternativas acima da seguinte forma:
# update-alternatives --config php
10) Instalar módulo português do dotProject (na pasta “locales” da instalação do dotProject)
No momento da publicação deste post, baixar o arquivo dotProject-2.2.0.zip
disponível em https://sourceforge.net/projects/dotmods/files/
Obs: a instalação deve gerar a pasta locales/pt_br
, com os arquivos necessários dentro desta pasta.
11) Acertar os privilégios das pastas e dos arquivos
a) Fazer todos os diretórios terem modo 755
find . -type d -exec chmod 755 {} \;
b) Fazer todos os arquivos terem modo 644
find . -type f -exec chmod 644 {} \;
12) Acessar a url do projeto e fazer a instalação/configuração da aplicação
http://endereco/project
13) Fornecer as Informações de configuração da base de dados
14) Remover pasta de instalação do dotProject (por segurança)
Após instalação ser bem sucedida, remover pasta de instalação:
# rm -R install
15) Aplicar patches
a) Modificar o código em modules/files/index_table.php na linha 172:
DE
$q2->addGroup('f.file_version_id DESC');
PARA
$q2->addGroup('f.file_version_id');
$q2->addOrder('f.file_version_id DESC');
b) modules/tasks/todo.php linha 137:
$q->addWhere( "ta.task_start_date is not null AND ta.task_start_date != '0000-00-00 00:00:00'" );
c) modules/tasks/tasks.php line 232: "AND (task_percent_complete < 100 OR task_end_date is null) "
e linha 240 "AND (task_percent_complete < 100 OR task_end_date is null) "
d) No arquivo baixado do locale português faltou o seguinte arquivo: lang.php
Se ele não existir na pasta locales/pt_br, crie o arquivo com o seguinte conteúdo:
<?php
$dir = basename(dirname(__FILE__));
$LANGUAGES["pt_br"] = array ($dir, "Português", "Português", "pt_br");
?>
e) No arquivo baixado do locale português faltou o seguinte arquivo: locales.php
Se ele não existir na pasta locales/pt_br, crie o arquivo com o seguinte conteúdo:
<?php
//$locale_char_set = 'iso-8859-1';
$locale_char_set = 'utf-8';
// 0 = sunday, 1 = monday
define('LOCALE_FIRST_DAY', 0);
define('LOCALE_TIME_FORMAT', '%I:%M %p');
?>
16) Configurar para o português
Em System Admin -> System Configuration, mudar a caixa “Host Locale” para pt_br
, conforme figura abaixo.
Depois fazer System Admin -> Default User Preferences, e mudar a caixa “Locale” para Português
, conforme figura abaixo.
Pronto. Fazer logout e quando fizer novamente login o dotProject já estará no idioma Português.
17) Complementação da tradução para o português
Algumas mensagens continuaram em língua inglesa mesmo após da utilização dos arquivos de traduções. Abaixo uma lista de outras mensagens que necessitaram de serem inseridas nos arquivos de tradução:
a) No arquivo locales/pt_br/system.inc:
"Add a new Custom Field to this Module"=>"Adicionar um novo Campo personalizado a este Módulo",
"Billing Code Table"=>"Tabela de códigos de cobrança",
"custom fields"=>"campos personalizados",
"Custom Field Editor"=>"Editor de campo personalizado",
"Custom field editor"=>"Editor de campo personalizado",
"Custom Fields - Add/Edit"=>"Campos Personalizados - Adicionar/Editar",
"default user preferences"=>"Preferências Padrões do Usuário",
"Default User Preferences"=>"Preferências Padrões do Usuário",
"Field Description"=>"Descrição do Campo",
"Field Display Type"=>"Tipo do campo",
"Field Name/Identifier"=>"Nome/Identificador do Campo",
"HTML Tag Options"=>"Opções de Tags HTML",
"Import Contacts"=>"Importar Contatos",
"List of Options"=>"Lista de Opções",
"New Custom Field In"=>"Novo Campo Personalizado no",
"System Configuration"=>"Configuração do Sistema",
"system configuration"=>"Configuração do Sistema",
"(No Spaces)"=>"(Sem Espaços)",
"Checkbox"=>"Caixa de Selecao",
"Select List"=>"Lista Escolha",
"Separator"=>"Separador",
"Text Input"=>"Entrada de Texto",
"Text Area"=>"Area de texto",
b) No arquivo locales/pt_br/common.inc
"End"=>"Fim",
"no departments"=>"Não há departamentos",
"Search"=>"Procurar ",
"Start"=>"Início",
c) No arquivo locales/pt_br/projects.inc
"All Projects"=>"Todos Projetos",
"All Users"=>"Todos Usuarios",
"All w/o in progress"=>"Todos w/o em progresso",
"Assigned Users"=>"Usuarios Atribuidos",
"Attach a file"=>"Anexe um arquivo",
"Collapse"=>"Recolher",
"Comments"=>"Comentarios",
"Cost Code Filter"=>"Filtro de codigo de custo",
"Division"=>"Divisao",
"Done"=>"Feita",
"Events"=>"Eventos",
"Expand"=>"Expandir",
"Future Task"=>"Tarefa Futura",
"Go"=>"Executar",
"Hide 100% Complete"=>"Ocultar 100% Completa",
"Hide Inactive"=>"Ocultar Inativa",
"Incomplete Tasks Only"=>"Apenas Tarefas Incompletas",
"Internal Company"=>"Empresa Interna",
"Key"=>"Filtro",
"Move to Folder"=>"Mover para a Pasta",
"Move to Project"=>"Mover para o Projeto",
"My projects"=>"Meus Projetos",
"new event"=>"novo evento",
"new file"=>"novo arquivo",
"new forum"=>"novo forum",
"New Log"=>"Novo Log",
"No Project Association"=>"Nenhuma Associacao a Projeto",
"One Level"=>"Um Nivel",
"organize tasks"=>"organizar tarefas",
"Overdue"=>"Atrasada",
"Priority"=>"Prioridade",
"Project Hours"=>"Horas do Projeto",
"Scheduled Hours"=>"Horas Programadas",
"Should have started"=>"Deveria ter iniciado",
"show all"=>"Mostrar Tudo",
"Show Archived"=>"Mostrar Arquivado",
"Show captions"=>"Mostrar legendas",
"Show Tasks"=>"Mostrar Tarefas",
"Show work instead of duration"=>"Mostrar trabalho em vez da duracao",
"Sort by Task Name"=>"Classificar por Nome da Tarefa",
"Sort Tasks By Name"=>"Classificar Tarefas Por Nome",
"Started and on time"=>"Iniciadas e Em Dia",
"Task Logs"=>"Logs de Tarefas",
"Task Owner"=>"Dono da Tarefa",
"Template"=>"Modelo",
"User Filter"=>"Filtro de Usuario",
d) No arquivo locales/pt_br/companies.inc
"Owner filter"=>"Filtro de proprietario",
"Reset search"=>"Redefinir pesquisa",
e) No arquivo locales/pt_br/tasks.inc
"Additional Email Comments"=>"Comentários Adicionais por e-mail",
"Daily Working Hours"=>"Horas Diárias de Trabalho",
"Dates"=>"Datas",
"Dependencies"=>"Dependencias",
"Dependency Tracking"=>"Rastreamento de Dependência",
"Done"=>"Completa",
"Do not track this task"=>"Não rastreie esta tarefa",
"Human Resources"=>"Recursos Humanos",
"my pinned tasks"=>"minhas tarefas fixadas",
"Set task start date based on dependency"=>"Defina a data de início da tarefa com base na dependência",
"Should have started"=>"Deveriam ter iniciadas",
"Task Owner"=>"Dono da Tarefa",
"Tasks depending on this Task"=>"Tarefas que depende desta Tarefa",
"tasks per user"=>"tarefas por usuario",
"Task Type"=>"Tipo da Tarefa",
"Working Days"=>"Dias Úteis",
f) No arquivo locales/pt_br/calendar.inc
"Event Filter"=>"Filtro de Evento",
"All Events"=>"Todos Eventos",
"Dynamic Tasks"=>"Tarefas Dinamicas",
"Empty Dates"=>"Datas Em Aberto",
"Events I Created"=>"Eventos Eu Criei",
"My Tasks"=>"Minhas Tarefas",
"Pinned Only"=>"Fixado Apenas",
"Projects on Hold"=>"Projetos em Espera",
"Selection"=>"Selecionar",
"Show Events for"=>"Mostrar Eventos para",
"Show Todo for:"=>"Mostrar Tarefas para: ",
"Sun"=>"Dom",
"Mon"=>"Seg",
"Tue"=>"Ter",
"Wed"=>"Qua",
"Thu"=>"Qui",
"Fri"=>"Sex",
"Sat"=>"Sab",
"Sunday"=>"Domingo",
"Monday"=>"Segunda-feira",
"Tuesday"=>"Terça-feira",
"Wednesday"=>"Quarta-feira",
"Thursday"=>"Quinta-feira",
"Friday"=>"Sexta-feira",
"Saturday"=>"Sábado",
"March"=>"Março",
"April"=>"Abril",
"May"=>"Maio",
"June"=>"Junho",
"July"=>"Julho",
"August"=>"Agosto",
g) No arquivo locales/pt_br/files.inc
"All Files"=>"Todos Arquivos",
"Application"=>"Aplicação",
"Category"=>"Categoria",
"Document"=>"Documento",
"Folder"=>"Pasta",
"Folder Explorer"=>"Explorar Pastas",
"Move to Folder"=>"Mover para a Pasta",
"Move to Project"=>"Mover para o Projeto",
"new folder"=>"Nova Pasta",
"No Project Association"=>"Nenhuma Associacao a Projeto",
"No Result(s)"=>"Sem Resultado(s)",
"Task Name"=>"Nome da Tarefa",
"Unknown"=>"Desconhecido",
"Versions"=>"Versoes",
h) No arquivo locales/pt_br/admin.inc
"back"=>"Voltar",
"Confirm Password"=>"Confirme a Senha",
"Company"=>"Empresa",
"Inform new user of their account details?"=>"Informar o novo usuário sobre os detalhes da conta?",
"User Role"=>"Papel do Usuário",
"Password"=>"Senha",
"Required Fields"=>"Campos Obrigatórios",
"select dept"=>"Selecione Dept.",
"show all"=>"Mostrar todos",
"show this month"=>"Mostrar este mês",
"sort by"=>"ordenar por",
"submit"=>"Enviar",
i) No arquivo locales/pt_br/ticketsmith.inc
"Open Ticket Report"=>"Relatorio de Chamado Aberto",
"Open Tickets"=>"Chamados Abertos",
"Report as PDF"=>"Relatório em PDF",
Referências:
1- Correções no locales pt_br