Pesquisa personalizada
IP

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

domingo, 29 de julho de 2012

Trabalhando com Mysql

Bom, ultimamente tenho trabalhado diretamente com bases de dados MySQL, atualizando um bando diretamente na mão.... Estou desenvolvendo uma interface em php para facilitar a vida, mas até a interface ficar pronta, vamos na unha mesmo....

Segue abaixo algum comandos utilizados na manipulação de bases MySQL:






Criando bases MySQL:

CREATE DATABASE `teste`;




Criando usuário e privilégios para o bando de dados:

CREATE USER username [IDENTIFIED BY [PASSWORD] '123456' ]

Onde: username = nome do usuário e '123456' é a senha

Adicionar usuário ao bando

GRANT ALL PRIVILEGES ON teste.* TO 'username'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

Onde:
    teste = nome do banco de dados acima criado;
    username = nome do usuário acima criado;
    123456 = senha do usuário que criamos;




Criando tabelas no MySQL:

CREATE TABLE nome_tabela (
    nome_campo_1  tipo_1,
    nome_campo_2  tipo_2,
    nome_campo_n tipo_n,
    PRIMARY KEY (campo_x)
);


Tipos de campos
Tipo             |            Descrição
-----------------------------------------------------
INT               |          Valor inteiro
REAL           |              Valor de ponto flutuante
CHAR(tamanho)     |            Valor de caractere de tamanho fixo. Valor inferior ao definido será deixado em branco.
TEXT(tamanho)       |          Valor de caractere de tamanho variável.
VARCHAR(tamanho)     |        Valor de caractere de tamanho variável. Valores inferiores ao definido serão suprimidos.
DATE             |            Valor para datas do tipo (AAAA-MM-DD)
TIME             |           Valor de tempo padrão
DATETIME        |             Valor para data e hora agregados.


Exemplo:

CREATE TABLE clientes(
    codigo int(4) AUTO_INCREMENT,
    nome varchar(30) NOT NULL,
    email varchar(50),
    data_nascimento date,
    PRIMARY KEY (codigo)
);

null/not null     deve-se escolher um dos dois para indicar se o campo aceita valores nulos ou não
AUTO_INCREMENT Incrementa valor automaticamente
PRIMARY KEY define a chave primária da tabela
NOT NULL preenchimento obrigatório




Exemplo de comando para inserir dados em uma tabela:

INSERT into clientes VALUES ('','Fulano','fulano@email.com.br','1988-08-08')




Corrigindo estrutura da tabela:

Comando ALTER TABLE e usar os parâmetros ADD e CHANGE.

Exemplos:Adicionando o campo "codcurso" na tabela Alunos:

mysql> alter table ALUNOS
    -> add codcurso char(2) not null;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

Alterando o tamanho do campo "nomecurso" na tabela Cursos:

mysql> alter table CURSOS
    -> change nomecurso nomecurso varchar(50);
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0



Visualizando estrutura de uma tabela:

desc nome_da_tabela;




Exibir tabelas do bando de dados atual:

SHOW TABLES;




Exibindo bancos de dados:

SHOW DATABASES;




Alternando entre bancos de Dados:

USE data_base;
Database changed




 Próximo Post: Como importar consultas SQL para o Microsoft Excel (Facilita bastante a vida para criar e gerar relatórios)





Fonte: Páginas da internet.

quinta-feira, 12 de janeiro de 2012

Substituir palavras com o VIM

No VIM, para subtituir palavra dentro do texto basta:
Precione ESC :%s/Antiga/Nova/gc

A opção "c" no final da linha irá pedir confirmação para cada ocorrencia encontrada.

sábado, 3 de setembro de 2011

Meu Quinhão


Vivo em uma pequena terra banhada pelas águas do Oceano Atlântico, somos lindeiros com Uruguai, Argentina e até nossos amigos Barriga Verde.

Reconhecidos em muitos lugares com um terra longeva, nosso povo é formado por uma mescla de etnias, fomos forjados no calor das peleias a ferro e fogo, e defendemos sem medo, de adaga em punho este quinhão.

Mas toda esta garra e bravura não nos torna brutos, sim, temos uma personalidade forte e marcante que só de entrar no recinto já somos reconhecidos, cultivamos nossos costumes e tradições passando-os aos nossos piás deste o momento do nascimento.

