Exercício 1

Copiar arquivos em um diretório disponível em um servidor web sob seu controle

Alunos do IF/UFRGS: Ativar seu public_html no LIEF

  1. Acesse sua conta no lief

    $ ssh teu_login@lief.if.ufrgs.br

  2. Crie o diretório public_html e configure para leitura pública

    $ mkdir public_html

    $ chmod 755 public_html

  3. Vá para o diretório e crie um arquivo

    $ cd public_html

    $ touch teste.txt

  4. Utilize um navegador para acessar o endereço http://lief.if.ufrgs.br/~teu_login

Alternativas para quem não tem acesso aos servidores da universidade

  • Utilizar o Davros (App do Sandstorm);
  • Alugar um espaço em um servidor compartilhado;
  • Alugar Virtual Private Server (VPS);

Exercício 2

Criar uma página html mínima (opcional)

  1. A partir do public_html crie um arquivo chamado pagina.html

    $ nano site_projeto/pagina.html

  2. Adicione o seguinte código html no arquivo

<html>
<meta http-equiv="Content-Type" content="text/html;charset=UTF8">
<head>
<title>Título da Página </title>
</head>
<body>
Este é meu texto!
</body>
</html>
  1. Salve e saia do editor nano

    Ctrl + o salva arquivo -> digite enter para confirmar o nome do arquivo

    Ctrl + x sai do nano

  2. Visite o arquivo utilizando o navegador. Perceba o título na barra do navegador.


Exercício 3

Montar comando para publicação do website

Como a atualização do site pode ser bastante comum, é interessante montar um comando ou script que realize a sincronização dos teus arquivos locais com o servidor remoto. Além disso, o website pode conter arquivos grandes, tais como dados e arquivos binários, que não precisam ser copiados em cada atualização do site. A ferramenta de ouro para copiar apenas os arquivos alterados para o servidor é o rsync.

O rsync é incremental e copia apenas as alterações dos arquivos, podendo sincronizar tanto arquivos locais (no mesmo computador), como arquivos remotos. Com ele a sincronização pode ser feita com um script que executa o comando com os parâmetros adequados.

Exemplo:

Partindo do diretório do projeto a ser documentado no seu computador:

  1. Crie o diretório do seu site

    $ mkdir site_projeto

  2. Adicione arquivos

    $ touch site_projeto/meu_arquivo.txt

  3. Crie o script de sincronização

    $ echo "rsync -av site_projeto teu_username@lief.if.ufrgs.br:/home/teu_username/public_html" > atualiza.sh

    $ chmod +x atualiza.sh

  4. Execute o comando de atualização

    $ ./atualiza.sh

  5. Verifique as alterações no site utilizando o seu navegador favorito.

Após a realização destes passos você terá a seguinte estrutura de diretórios e arquivos:

.
├── atualiza.sh
└── site_projeto
    ├── meu_arquivo.txt
    └── pagina.html

Perceba que, neste caso, o script atualiza.sh está em um nível acima em relação aos arquivos do site_projeto. Pode-se considerar manter o script no próprio diretório site_projeto, porém, neste caso ele deverá ser ajustado:

  1. cd site_projeto
  2. echo "rsync -av . teu_username@lief.if.ufrgs.br:/home/teu_username/public_html/site_projeto/" > atualiza.sh

Atenção: Informações sensíveis registradas neste arquivo, tais como senhas, serão copiadas para o servidor.

Má ideia

Copiar usando o gerenciador de arquivos como o Nautilus (mas pode ajudar em emergências).

Para acessar os arquivos do servidor remoto diretamente na janela do Nautilus (navegador de arquivos do Gnome) digite Ctrl+l e visite sftp://teu_username@lief.if.ufrgs.br/home/teu_username/public_html/


Instalação do Jekyll

Para instalar a versão mais atual do Jekyll no TropOS / Debian Jessie, utilize os seguintes comandos:

Atualize os pacotes do seu sistema:

sudo apt-get update
sudo apt-get upgrade

Atenção: A atualização dos pacotes no TropOS rodando a partir de um pendrive pode levar algumas horas!

Instale as dependências do Jekyll

sudo apt-get install ruby-full build-essential

Instale o Jekyll e o Bundler usando RubyGems

$ sudo gem install jekyll bundler