Mudanças entre as edições de "DES:Drupal"

De Wiki Unioeste NTI
Ir para navegaçãoIr para pesquisar
 
(33 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 88: Linha 88:
  
 
== Guia Simplificado ==
 
== Guia Simplificado ==
* Instalar uma máquina com Ubuntu, pois fica mais fácil de trabalhar com o PHP, Apache, Scripts, etc.
+
* Instalar uma máquina com Ubuntu para servir de estação de desenvolvimento do site, pois fica mais fácil de trabalhar com o PHP, Apache, Scripts, etc.
 +
* Instalar Apache, PHP e Postgres
 +
* Fazer a seguinte configuração no arquivo \etc\apache2\sites-available\default
 +
<pre>
 +
<Directory /var/www/cnu>
 +
                Options -Indexes FollowSymLinks MultiViews
 +
                AllowOverride All
 +
                Order allow,deny
 +
                allow from all
 +
                # This directive allows us to have apache2's default start page
 +
                # in /apache2-default/, but still have / go to the right place
 +
                RedirectMatch ^/$ /apache2-default/
 +
        </Directory>
 +
</pre>
 +
*Antes de rodar o script para copiar os arquivos que não estão no controle de versão, criar a pasta "files"
 +
* Para configurar um servidor de ftp no servidor, siga os passos no link http://bdhacker.wordpress.com/2011/11/26/update-drupal-modules-using-ftp-in-localhost/
 +
* Para atualizar a versão do Drupal de forma fácil, visite o link http://fuerstnet.de/en/drupal-upgrade-easier?page=1
  
 +
== Passo a passo para atualizar a instalação do Drupal ==
 +
* Coloque o site em modo de manutenção (somente leitura)
 +
* Usando o pgadmin, faça backup do banco de dados
 +
* Restaure o backup no servidor de banco de dados de desenvolvimento, ou no servidor de produção, mas com outro nome
 +
* No servidor php de desenvolvimento( 200.201.88.173), faça um git pull do site: git clone ssh://usuario@cac-php.unioeste.br/var/git/cnu.git cnu
 +
* Crie a pasta '''files''' em /var/www/cnu/sites/default: mkdir /var/www/cnu/sites/default/sites
 +
* Entre na pasta /var/www/cnu/meus_scripts e rode o arquivo copiar_files.sh: copiar_files.sh seu_usuario_no_cacphp
 +
* Crie o arquivo settings.php: vi /var/www/cnu/sites/default/settings.php
 +
* Copie e cole o conteúdo do arquivo original do cac-php, para este arquivo recém criado; procure as linhas de configuração de conexão com o banco de dados "$databases = array (...)" e altere as propriedades conforme for necessário para conectar no banco de dados de desenvolvimento, lembrando que a porta do Postgres no cac-php é 5433, mas a padrão é a 5432
 +
* Para logar no site, acesse a página http://200.201.88.173/cnu/?q=user
 +
* Faça as alterações necessárias:
 +
** Atualize os módulos
 +
** Atualize a versão do Drupal, se necessário: http://fuerstnet.de/en/drupal-upgrade-easier?page=1
 +
** Se durante alguma atualização o Drupal reclamar que está em modo de manutenção, acessa a página de configurações e desmarque a caixa de somente leitura, mas mantendo o site em modo de manutenção
 +
* Para dar commit das alterações realizadas,  execute os comandos:
 +
** Adiciona os arquivos para commit: '''git add .'''
 +
** Confirma modificações localmente: '''git commit -m “descrição da modificação”'''
 +
** Envia modificações para o controle de versão: '''git push'''
 +
* No servidor de produção, vá na pasta raiz da instalação do Drupal e execute o comando '''git pull''' para pegar as atualizações do controle de versão. Caso tenha problemas, faça:
 +
** git reset --hard (descarta qualquer alteração feita localmente)
 +
** git pull (puxa novamente as alterações do controle de versão) (http://stackoverflow.com/questions/878554/why-do-i-sometimes-see-an-entry-filename-not-uptodate-cannot-merge-after-a)
 +
* Para concluir, você deve colocar o banco de dados alterado (com as atualizações) no servidor de produção:
 +
** Renomeie o banco de dados atual (utilize os comandos abaixo)
 +
** Crie um novo banco de dados com o nome "cnu", lembrando de setar o ENCODING para UTF8, o Collation e o Character type para pt_BR.utf8
 +
** Restaure o backup do servidor de desenvolvimento neste novo banco
 +
<pre>
 +
--listar conexoes abertas com o banco
 +
select * from pg_stat_activity where datname='cnu';
 +
--excluir conexoes abertas com o banco
 +
select pg_terminate_backend(procpid) from pg_stat_activity where datname='cnu';
 +
--alter o nome do banco
 +
ALTER DATABASE "cnu" RENAME TO "cnu_bck";
 +
</pre>
 +
* Vá nas configurações e altere o seguinte:
 +
** Em "Modo de manutenção", habilite para que o site fique online
 +
** Em "Desempenho", clique no botão para limpar o cache
 +
* Faça um teste para verificar se o site está online e funcional
 +
 +
== Módulos ==
 +
* Insere novos atributos aos itens de menu do Drupal: http://drupal.org/project/menu_attributes
  
 
== Histórico de Alterações ==
 
== Histórico de Alterações ==
 
* 20/05/2013 - Marcio: Widget da página principal alterado para redirecionar para a página inicial do CNU (antes redirecionava para a notícia clicada)
 
* 20/05/2013 - Marcio: Widget da página principal alterado para redirecionar para a página inicial do CNU (antes redirecionava para a notícia clicada)
 +
* 24/05/2013 - Marcio: Link principal "Unioeste" alterado para redirecionar para a página da Unioeste
 +
* 04/06/2013 - Marcio: Atualiza a versão do Drupal para a 7.22 e também todos os módulos
 +
* 06/06/2013 - Marcio: Alterada configuração para que sejam exibidos 8 posts na página inicial (antes eram no máximo 4)
 +
* 11/09/2013 - Marcio: Criada uma visão que exibe notícias específicas sobre o Vestibular 2014 (filtrando pela tag "Vestibular 2014")
 +
** Para reproduzir o efeito de slide da página inicial do CNU, para a página /vestibular, foi necessário copiar dois arquivos de template da pasta /var/www/cnu/sites/all/themes/corporateclean_unioeste/templates: views-view--destaques.tpl.php (renomeado para views-view--destaques-vestibular.tpl.php) e views-view-unformatted--destaques.tpl.php (renomeado para views-view-unformatted--destaques-vestibular.tpl.php)
 +
** Criamos uma visão Page para mostrar todas as notícias sobre o vestibular 2014: clonamos a visão "Notícias" e alteramos o campo de Endereço para "vestibular", o Título e o Filtro (para filtrar pela tag "Vestibular 2014")
 +
** Criamos uma visão do tipo Block para mostrar estas notícias na forma de slide, semelhante à página inicial do CNU; para isso, clonamos a visão "Destaques" e alteramos o campo Block Name para destaques-vestibular (para coincidir com o nome dos arquivos criados anteriormente), e também o filtro, removendo a restrição de filtro por Destacado=Sim e incluindo o filtro pela tag do vestibular 2014; também deve-se ir no item Theme: information e fazer um rescan dos arquivos
 +
** Configuramos o bloco recém criado para aparecer na região "banner", mas somente para a página "vestibular"
 +
* Por fim, foi criado um novo widget (vestibular.php) na pasta /var/www/widgets/noticiascnu, para exibir o slide das notícias do vestibular.

Edição atual tal como às 16h55min de 11 de setembro de 2013

Ferramentas auxiliares

Drush

  • sudo pear config-set http_proxy http://proxy.unioeste.br:8080
  • sudo pear channel-discover pear.drush.org
  • sudo pear install drush/drush
  • sudo pear install Console_Table (requerido pelo drush)
  • Rode o comando “drush”. Se tudo ocorreu bem deve ser exibido a tela de ajuda do programa.

Git

  • sudo apt-get install git

Commits

  • Antes de realizar commits rodar o seguinte comando:
    • drush cc all (limpa o cache do banco)
    • drush sql-dump > caminho_para_arquivo.sql
  • Assim o banco também ficará no controle de versão.

Para evitar ter que sempre digitar estes comandos, você pode criar um arquivo com permissão de execução no seguinte diretório do seu repositório local: .git/hooks/pre-commit e adicionar o seguinte conteúdo:
#### início do conteúdo para adicionar ####
#!/bin/sh
#
# Hook script to always add the database in the commits.

echo "Adicionando BD ao commit"
(cd `git rev-parse --show-toplevel`; drush cc all)
drush sql-dump > `git rev-parse --show-toplevel`'/bd/dump.sql'
git add `git rev-parse --show-toplevel`'/bd/dump.sql'
#### final do conteúdo para adicionar ####

Criando o site localmente para modificações

Você precisa ter o postgresql instalado na máquina e o apache, com suporte a PHP e mod_rewrite habilitado. Nas configurações do apache, do diretório que está o drupal, deve-se modificar AllowOverride de None para All

git clone ssh://usuario@cac-php.unioeste.br/var/git/cnu.git cnu (faz download dos arquivos do repositório)

ATENÇÃO: A pasta sites/default/files e sites/default/settings.php não está no controle de versão. A pasta files contem as imagens utilizadas no site (notícias, layout, etc). Na pasta meus_scripts está o arquivo copiar_files.sh que copia os arquivos do servidor para o repositórios local.

Procedimentos para realizar uma atualização, inclusive de módulos (envolvendo banco de dados)

Servidor

  • Colocar a página no servidor no modo de manutenção (somente leitura)
  • Executar o arquivo dump_servidor.sh (irá salvar o banco de dados do servidor)


Local

  • Se ainda não tiver o arquivo settings.php localmente, copie-o do servidor e atualize as configurações para conectar no seu banco local
  • Rode o script restaurar_servidor_local.sh para fazer uma cópia do conteúdo do servidor para a máquina local
  • Instale os módulos, faça as configurações necessárias, modifique os arquivos necessários, etc.
  • Rode o script dump_local.sh (irá salvar o banco de dados local)
  • Na pasta raiz da página execute: git add . (adiciona os arquivos para commit)
  • git commit -m “descrição da modificação” (confirma modificações localmente)
  • git push (envia modificações para o controle de versão)
  • ATENÇÃO: Caso algum conteúdo seja adicionado a pasta sites/default/files estes devem ser copiados manualmente para o servidor.


Servidor

  • git checkout bd/dump.sql (descarta alteração feita na primeira parte do processo, necessário para rodar o git pull, que exige uma árvore sem modificações)
  • Entre na past do drupal e execute: git pull (pega as atualizações do servidor)
  • Caso exista problemas de permissão, execute o seguinte:
    • sudo /root/bin/meuch.sh pasta_do_site
    • git add .
    • git commit -m “corrigindo permissões”
    • git push
  • executar o script “colocar_em_producao.sh”


Feito! Seu site já está rodando com sua atualizações de módulos, etc.

Procedimentos para realizar uma atualização (sem alteração do banco)

Local

  • git pull (atualiza seu repositório local)
  • modifique os arquivos necessários (.css, .php, etc)
  • git add .
  • git commit -m “descrição da modfiicação”
  • git push


Servidor

  • git pull (atualiza repositório)


Feito! Arquivos atualizados!

Guia Simplificado

  • Instalar uma máquina com Ubuntu para servir de estação de desenvolvimento do site, pois fica mais fácil de trabalhar com o PHP, Apache, Scripts, etc.
  • Instalar Apache, PHP e Postgres
  • Fazer a seguinte configuração no arquivo \etc\apache2\sites-available\default
	<Directory /var/www/cnu>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
                # This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                RedirectMatch ^/$ /apache2-default/
        </Directory>

Passo a passo para atualizar a instalação do Drupal

  • Coloque o site em modo de manutenção (somente leitura)
  • Usando o pgadmin, faça backup do banco de dados
  • Restaure o backup no servidor de banco de dados de desenvolvimento, ou no servidor de produção, mas com outro nome
  • No servidor php de desenvolvimento( 200.201.88.173), faça um git pull do site: git clone ssh://usuario@cac-php.unioeste.br/var/git/cnu.git cnu
  • Crie a pasta files em /var/www/cnu/sites/default: mkdir /var/www/cnu/sites/default/sites
  • Entre na pasta /var/www/cnu/meus_scripts e rode o arquivo copiar_files.sh: copiar_files.sh seu_usuario_no_cacphp
  • Crie o arquivo settings.php: vi /var/www/cnu/sites/default/settings.php
  • Copie e cole o conteúdo do arquivo original do cac-php, para este arquivo recém criado; procure as linhas de configuração de conexão com o banco de dados "$databases = array (...)" e altere as propriedades conforme for necessário para conectar no banco de dados de desenvolvimento, lembrando que a porta do Postgres no cac-php é 5433, mas a padrão é a 5432
  • Para logar no site, acesse a página http://200.201.88.173/cnu/?q=user
  • Faça as alterações necessárias:
    • Atualize os módulos
    • Atualize a versão do Drupal, se necessário: http://fuerstnet.de/en/drupal-upgrade-easier?page=1
    • Se durante alguma atualização o Drupal reclamar que está em modo de manutenção, acessa a página de configurações e desmarque a caixa de somente leitura, mas mantendo o site em modo de manutenção
  • Para dar commit das alterações realizadas, execute os comandos:
    • Adiciona os arquivos para commit: git add .
    • Confirma modificações localmente: git commit -m “descrição da modificação”
    • Envia modificações para o controle de versão: git push
  • No servidor de produção, vá na pasta raiz da instalação do Drupal e execute o comando git pull para pegar as atualizações do controle de versão. Caso tenha problemas, faça:
  • Para concluir, você deve colocar o banco de dados alterado (com as atualizações) no servidor de produção:
    • Renomeie o banco de dados atual (utilize os comandos abaixo)
    • Crie um novo banco de dados com o nome "cnu", lembrando de setar o ENCODING para UTF8, o Collation e o Character type para pt_BR.utf8
    • Restaure o backup do servidor de desenvolvimento neste novo banco
--listar conexoes abertas com o banco
select * from pg_stat_activity where datname='cnu';
--excluir conexoes abertas com o banco
select pg_terminate_backend(procpid) from pg_stat_activity where datname='cnu';
--alter o nome do banco
ALTER DATABASE "cnu" RENAME TO "cnu_bck";
  • Vá nas configurações e altere o seguinte:
    • Em "Modo de manutenção", habilite para que o site fique online
    • Em "Desempenho", clique no botão para limpar o cache
  • Faça um teste para verificar se o site está online e funcional

Módulos

Histórico de Alterações

  • 20/05/2013 - Marcio: Widget da página principal alterado para redirecionar para a página inicial do CNU (antes redirecionava para a notícia clicada)
  • 24/05/2013 - Marcio: Link principal "Unioeste" alterado para redirecionar para a página da Unioeste
  • 04/06/2013 - Marcio: Atualiza a versão do Drupal para a 7.22 e também todos os módulos
  • 06/06/2013 - Marcio: Alterada configuração para que sejam exibidos 8 posts na página inicial (antes eram no máximo 4)
  • 11/09/2013 - Marcio: Criada uma visão que exibe notícias específicas sobre o Vestibular 2014 (filtrando pela tag "Vestibular 2014")
    • Para reproduzir o efeito de slide da página inicial do CNU, para a página /vestibular, foi necessário copiar dois arquivos de template da pasta /var/www/cnu/sites/all/themes/corporateclean_unioeste/templates: views-view--destaques.tpl.php (renomeado para views-view--destaques-vestibular.tpl.php) e views-view-unformatted--destaques.tpl.php (renomeado para views-view-unformatted--destaques-vestibular.tpl.php)
    • Criamos uma visão Page para mostrar todas as notícias sobre o vestibular 2014: clonamos a visão "Notícias" e alteramos o campo de Endereço para "vestibular", o Título e o Filtro (para filtrar pela tag "Vestibular 2014")
    • Criamos uma visão do tipo Block para mostrar estas notícias na forma de slide, semelhante à página inicial do CNU; para isso, clonamos a visão "Destaques" e alteramos o campo Block Name para destaques-vestibular (para coincidir com o nome dos arquivos criados anteriormente), e também o filtro, removendo a restrição de filtro por Destacado=Sim e incluindo o filtro pela tag do vestibular 2014; também deve-se ir no item Theme: information e fazer um rescan dos arquivos
    • Configuramos o bloco recém criado para aparecer na região "banner", mas somente para a página "vestibular"
  • Por fim, foi criado um novo widget (vestibular.php) na pasta /var/www/widgets/noticiascnu, para exibir o slide das notícias do vestibular.