Terra que emanam leite e mel, fabricamos de calçados a Computadores, vinhos a caminhões, milho a até grandes Top Model, de grande notoriedade em outras terras.

E nossas belezas naturais! Possuímos a maior praia do mundo com cerca de 220 Km, ruínas de grande valor histórico e local de fé e meditações, quedas d'agua que lembra um caracol, fauna em abundancia, nossos pingos, grandes amigos de longas jornadas, sem falar de nossa serra, que beleza indescritível.

Música que a cada acorde de uma velha gaita, canta em prosas e versos nossas façanhas. Versos que só quem nasceu neste quinhão sabe interpretar.

De clima subtropical com quatro estações, vislumbra-se o espetáculo do cair das folhas e o sol, que ao longe vem despontando sobre esta terra como uma brasa que aquece os dias em que o minuano teima em cortar nossos corações.

Todo guri, desde o ventre, sabe que só existe duas cores nesta vida o Vermelho, como o sangue e o Azul do céu, são duas paixões deste povo.

Quando se reunimos para colocar a prosa em dia, duas coisas não podem faltar, um bom e tupetudo amargo e um fogo de chão.

De nosso chão, já saíram grandes nomes, pessoas que marcaram com fogo seu nome na história, não só desta terra como em terras vizinhas.

Minha vestimenta depende do tempo em que vivemos, com fervor nos pilchamos de bota, bombacha e faca na cintura e assim estamos trajados, na mais alta estirpe, em tempos outroros já vestimos farrapos, com muito orgulho.

Em meu chão, tratamos as mulheres com o respeito que a elas é devido, pois, forram elas que nos deram a vida e acalentaram em seu peito. Conhecida com prenda, sinônimo de joia preciosa de valor inestimável.

E para quem não sabe chegar em meu quinhão, siga o rumo do teu coração, e verás que esta terra é o meu AMADO RIO GRANDE DO SUL. Sou Gaúcho de alma e coração.

Por Artur Gomes Neto

terça-feira, 2 de agosto de 2011

Entendendo a saída do comando ifconfig

Vamos analisar a saída do comando ifconfig abaixo:


# ifconfig
eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:42
inet addr 172.16.1.2 Bcast 172.16.1.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 0
RX packets 3136 errors 217 dropped 7 overrun 26
TX packets 1752 errors 25 dropped 0 overrun 0

ppp0 Link encap:Point-to-Point Protocol
inet addr:187.15.72.157 P-t-P:200.200.200.200 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1400 Metric:1
RX packets:1504239 errors:0 dropped:0 overruns:0 frame:0
TX packets:1155539 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1905349557 (1.7 GiB) TX bytes:81721536 (77.9 MiB)

imq0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:1500 Metric:1
RX packets:2647959 errors:0 dropped:0 overruns:0 frame:0
TX packets:2647730 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
RX bytes:1987468198 (1.8 GiB) TX bytes:1987198741 (1.8 GiB)

Descrição dos campos:
Link encap: Tipo de conexão do link (ethernet, ponto-a-ponto, etc)
HWAddr: Endereço de hardware (MAC Address) da interface. Nem todas as interfaces possuem. Nesse caso, pode aparecer como 00-00-00- ... ou simplesmente não aparecer.
UP BROADCAST RUNNING MTU 1500 Metric 0: Indica as características da interface de rede:

UP/RUNNING: indica que a inteface está ativa.
BROADCAST/MULTICAST: indica que a interface suporta esta modalidade de tráfego (broadcast / unicast)
MTU: Quantidade máxima de bytes que a interface pode transmitir/receber a cada operação.
Metric: Não é utilizado.
NOARP: Indica que a interface não suporta operações com endereços de hardware (MAC)

