Pesquisa personalizada
IP

quarta-feira, 14 de outubro de 2015

Horário de Verão 2015-2016 - Debian/CentOS

Uma postagem rápida para atualizar os servidores para entrar e sair do horário de Verão de 2015/2016

root@srv:~# ls -l /usr/share/zoneinfo/Brazil/
-rw-r--r-- 1 root root  626 Jun 15  2014 Acre // -5  horas em relação a Greenwich
-rw-r--r-- 1 root root  714 Jun 15  2014 DeNoronha // -2  horas em relação a Greenwich
-rw-r--r-- 1 root root 2001 Jun 15  2014 East // -3  horas em relação a Greenwich
-rw-r--r-- 1 root root  602 Jun 15  2014 West // -4  horas em relação a Greenwich


Cada arquivo representa uma região do Brasil. Estou 3 horas atrasado em relação ao Meridiano de Greenwich, representado pelo arquivo de zona East, este arquivo possui as linhas necessárias para a entrada e saída do horário de verão automaticamente.

Saiba mais: http://www.brasilescola.com/brasil/fuso-horario-brasileiro.htm

#Debian:
Atualizando e instalando:

apt-get update
apt-get install tzdata tzdata-java
zdump -v Brazil/East |grep 201[56]
date
ou
apt-get update && apt-get install tzdata tzdata-java && zdump -v Brazil/East |grep 201[5] && date

#CentOS

Atualizando e instalando:

yum  install tzdata tzdata-java
zdump -v Brazil/East |grep 201[35]
date
ou
yum  install tzdata tzdata-java && zdump -v Brazil/East |grep 201[35] && date

terça-feira, 6 de outubro de 2015

Montando Pendrive no RaspBerry PI

Passo 1: Identificar a UUID do PenDrive
Identificar o UUID do seu pendrive, assim caso o sistema sofra alguma alteração o pendrive vai ser sempre reconhecido e contado no seu devido lugar.

# ls -l /dev/disk/by-uuid/

lrwxrwxrwx 1 root root  9 Set 25 20:03 12ED-0B9A -> ../../sda
lrwxrwxrwx 1 root root 15 Jun  1 20:31 13d368bf-6dbf-4751-8ba1-88bed06bef77 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 15 Jun  1 20:31 15CD-3B79 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Set 25 20:05 330C-8886 -> ../../sda1

A linha grafada em laranja  exemplifica a uuid do pendrive, note que ele foi reconhecido como sda1, e seu uuid é 330C-8886, mas  nada impediria de se usar a notação /dev/sda1, iria funcionar normalmente, o problema esta quando o pendrive for substituído, o uuid dele ira mudar, mas ele ainda poderá ser reconhecido com sda1 pelo sistema.

Usar o UUID garante que estamos utilizando o pendrive correto.

Nota: Para cada formatação realizada no pendrive um novo uuid será gerado. 

Passo 2: Preparando o ponto de montagem
# mkdir /pendrive
# chown -R pi:pi /pendrive

Passo 3: Montando o pendrive com permissões de escrita para o usuário pi

As duas formas abaixo são válidas para montar o pendrive, note que uma é usada a notação com /dev/sda1 e na outra é utilizado o uuid do dispositivo, claro que na linha de comando o mais fácil é utilizar o /dev/sdxx

mount /dev/sda1 /media/usb -o uid=pi,gid=pi

mount -t vfat UUID=330C-8886 /pendrive -o uid=pi,gid=pi 

Passo 4: Automatizando

Acrescente a linha abaixo no arquivo /etc/fstab

UUID=330C-8886   /pendrive  vfat   auto,users,rw,uid=pi,gid=pi  0  0

Não esqueça de altera  a coluna UUID=330C-8886 com uuid listada no seu sistema.


Referências:
http://www.raspberrypi-spy.co.uk/2014/05/how-to-mount-a-usb-flash-disk-on-the-raspberry-pi/


terça-feira, 29 de setembro de 2015

RaspBerry PI2 como WebServer - LEMP



Todos já ouvimos falar sobre a combinação LAMP[ Linux, Apache, mysql e PHP], eu mesmo utilizo o famoso "combo" em diversos servidores de produção sem maiores problemas, claro, conto com máquinas bem dimensionadas para tarefa, mas em hardware mais modestos como o caso do pequeno, mas valente RaspBerry, precisamos otimizar ao máximo os recursos disponíveis.

