Autor: Douglas Villar

  • Instalar PageSpeed e configurar para iniciar com o NGINX no EC2 da Amazon

    Depois de termos instalado e configurado o NGINX e PHP-FPM no EC2 da Amazon vamos ver agora como instalar o PageSpeed e configurar para iniciar com o NGINX.

    1. Vamos instalar as dependências:

    [sourcecode language=”bash”]
    yum install gcc-c++ pcre-dev pcre-devel zlib-devel make
    [/sourcecode]

    2. Download ngx_pagespeed:

    [sourcecode language=”bash”]
    cd ~
    wget https://github.com/pagespeed/ngx_pagespeed/archive/v1.8.31.2-beta.zip
    unzip v1.8.31.2-beta.zip
    cd ngx_pagespeed-1.8.31.2-beta/
    wget https://dl.google.com/dl/page-speed/psol/1.8.31.2.tar.gz
    tar -xzvf 1.8.31.2.tar.gz
    [/sourcecode]

    3. Download and build nginx:

    [sourcecode language=”bash”]
    cd ~
    # check http://nginx.org/en/download.html for the latest version
    wget http://nginx.org/download/nginx-1.6.0.tar.gz
    tar -xvzf nginx-1.6.0.tar.gz
    cd nginx-1.6.0/
    [/sourcecode]

    [sourcecode language=”bash”]
    ./configure –prefix=/usr/share/nginx –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error log-path=/var/log/nginx/error.log –http-log-path=/var/log/nginx/access.log –http-client-body-temp path=/var/lib/nginx/tmp/client_body –http-proxy-temp-path=/var/lib/nginx/tmp/proxy –http-fastcgi-temp path=/var/lib/nginx/tmp/fastcgi –http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi –http-scgi-temp path=/var/lib/nginx/tmp/scgi –pid-path=/var/run/nginx.pid –lock-path=/var/lock/subsys/nginx –user=nginx group=nginx –add-module=../ngx_pagespeed-1.8.31.2-beta
    [/sourcecode]

    [sourcecode language=”bash”]
    make
    make install
    [/sourcecode]

    3. Agora vamos configurar o PageSpeed para iniciar com o NGINX:

    [sourcecode language=”bash”]
    vim /etc/nginx/conf.d/virtual.conf
    [/sourcecode]

    Adicione dentro do bloco server, o código abaixo:

    [sourcecode language=”bash”]
    pagespeed on;
    pagespeed FileCachePath /var/ngx_pagespeed_cache;
    location ~ "\.pagespeed\.([a-z]\.)?[a-z]{2}\.[^.]{10}\.[^.]+" { add_header "" ""; }
    location ~ "^/ngx_pagespeed_static/" { }
    location ~ "^/ngx_pagespeed_beacon$" { }
    location /ngx_pagespeed_statistics { allow 127.0.0.1; deny all; }
    location /ngx_pagespeed_global_statistics { allow 127.0.0.1; deny all; }
    location /ngx_pagespeed_message { allow 127.0.0.1; deny all; }
    location /pagespeed_console { allow 127.0.0.1; deny all; }
    [/sourcecode]

    Depois reinicie o NGINX;

    [sourcecode language=”bash”]
    service nginx restart
    [/sourcecode]

    4. Testar PageSpeed:

    [sourcecode language=”bash”]
    curl -I ‘http://www.seudominio.com.br’ | grep X-Page-Speed
    [/sourcecode]

    É isso ae, temos o PageSpeed instalado e configurado em um servidor EC2 da Amazon, próximos post teremos outros módulos que vai nos ajudar a deixar nossa loja virtual Magento mais rápida e depois vamos instalar o tão esperado magento;

    Valeu!

  • Instalar, configurar e otimizar o Varnish Cache no EC2 da Amazon

    Depois de termos instalado e configurado o NGINX e PHP-FPM no EC2 da Amazon vamos ver agora como instalar, configurar e otimizar o Varnish Cache.

    1. Vamos instalar o varnish no EC2 da Amazon:

    Execute o seguinte comando:

    [sourcecode language=”bash”]
    yum install varnish
    [/sourcecode]

    2. Vamos reiniciar e iniciar os seviços:

    Execute o seguinte comando:

    [sourcecode language=”bash”]
    service php-fpm restart
    service nginx restart
    service varnish start
    [/sourcecode]

    2. Vamos adicionar o Varnish para que inicie de forma automática:

    Execute o comando abaixo e procure por Varnish e marque-o, para que sempre quando o server for reiniciado, inicie de forma automática.

    [sourcecode language=”bash”]
    ntsysv
    [/sourcecode]

    2. Vamos configurar o Varnish:

    Execute o comando abaixo e altere a porta do bloco server listen 80 para listen 8080

    [sourcecode language=”bash”]
    vim /etc/nginx/conf.d/default.conf
    [/sourcecode]

    Execute o comando abaixo e altere a porta do bloco server listen 80 para listen 8080

    [sourcecode language=”bash”]
    vim /etc/nginx/nginx.conf
    [/sourcecode]

    Execute o comando abaixo e altere VARNISH_LISTEN_PORT para VARNISH_LISTEN_PORT=80

    [sourcecode language=”bash”]
    vim /etc/sysconfig/varnish
    [/sourcecode]

    Execute o comando abaixo e altere port do backend default para 8080 e dentro da tag backend adicione .max_connections = 30;

    [sourcecode language=”bash”]
    vim /etc/varnish/default.vcl
    [/sourcecode]

    Por fim

    [sourcecode language=”bash”]
    service nginx restart
    service varnish restart
    [/sourcecode]

    Bem pessoal é isso por enquanto, depois vamos ver como instalar e configurar outros módulos até a instalação tão esperada do Magento.

    Espero que este tutorial tenha ajudado você a instalar, configurar e otimizar o Varnish Cache no EC2 da Amazon. Como sempre, se você achou esta postagem útil, inscreva-se em nossa newsletter gratuita ou siga-nos no Instagram @douglasvillar, conecte comigo no Linkedin e curta nossa página no Facebook.

  • Instalar o Percona Server no EC2 da Amazon

    Depois de termos instalado e configurado o NGINX e PHP-FPM no EC2 da Amazon vamos ver agora como instalar o Percona Server.

    1. Vamos baixar e instalar os arquivos em nosso servidor;

    Execute um comando de cada vez.

    [sourcecode language=”bash”]
    yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
    yum install Percona-Server-server-55.x86_64
    yum install Percona-Server-client-55.x86_64
    [/sourcecode]

    2. Bem agora já temos o Percona instalado, vamos então as configurações!

    Entre em “etc”;

    [sourcecode language=”bash”]
    cd /etc/
    [/sourcecode]

    Verifique se existe o arquivo chamado my.conf, e se não existir crie o arquivo my.conf com o comando $touch my.conf
    E adicione o conteúdo abaixo dentro do arquivo my.conf:

    [sourcecode language=”bash”]
    [mysqld]
    server-id=15
    tmpdir=/dev/shm
    datadir=/srv/mysql
    user=mysql
    innodb_file_per_table = 1
    max_connections = 300
    innodb_flush_method = O_DIRECT
    [/sourcecode]

    3. Agora vamos criar as pastas de instalação do MySQL e instalar;

    [sourcecode language=”bash”]
    mkdir /srv/mysql  
    chown mysql:mysql /srv/mysql/ 
    mysql_install_db –datadir=/srv/mysql
    [/sourcecode]

    Para iniciar o Percona podemos executar o comando $service mysql start ou $/etc/init.d/mysql start

    4. Agora vamos adicionar um usuário com senha para acesso ao banco de dados;

    Criaremos um usuário com o nome de root e uma senha 654321;

    [sourcecode language=”bash”]
    mysqladmin -u root password "654321"
    [/sourcecode]

    Vamos conectar em nosso banco de dados e executar os seguintes comandos;

    [sourcecode language=”bash”]
    mysql -u root -p654321
    UPDATE user SET Password=PASSWORD("654321") WHERE User="root";
    GRANT ALL ON *.* TO "root"@"%" IDENTIFIED BY "65432";
    FLUSH PRIVILEGES;
    [/sourcecode]

    5. Alguns comandos básicos do MysQL;

    Importante para os próximos passos de nosso tutorial.

    [sourcecode language=”bash”]
    create database magento;
    GRANT usage ON *.* TO douglasvillar@localhost IDENTIFIED BY "senha";
    GRANT usage ON *.* TO douglasvillar@"%" IDENTIFIED BY "senha";
    GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON magento.* TO douglasvillar@localhost;
    GRANT CREATE, ALTER, DROP, SELECT, INSERT, UPDATE, DELETE ON mysql_bash.* TO douglasvillar@"%";
    flush privileges;
    [/sourcecode]

    Bem pessoal é isso por enquanto, depois vamos ver como instalar e configurar outros módulos até a instalação tão esperada do Magento.

    Espero que este tutorial tenha ajudado você a instalar o Percona Server no EC2 da Amazon. Como sempre, se você achou esta postagem útil, inscreva-se em nossa newsletter gratuita ou siga-nos no Instagram @douglasvillar, conecte comigo no Linkedin e curta nossa página no Facebook.

  • Instalar e Configurar NGINX e PHP-FPM no EC2 da Amazon

    Estou configurando o NGINX em uma instância EC2 com Amazon Linux AMI 64 bits, como mostrado abaixo. O plano que iniciei para realizar as configurações é o gratuito mesmo que a Amazon libera por um ano.

    EC2 AWS Amazon Linux AMI de 64 bits

    Depois de ter criado a instância, levantado o servidor e feito o download da chave (.pem), vamos conectar no servidor via terminal. Obs: Recomendo você alocar um endereço de IP, indo no próprio painel no menu a esquerda em Elastic IPs e clicar em Allocate New Address e depois Associate Address

    [sourcecode language=”bash”]
    ssh -i minhachave.pem ec2-user@ip
    [/sourcecode]

    Se houver problemas com permissões na sua chave, como por exemplo obter a mensagem Permissions 0664 for ‘minhachave.pem’ are too open. Um simples chmod 400 minhachave.pem resolve o problema.

    Assim que conseguir conectar, vamos mudar para o super usuário com o seguinte comando:

    [sourcecode language=”bash”]
    sudo -s
    [/sourcecode]

    1. Vamos atualizar o linux e ajustar configurações de tempo

    [sourcecode language=”bash”]
    yum -y update
    ln -sf /usr/share/zoneinfo/America/Cuiaba /etc/localtime
    [/sourcecode]

    2. Instalar o servidor web Nginx e o PHP-FPM

    [sourcecode language=”bash”]
    yum install -y nginx php-fpm
    [/sourcecode]

    3. Instalar as extensões necessárias para o Magento e outras extensões comuns

    [sourcecode language=”bash”]
    yum install -y php-devel php-mysql php-pdo php-pear php-mbstring php-cli php-odbc php-imap php-gd php-xml php-soap php-mcrypt
    [/sourcecode]

    4. Instalar o PHP APC (Alternative PHP Cache)

    [sourcecode language=”bash”]
    yum install -y php-pecl-apc
    [/sourcecode]

    5. Configurando o Nginx

    Faça backup e edite o arquivo /etc/nginx/conf.d/virtual.conf

    [sourcecode language=”bash”]
    cd /etc/nginx/conf.d/
    cp virtual.conf virtual.conf.bkp
    vim /etc/nginx/conf.d/virtual.conf
    [/sourcecode]

    Deixe assim:

    [sourcecode language=”bash”]
    #
    # A virtual host using mix of IP-, name-, and port-based configuration
    #

    server {
    # listen 8000;
    # listen somename:8080;
    # server_name somename alias another.alias;

    location / {
    root /usr/share/nginx/html;
    index index.php index.html index.htm;
    }

    location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    [/sourcecode]

    6. Configurar o PHP-FPM

    Vamos fazer backup e editar o arquivo www.conf

    [sourcecode language=”bash”]
    cd /etc/php-fpm.d/
    cp www.conf www.conf.bkp
    vim www.conf
    [/sourcecode]

    Altere os seguintes parâmetros/blocos, deixando-os assim:

    [sourcecode language=”bash”]
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm/php-fpm.sock
     
    listen.owner = nginx
    ;listen.group = nobody
    listen.mode = 0664
     
    ; RPM: apache Choosed to be able to access some dir as httpd
    user = nginx
    ; RPM: Keep a group allowed to write in log dir.
    group = nginx
    [/sourcecode]

    7. Iniciando o PHP-FPM e o Nginx

    [sourcecode language=”bash”]
    service php-fpm start
    service nginx start
    [/sourcecode]

    A esta altura, já temos nosso servidor funcionando e rodando páginas php. Agora vamos fazer com que eles sejam iniciados automaticamente quando nosso servidor for ligado.

    [sourcecode language=”bash”]
    chkconfig nginx on
    chkconfig php-fpm on
    [/sourcecode]

    É isso aí! Espero que este tutorial tenha ajudado você a instalar e Configurar NGINX e PHP-FPM no EC2 da Amazon. Como sempre, se você achou esta postagem útil, inscreva-se em nossa newsletter gratuita ou siga-nos no Instagram @douglasvillar, conecte comigo no Linkedin e curta nossa página no Facebook.

  • Comandos Linux

    comandos-linuxOlá pessoal, nesse post quero deixar registrado alguns comandos Linux importantes e mais utilizado, na frente de cada comando tem uma pequena explicação. Como trabalho com servidores Web, utilizo muito e acabo sempre esquecendo, espero que te ajude.

    Ah! Se eu tiver esquecido de algum favor deixar no comentário o comando e a explicação para poder estar atualizando. Valeu!

    Comandos Linux mais utilizados

    • exit: Terminar a sessão, ou seja, a shell (mais ajuda digitando man sh ou man csh)
    • ssh: Sessão segura, vem de secure shell, e permite-nos logar num servidor remoto através do protocolo ssh
    • cd: Mudar de diretório atual, como por exemplo cd diretório, cd .., cd /
    • chmod: Mudar a proteção de um arquivo ou diretório, como por ex: chmod -Rf 0777 pasta_arquivo
    • chown: Mudar o dono ou grupo de um arquivo ou diretório, vem de change owner, ex: chown -Rf nome_do_grupo:nome_do_grupo nome_da_pasta
    • chgrp: Mudar o grupo de um arquivo ou diretório
    • cmp: Compara dois arquivos
    • cp: Copia arquivos, como o copy do MS-DOS
    • zip: Comprime ou expande arquivo, ex: zip -r nome_do_arquivo.zip nome_da_pasta/.
    • ln: Cria um link a um arquivo
    • ls: Lista o conteúdo de uma diretório, semelhante ao comando dir no MS-DOS
    • mkdir: Cria uma diretório, vem de make directory”
    • mv: Move ou renomeia arquivos ou diretórios
    • rm: Apaga arquivos, vem de remove, exemplo: rm -Rf pasta_arquivo, tomar cuidado com rm * pois apaga tudo e não pede para confirmar
    • rmdir: Apaga diretório, vem de remove directory
    • stat: Mostra o estado de um arquivo, útil para saber por exemplo a hora e data do último acesso ao mesmo
    • netstat: Mostra o estado da rede
    • nmap: Poderoso port-scan, para visualizarmos portas abertas num dado host
    • ifconfig: Visualizar os ips da nossa máquina, entre outras funções relacionadas com ips
    • ping: Pingar um determinado host, ou seja, enviar pacotes icmp para um determinado host e medir tempos de resposta, entre outras coisas

    Espero que estes comandos de Linux possam te ajudar. Como sempre, se você achou esta postagem útil, inscreva-se em nossa newsletter gratuita ou siga-nos no Instagram @douglasvillar, conecte comigo no Linkedin e curta nossa página no Facebook.