inet addr: endereço IPv4 da interface (não é orbigatório).
inet6 addr: endereço IPv6 da interface (não é orbigatório).
P-t-P: Indica o endereço da "outra ponta" da conexão (apenas para conexões ponto-a-ponto).
Bcast: Endereço de Broadcast da interface (apenas se houver um endereço IPv4 configurado).
Mask: Máscara de rede da interface (apenas se houver um endereço IPv4 configurado).
RX e TX: Contabiliza os pacotes recebidos (RX) e enviados (TX), bem como os descartados por motivos diversos na transmissão e recepção.
errors: pacotes que não puderam ser transmitidos/recebidos devido a erros (nos próprios pacotes).
dropped: normalmente indica erros de configuração/comunicação. Ex: um equpamento está operando em half-duplex, enquanto o outro está em full-duplex.
overruns: a interface possui duas filas (ou buffers), uma de transmisão e outra de recepção, com um determinado tamanho. Quando essa fila "enche", os pacotes excedentes são descartados como overruns. Em suma: a interface de rede está tentando receber/transmitir mais pacotes/segundo do que o sistema como um todo (interfaces de rede, processador, etc) suporta.
frame: quadros (frames) mal formados.
carrier: erro no link físico. Má fiação, cabos de rede e energia juntos, etc.
collisions: Colisões de rede. Comuns em ambientes com HUBS. Não deveriam ocorrer em ambientes com switches. Se for o caso, cheque a configuração dos equipamentos no tocante ao modo DUPLEX (HALF/FULL) utilizado.
txqueuelen: tamanho da fila (buffer) de transmissão. Normalmente não é necessário alterar o valor padrão.
RX bytes / TX bytes: quantidade de bytes recebidos / transmitidos.

FONTE: http://pragasdigitais.blogspot.com/2011/04/ifconfig-errors-dropped-overrun.html

sexta-feira, 17 de junho de 2011

tar – Agrupando arquivos

Tar é abreviatura de Tape ARchive, é um formato utilizado para arquivar vários arquivos em um único arquivo.

Por padrão, o tar espera que os procedimentos de armazenamento e extração sejam feitos em uma fita DAT, mas graças ao parâmetro -f podemos utilizá-lo em arquivos comuns do sistema.

Sintaxe: $ tar    [arquivos]

Opções:

-f Possibilita a utilização do tar para arquivos

-v modo verbose

-c criar (agrupar)

exemplo: tar -cf backup_etc.tar /etc

-x para extrair (desagrupar)

exemplo: tar -xvf ../backup_etc.tar

-t para listar

exemplo: tar -tf backup_etc.tar

-z Utilizado para compactar/descompactar arquivos no formato tar.gz.

Compactar:
tar -vzcf nomedoarquivo.tar.gz arquivos1 arquivo2

Descompactar:

tar -vzxf nomedoarquivo.tar.gz

-j Utilizado para compactar/descompactar arquivos no formato bzip2.gz.
Compactar:

tar -jcvf nomedoarquivo.tar.bz2 arquivo1 arquivo2

Descompactar:

tar -jxvf nomedoarquivo.tar.bz2

quarta-feira, 11 de maio de 2011

Mingau de Raposa


Como já disse um grande homem: "Nem só de pão vive o homem", este humilde escriba adaptou o provérbio: "Nem só de Bits vive os neds".


Sendo assim, vou descrever aqui como fazer o melhor "Mingau de Raposa" da sua vida...

Material:

1 panela de ferro grande
Colher de pau

Ingredientes:

6 tomates
4 cebolas
1 pimentão verde
1 pimentão vermelho
500g de farinha de mandioca
2 kilos de espinhaço de ovelha (serrados como chuleta)
Pimenta a gosto
Óleo

Modo de Preparar:

Coloque na panela o óleo e o espinhaço de ovelha, aproveite para colocar a pimenta, e deixe fritar para selar, fatie os tomates, cebolas e pimentões e reserve.
Vá adicionando água no espinhaço para não queimar e pegar na panela, mexendo de vez enquanto.
Após fritar o espinhaço adicione o tomate a cebola e o pimentão, adicione um pouco de água e deixe ferver até desmanchar o tomate e a cebola, feito isso, comece a adicionar a farinha de mandioca mexendo sempre até o molho virar um Mingau.

Sirva com arroz branco e um bom vinho tinto seco.
Rendimento: 8 pessoas

Pergunta: onde fica a raposa nesta história?

Simples. Seja inteligente com a raposa vá ao quintal do vizinho pegue uma ovelha e o convide para jantar .... HEHEHEHEEHEH.