Com o objetivo de criar um servidor Web com meu RaspBarry, para "estudos acadêmicos", então fui perguntar para meu amigo[google] o que ele recomendaria no lugar do combo LAMP, para minha surpresa a resposta foi: LEMP [Linux, NGINX, mysql e PHP]. O "E" da sigla vem da pronuncia de nginx, que se pronuncia `Engine x`. Os mais céticos provavelmente reclame do Mysql, bom no lugar poderemos utilizar o sqlight.

Então sem mais rodeios, vamos a descrição da solução encontrada:

Hardware:
    RaspBerry PI 2 Modelo B
    CPU: 900MHz quad-core ARM Cortex-A7
    RAM: 1GB
    SD: 32GB

Software:
    Sistema Operacional: Raspbian
        [Porte do Debian wheezy para CPU ARM]

Web-Server: Nginx
        [O Nginx é um servidor Web, proxy reverso, proxy balanceador de carga, e faz praticamente tudo que o Apache faz, só que muito mais rápido!]

PHP: PHP5-fpm
        [FPM (FastCGI Process Manager) é uma alternativa para a implementação PHP FastCGI com alguns recursos adicionais, principalmente usado em sites pesados. A decisão de utilizar o FPM no lugar da implementação tradicional do PHP é meramente acadêmica.]

DB-Server: Mysql

Implementação:
Para instalar os software foi utilizado os pacotes pré compilados distribuídos juntamente com o Raspbian via apt-get, para os mais puritanos, pode baixar e compilar os software sem problemas, só não esqueça de instalar os compiladores.

    1. Instalando/Configurando o nginx e PHP-fpm
   
        Uma das grandes vantagens do nginx e sua fácil configuração, vou demonstrar como instalar e configurar o nginx para utilizar o php-fpm.

        Instalando:
            apt-get install nginx php5-fpm php5-cli
           
            Note que também estou instalando o php5-cli, assim é possível executar scripts PHP diretamente no shell.

Configurando:       
        O arquivo de configuração do Server nginx está em /etc/nginx/nginx.conf, este arquivo é o responsável pelo comportamento do servidor Web Nginx, já o arquivo que contém a configurações do site esta em /etc/nginx/sites-available/default, seguindo o padrão do Debian.
       
        Dentro do arquivo encontramos a tag server {...}, dentro dela é que devemos colocar as configurações.
       
        Abaixo uma configuração minimalista de um host:
       
        server {
            listen 80;
            listen meusite.com:80;
            server_name meusite.com;
            #Diretório root do site, o mesmo DOCUMENT_ROOT do Apache
            root /usr/share/nginx/www/meusite.com;
            index index.html index.htm index.php;

            #Configuração para utilizar o PHP-fpm, onde o nginx envia os arquivos .php para o PHP-fpm.
            location ~ .php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
            }
        }

        Mais opções estão disponíveis neste web server, porem, minhas necessidades não requerem configurações mais elaboradas.
       
2. Instalando Mysql
       
            A instalação do mysql é bastante simples, o único detalhe solicitado pelo instalador é senha root do mysql.

Instalação:
                apt-get install php5-mysql mysql-server php5-sqlite php5-odbc
           
    Com isso terminamos a instalação dos pacotes.
   
    Para finalizar precisamos reiniciar os servidos, execute:
   
        /etc/init.d/mysql stop; /etc/init.d/mysql start
        /etc/init.d/nginx stop; /etc/init.d/nginx start
        /etc/init.d/php5-fpm stop;  /etc/init.d/php5-fpm start
       
        Para muitos o ultimo comando pode ser um pouco estranho, mas uma das características o php5-fpm é ser executado como um daemon
   
    E finalmente testamos as configurações, abra seu navegador favorito e acesso o endereço do seu servidor.
        http://ip_do_servidor/
   
    Lembre de colocar um arquivo index.php dento do diretório root do site.
        Exemplo de index.php           
                                 echo 'Teste do Web Server NGINX com PHP-pfm';
            ?>
             Ou utilizando a função phpinfo:
                               phpinfo();
              ?>

           
    Referencias:
    http://www.raspberrypi.org
    https://www.raspbian.org/
    https://www.raspberrypi.org/downloads/raspbian/
    http://nginx.org/en/
    http://php.net/manual/pt_BR/install.fpm.php
    https://www.mysql.com/
    http://php.net/manual/pt_BR/book.sqlite.php
    https://www.sqlite.org/about.html