O documento a seguir descreve um fluxo de trabalho geral para a criação de um ambiente de teste baseado no git, para uma revista que não está atualmente no git. São apresentadas instruções sobre como limitar o acesso acidental, envio de e-mail etc. YMMV. Adapte ao seu próprio ambiente; use por sua conta e risco.
Para obter mais informações sobre como atualizar seu sistema, consulte o Guia de atualização técnica.
O README disponível aqui: https://github.com/pkp/ojs contém instruções sobre como instalar a partir do git. Execute as seguintes instruções:
Crie um usuário e banco de dados MySQL ou PostgreSQL para o OJS. O comando usado é o seguinte; ajuste de acordo com seu ambiente, acesso à raiz etc.:
MySQL
mysql -u root -e "CREATE DATABASE `ojs-sandbox` DEFAULT CHARACTER SET UTF8; GRANT ALL ON `ojs-sandbox`.* TO `ojs`@localhost IDENTIFIED BY 'ojs'" -p
PostgreSQL
psql -h localhost -U postgres -d postgres -c "CREATE USER ojs WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB NOREPLICATION NOBYPASSRLS ENCRYPTED PASSWORD 'ojs'; COMMENT ON ROLE ojs IS 'Site administrator';
CREATE DATABASE ojs-sandbox OWNER ojs;" -W
Execute o checkout da versão estável a partir do GitHub. O caminho será específico de acordo com sua instalação do Apache, e pode-se atualizar sua versão para a última versão estável:
cd <httpd-docs-folder>
BRANCH='stable-3_3_0'
git clone -b $BRANCH --depth 1 https://github.com/pkp/ojs.git ./
git branch --unset-upstream $BRANCH
chmod -R 755 *
Busque as bibliotecas PKP correspondentes e faça o checkout da versão estável a partir do GitHub, cerificando-se de que a versão corresponde à mesma versão referenciada anteriormente:
git submodule update --init --recursive --depth 1
Instale o composer:
cd ../..
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Instale as dependências do composer:
cd lib/pkp
php ../../composer.phar --no-dev install
cd ../../plugins/paymethod/paypal
php ../../../composer.phar --no-dev install
cd ../../../plugins/generic/citationStyleLanguage
php ../../../composer.phar --no-dev install
Instala as dependências do Node.js (NOTA: o npm deve estar instalado no servidor):
cd ../../..
npm install
npm run build
Crie um novo arquivo de configuração:
cd ../../..
cp config.TEMPLATE.inc.php config.inc.php
chmod 600 config.inc.php
Neste momento, uma versão completamente preparada do sistema e base de dados OJS deverão estar prontas para uso.
Exclua o plugin Acron (o plugin Acron pode disparar a execução de tarefas agendadas sem depender uma tarefa cron):
rm -rf plugins/generic/acron
rm -rf lib/pkp/plugins/generic/acron
O plugin terá que ser reinstalado após a entrada do sistema em produção, o que, caso esteja executando tudo via git, pode ser feito da seguinte maneira:
git checkout plugins/generic/acron
cd lib/pkp
git checkout plugins/generic/acron
Estes comandos são realizados na instalação em produção, sendo os comandos padrão de cópia/arquivamento.
Base de dados:
mysqldump db\_name --opt --default-character-set=utf8 --result-file=~/client\_db.sql -u db\_user -p
pg_dumpall -U postgres -h localhost -d postgres > ~/client_db.sql
Submissões: o diretório de armazenamento das submissões podem ser encontrados no arquivo config.inc.php do OJS, procurando pelo parâmetro “files_dir”. Recomenda-se compactar os arquivos para tornar a transferência mais fácil:
cd <submission files dir>
tar -cvzf ~/files.tar.gz ./
Pasta pública: a pasta pode incluir itens como capas das edições, imagens de perfis, entre outros, estando localizada na pasta do OJS, no subdiretório “public/“:
cd <ojs-system-dir>/public
tar -cvzf ~/public.tar.gz ./
Transfira os arquivos ao servidor de teste: normalmente é usado o comando scp
ou rsync
. Os administradores do servidor deverão informar o que deve ser usado, mas, em geral é algo semelhante à:
rsync -avz client\_db.sql username@stagingserver.org:/~
rsync -avz public.tar.gz username@stagingserver.org:/~
rsync -avz files.tar.gz username@stagingserver.org:/~
Instale a base de dados (ajuste de acordo com o nome de usuário, da base de dados e senha do seu ambiente, especificados anteriormente):
mysql -u ojs-sandbox -p ojs-sandbox < ~/client\_db.sql
psql -U postgres -h localhost -f ~/client_db.sql postgres
Instale os arquivos das submissões:
tar -xvf ~/files.tar.gz <files directory>
Instale a pasta pública:
tar xvf ~/public.tar.gz <ojs-folder>/public/
Edite o arquivo config.inc.php
, ajustando os parâmetros da base de dados e files_dir.
vi config.inc.php
A partir deste momento, todos os arquivos relevantes e tabelas da base de dados devem estar em seus devidos lugares, e o arquivo de configuração deve apontar para esses locais.
Caso esteja executando seu ambiente de teste em um servidor próprio, considere desabilitar toda e qualquer funcionalidade de e-mail no servidor. No entanto, as instruções a seguir também funcionarão (em que nenhum e-mail será enviado para endereços de ambiente de teste).
Configure os endereços de e-mail para o Mailinator, o que fará com que todas as mensagens serão enviadas a uma caixa de correio pública (por exemplo, username@mailinator.com), ou usar um endereço falso. Também podem ser usados endereços de e-mail com base nos papéis. Para isso, será necessário acessar a base de dados:
mysql -u ojs -pojs ojs-sandbox
psql -h localhost -U ojs -d 'ojs-sandbox'
Para definir todos os endereços de todos os usuários para username@mailinator.com:
UPDATE users SET email=CONCAT\(username,'@mailinator.com’\);
Para definir todos os e-mails relacionados a submissão, por exemplo, dos colaboradores, para test@example.com:
UPDATE authors SET email = 'test@example.com’
A proteção é incluída em todos os ambientes de teste ao incluir uma proteção via .htaccess e .htpasswd na raiz do ambiente de teste. Os administradores dos servidores deverão saber como realizar esta configuração.
A partir da raiz do ambiente de teste execute o comando a seguir:
php tools/upgrade.php upgrade
A partir deste ponto, caso a atualização seja concluída com sucesso, o servidor de teste deverá estar funcionando com uma versão OJS 3 limpa e protegida que poderá ser gerenciada via git.