sexta-feira, 27 de janeiro de 2017

Como instalar o WordPress no CentOS 7

Instalação do Apache

sudo yum install httpd
 
Instalação do PHP e extensões requeridas pelo WordPress

sudo yum install php php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml
 
Instalação do MariaDB

sudo yum install mariadb-server mariadb
 
Início do serviço Apache

sudo apachectl start
 
Início do serviço MariaDB

sudo systemctl start mariadb.service
 
Configuração de senha do usuário administrador MariaDB

/usr/bin/mysqladmin -u root password '[SENHA]'
 
Download do pacote do WordPress

sudo yum install wget

cd /var/www/html

sudo wget https://wordpress.org/latest.tar.gz

sudo tar zxvf latest.tar.gz
 
Download e configuração do idioma Português

cd /var/www/html
sudo wget https://br.wordpress.org/latest-pt_BR.zip
sudo mkdir wpptbr
sudo unzip latest-pt_BR.zip -d wpptbr
cd /var/www/html/wordpress/wp-content
sudo mkdir languages
cd languages
sudo cp /var/www/html/wpptbr/wordpress/wp-content/languages/*.mo .
sudo cp /var/www/html/wpptbr/wordpress/wp-content/languages/*.po .
 
Instalação do WordPress
  1. Acesse o endereço http://[IP]/wordpress
  2. Preencha os dados de conexão com o banco de dados
  3. Crie o arquivo wp-config.php de acordo com o template apresentado
Habilitação do idioma Português

cd /var/www/html/wordpress

sudo vi wp-config.php
 
Adicione a seguinte linha ao arquivo citado acima:

define('WPLANG','pt_BR');

Como adicionar dependências com Maven no Eclipse

Em um projeto Maven há um arquivo chamado pom.xml.

Na aba Dependencies do editor de arquivos pom.xml é possível adicionar dependências, clicando sobre o botão Add.. do quadro Dependencies, à esquerda.

Esse botão abrirá uma janela como a exibida na figura 1:

Figura 1


No campo Group Id deve ser colocado o nome do pacote da dependência.

No campo Artifact Id deve ser colocado o nome da dependência.

No campo Version deve ser colocada a versão desejada.

Após preencher os campos e clicar sobre o botão OK, atualize o projeto selecionando o nome do projeto com o botão direito do mouse e selecionando o Maven > Update Project conforme a figura 2.

Figura 2


A dependência aparecerá no nó Maven Dependencies.

Instalando OwnCloud 9.1 no Debian 8

sudo apt-get update

sudo apt-get install apache2

cd /var/www/html

wget https://download.owncloud.org/community/owncloud-9.1.1.zip

sudo apt-get install unzip

unzip owncloud-9.1.1.zip

sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install phpmyadmin

sudo apt-get install php5-curl


O arquivo /etc/apache2/apache2.conf  deve ter a seguinte seção alterada:

<Directory /var/www/html>Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>


A diretiva AllowOverride All deve ser configurada para All para permitir a leitura do arquivo .htaccess do Owncloud. Não basta configurar para FileInfo, pois o arquivo .htaccess possui diretivas php_value, que alterar a configuração padrão do PHP definida pelo arquivo php.ini

Como instalar o Graylog no Debian 8

Este guia foi construído a partir de uma instalação Debian 8 32 bits feita em uma máquina virtual sobre VirtualBox 5.1.6.

Atualize o repositório Debian:

sudo echo "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/backports.list
sudo apt-get update


Instale as dependências:

sudo apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen

IMPORTANTE! Deve ser instalado o Java 8. Sem ele, o servidor Graylog irá lançar uma exceção e não conseguirá levantar. Por isso verifique se o link simbólico /usr/lib/jvm/default-jre está apontando para o diretório da versão 8 do JRE. Se não estiver, reconstrua o link para apontar o Java 8. Também altere o link simbólico /etc/alternatives/java para apontar para o interpretador java (que fica na pasta jre/bin da instalação Java).

Instale o MongoDB:

sudo apt-get install mongodb-server

Instale o ElasticSearch:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update && sudo apt-get install elasticsearch


Modifique o arquivo /etc/elasticsearch/elasticsearch.yml, configurando a seguinte diretiva:

cluster.name: graylog

Configure o ElasticSearch como um serviço para que ele seja iniciado automaticamente:

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service


Instale o Graylog:

wget https://packages.graylog2.org/repo/packages/graylog-2.1-repository_latest.deb
sudo dpkg -i graylog-2.1-repository_latest.deb
sudo apt-get update && sudo apt-get install graylog-server


Edite o arquivo /etc/graylog/server/server.conf e configure a diretiva password_secret com a senha gerada pelo comando abaixo:

pwgen -N 1 -s 96

Edite o arquivo /etc/graylog/server/server.conf e configure a diretiva root_password_sha2 com uma senha criptografada com o comando abaixo:

echo -n [SENHA] | sha256sum

Configure o Graylog como um serviço para que ele seja iniciado automaticamente:

sudo systemctl daemon-reload
sudo systemctl enable graylog-server.service
sudo systemctl start graylog-server.service


Tornando a interface web disponível

No arquivo /etc/graylog/server/server.conf existem duas diretivas para controlar a exposição da interface web do Graylog. De acordo com a configuração da rede, pode ser necessário substituir a configuração padrão dessas diretivas pelo IP pelo qual o servidor do Graylog será visível na rede.

  • web_listen_uri: configura o acesso à interface HTML
  • rest_listen_uri: configura o acesso à API REST

Como enviar dados do Apache para o Graylog a partir de um servidor Debian 8

Premissa: ter um servidor com Graylog instalado.

Instale o módulo de desenvolvimento do Apache e suas dependências:

sudo apt-get update
sudo install openssl
sudo apt-get install libssl-dev
sudo apt-get install libtool
sudo apt-get install apache2-dev


Baixe o código-fonte do módulo de https://github.com/mikkolehtisalo/mod_gllog.

Entre na pasta mod_gllog e compile o módulo:

sudo apxs -i -c mod_gllog.c

Habilite o módulo SSL do Apache:

sudo a2enmod ssl

Crie um arquivo para carregar o módulo gllog no Apache:

sudo vi /etc/apache2/mods-available/gllog.load

Preencha o arquivo com as seguintes instruções:

LoadFile /usr/lib/x86_64-linux-gnu/libssl.so
LoadModule gllog_module /usr/lib/apache2/modules/mod_gllog.so


Crie um link simbólico para o arquivo:

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/gllog.load


Crie um arquivo de configuração para um virtual host que configure o módulo gllog:

cd /etc/apache2/conf-available/
sudo vi vhosts.conf


Preencha o arquivo com esta seção:

<VirtualHost *:80>
        # Master switch for the module
        GlLog On
        # The application.secret for graylog-web, stolen from application.config
        GlLogKey "xTnfNbUH7KFAM9AyPGUgD4ka17dFzpYfKmPzzFDxXmyeVpz2emInSFFmw6c1J6IoDSZishz4e7nR9O5BeJRJonNCxkx7hoTs"
        # Switch for checking validity of the signature
        GlLogSignature On

        # Use the LogFormat defined earlier
        CustomLog ${APACHE_LOG_DIR}/access.log gl_combined
</VirtualHost>


Onde o valor de GlLogKey deve ser substituído pelo valor da diretiva password_secret do arquivo /etc/graylog/server/server.conf.

Crie um link simbólico para o arquivo:

cd /etc/apache2/conf-enabled
sudo ln -s /etc/apache2/conf-available/vhosts.conf


Finalmente, é necessário reiniciar o Apache:

sudo service apache2 restart





Configuração do contexto com JBoss AS 6.x

Para configurar o contexto de uma aplicação JEE com JBoss AS 6.x, é necessário criar um arquivo jboss-web.xml na pasta WEB-INF, com o seguinte conteúdo:



<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>/[CONTEXTO]</context-root>
</jboss-web>


Implementação de CORS em aplicações Web para requisições HTTP POST

Por segurança, navegadores bloqueiam scripts que fazem requisições para domínios diferentes da página de onde se originam. Para permitir que um script consiga submeter uma requisição HTTP para um domínio diferente, é necessário configurar os cabeçalhos de requisição e resposta tanto no cliente quanto no servidor.

O que o cliente precisa enviar para o servidor:

Access-Control-Request-Headers:content-type
Access-Control-Request-Method:POST


O que o servidor precisa responder:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:content-type
Access-Control-Allow-Methods:POST
Access-Control-Allow-Origin: [DOMÍNIO DO REQUISITANTE - * para qualquer um]

Instalação do ChromeDriver no Ubuntu 16.04

A seguência de comandos é a seguinte:
 


sudo apt-get install unzip

wget -N http://chromedriver.storage.googleapis.com/2.20/chromedriver_linux64.zip

unzip chromedriver_linux64.zip

chmod +x chromedriver

sudo mv -f chromedriver /usr/local/share/chromedriver

sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver


sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

Começando com Ajax

O modo de padrão para fazer Ajax é usar o objeto XMLHttpRequest, conhecido como XHR por seus amigos. Use XHR diretamente, ou por meio das bibliotecas Ajax salvadoras como Prototype ou JQuery. Como nós usamos XHR "manualmente"? Para começar, nós precisamos obter uma referência para ele:


if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xhr = new ActiveXObject(“Microsoft.XMLHTTP”);
}


Nós podemos então abrir uma conexão para um URL:

xhr.open(
“GET”,
“my-dynamic-content.jsp?id=”
+encodeURI(myId),
true
);


Especificar uma função de retorno de chamada para receber a resposta:

xhr.onreadystatechange = function(){
processReqChange(req);
}


e então enviar a requisição:

xhr.send(null);

O servidor pode estar ocupado, ou a rede pode estar lenta. Nós não queremos sentar por perto sem fazer nada até a resposta chegar, e por termos associado a função de retorno de chamada, nós não temos de fazer isso. Este é o guia de cinco minutos para o impaciente. Para aqueles que gostam de saber os detalhes, nós listamos os detalhes completos do objeto XHR abaixo.



Method Name Parameters and Descriptions
open(method, url, async) abre uma conexão para um URL
method = verbo HTTP (GET, POST, etc.)
url = url a ser aberto, pode incluir querystring
async = se faz requisição assíncrona
onreadystatechange associa um objeto função como retorno de chamada(similar a onclick,
onload, etc. no modelo de evento do browser)
setRequestHeader
(namevalue)
adiciona um cabeçalho à requisição HTTP
send(body) envia a requisição
body = texto a ser usado como requisição
abort() faz com que o XHR pare de esperar pela resposta
readyState nível no ciclo de vida da resposta (somente populado após send()
ser chamado)
httpStatus O código de retorno HTTP (inteiro, somente populado após
a resposta alcançar o estado carregado)
responseText corpo da resposta como um texto JavaScript (somente configurado após
a resposta alcançar o readyState interativo)
responseXML corpo da resposta como um objeto documento XML (somente
configurado após a reposta alcançar o readyState interativo)
getResponseHeader
(name)
lê um cabeçalho de resposta pelo nome
getAllResponseHeaders() Obtém um array de todos os nomes de cabeçalho de resposta



Tradução de: CRANE, Dave. Getting Started in Getting Started with Ajax. Disponível em www.dzone.com