Instalando o Apache2 (com mod rewrite), PHP7, MariaDB (esqueça o MySQL) e PHPMyAdmin no Ubuntu

A long time ago fiz um tutorial ensinando a realizar a instalação conjunto, também conhecido como LAMP (Linux, Apache, Mysql, PHP) no Ubuntu. Hoje volto para ensinar a instalar as versões mais recentes para ter seu Web Server mais seguro e com melhor desempenho.

Além dos itens já mencionados também instalaremos e ativaremos alguns modulos do Apache como o módulo de rewrite para URLs amigáveis e bibliotecas do PHP que são exigidos em diversos frameworks e soluções como o Magento por exemplo, que exige o mcrypt.

Preparando o sistema

Os primeiros passos todos sabem: obter permissões root e atualizar a lista de pacotes.

Pegando root, digite o comando abaixo e informe sua senha quando ele pedir:

sudo su

Atualizando a lista de pacotes:

apt-get update

Em seguida vamos instalar o apache2

apt-get install -y apache2

Vamos ativar o módulo de rewrite:

a2enmod rewrite

Agora vamos instalar o PHP

apt-get install -y php7.0

Vamos aproveitar o momento para instalar aqueles módulos que falei mais cedo.

apt-get install -y libapache2-mod-php7.0 php7.0-mysql php7.0-curl php7.0-json php-memcached php7.0-dev php7.0-mcrypt php7.0-sqlite3 php7.0-mbstring

Agora vamos instalar o MariaDB

Essa é uma distribuição baseada no MySQL, porém com mais atualizações. Funciona do mesmo modo que o MySQL, não notei nenhuma diferença em sintaxes e outras funcionalidades. Pelo que pesquisei entendi que ele recebe mais atualizações de segurança e tem um desempenho melhor. Por que não?

apt-get install -y mariadb-server mariadb-client

Agora, vamos dar um pouco de segurança pra instalação do MariaDB, pois, assim como o MySQL, ela vem com algumas configurações padrão que são perigosas.

mysql_secure_installation

Falta pouco agora, vamos rodar o MySQL para poder instalar o PhpMyAdmin que por sua vez cria uma tabela e um usuário, por isso precisamos do serviço rodando.

service mysql start

Agora vamos instalar o PHPMyAdmin

apt-get install -y phpmyadmin

 

Por último, basta rodar o apache2 para que tudo esteja funcionando.

service apache2 start

O diretório padrão onde você vai colocar seus arquivos é:

[code]/var/www/html/[/code]

Observações

O Magento 1.9.x não é compatível com o PHP7.

Se estiver querendo instalar o LAMP por causa dele prefira seguir esse tutorial.

Abraços.

Git Push via SSH

Tutorial objetivo e rápido. Não entrarei em detalhes.

1 – Criar a chave SSH:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

– Pode dar enter nas 3 perguntas sem responder nada.

2 – Adicionar ao ssh-agent:

ssh-add git-rsa

Se não funcionar use esse:

ssh-add ~/.ssh/id_rsa

Se também não funcionar é porque o ssh-agent está desativado. Ative com esse comando:

eval $(ssh-agent)

Depois tente o primeiro comando desse passo 2 novamente.

3 – Adicionar a chave nas configurações do seu github:
– Acesse https://github.com/settings/keys
– Clique em [New SSH Key]
– Digite um nome qualquer e cole no campo de texto o conteúdo do arquivo id_rsa.pub (que é sua chave pública)

4 – Configurando seu usuário e e-mail no git
Primeiro certifique-se de estar na pasta anterior à pasta do git

cd ~

Agora configure:

git config user.name "seu-usuario"
git config user.email "[email protected]"

Se der algum erro ao digitar esse comandos tente isso primeiro:

mkdir ~/.git

Depois tente configurar novamente.

5 – Testar a conexão

ssh -T [email protected]

Você deverá receber um aviso assim:
[code]Hi seu-usuario! You’ve successfully authenticated, but GitHub does not provide shell access.[/code]
Se for isso deu tudo certo.

6 – Clonar o repositório:

https://github.com/seu-usuario/seu-repositorio.git

7 – Se clonou por HTTPS (como fiz acima), você precisará configurar o git origin para ser SSH ou ele te pedirá pelo e-mail e senha.

git remote set-url origin [email protected]:seu-usuario/seu-repositorio.git

8 – Pronto, depois disso é o de sempre:

git add .
git commit -am "comentário"
git push origin

Habilitando usuário root para o SSH no Ubuntu Server

Logado como root no terminal digite:

vi /etc/ssh/sshd_config

Adicione uma linha contendo “PermitRootLogin yes”. Talvez essa linha já exista e esteja comentada com um “#”. Nesse caso apenas remova o “#”.

Para entrar no modo de edição do vi basta teclar [a].

Ficaria assim:

# Authentication:
#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

Salve as alterações teclando nessa ordem: [esq][:][q][w][enter]

Agora vamos reiniciar:

shutdown -r now

Agora você pode se conectar como root pelo SSH.

Talvez te interesse: Configurando IP estático no Ubuntu Server

Referências:
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/V2V_Guide/Preperation_Before_the_P2V_Migration-Enable_Root_Login_over_SSH.html

Encontrando arquivos pela data no Linux

Há momentos em que você precisa encontrar arquivos no linux que foram criados ou modificados em um determinado intervalo de tempo.

Por exemplo, você tem aquele WordPress de um cliente que não costuma atualizar os plugins e o próprio WordPress e acaba sendo vítima daquele código malicioso que muitas vezes acaba gerando um alerta no Google e o site acaba bloqueado com aquele aviso vermelho quando você tenta editar.

Então você cadastra o site no Google Webmaster Tools e descobre quais arquivos estão infectados.

Mas acredite, isso é só o começo.

Além dessa ferramenta do Google e outras ferramentas não dizerem todos os arquivos infectados, eles normalmente não dizem como resolver.

Mas você é esperto, você tinha um backup do site sem os arquivos infectados.

Então você sobe os arquivos do backup substituindo todos os infectados e problema resolvido.

#SóQueNão!

É bem comum eles criarem novos arquivos infectados, pois esperam que a primeira coisa que o dono do site faça é jogar um backup lá.

Então qual a solução?

São várias, mas uma bem prática é o assunto desse artigo.

Vamos encontrar arquivos editados dentre um intervalo de datas, pois como você já identificou um ou mais arquivos, é bem provável que os outros sejam da mesma data.

Encontrando arquivos mais novos do que a data X (sempre no formato americano yyyy-mm-dd):

find ./ -newermt "2016-03-05"

Encontrando arquivos editados nos últimos 15 dias:

find ./ -mtime -15 -print

Lembrando que você pode procurar em tipos espefíficos de arquivos, como arquivos PHP, adicionando no comando:

-iname "*.php"

Então ficaria:

find ./ -iname "*.php" -mtime -15 -print

Encontrando arquivos do dia X ao dia Y:

find ./ -newermt "2016-02-04" -and -not -newermt "2016-03-03"

 

Referências:
http://www.cyberciti.biz/faq/howto-finding-files-by-date/
http://www.cyberciti.biz/faq/linux-unix-osxfind-files-by-date/
http://stackoverflow.com/questions/158044/how-to-use-find-to-search-for-files-created-on-a-specific-date

 

Instalando o Bittorrent Sync no Ubuntu Server

Instalar o Bittorrent Sync no Ubuntu é bem simples.

O bom do Sync é poder manter os projetos sempre sincronizados entre os membros da equipe, principalmente quando algum deles não tem acesso à rede local do servidor, como um home office por exemplo ou em uma empresa que tem duas sedes, como a que trabalho.

Sem mais delongas…

Adicionando o repositório.

sudo add-apt-repository -y ppa:tuxpoldo/btsync

Instalando o Bittorrent Sync

sudo apt-get update; sudo apt-get -y install btsync

Após a instalação aparecerá uma tela de configuração.

Recomendo fortemente que você faça isso nesse momento ou terá que fazer de forma muito complicada depois de forma manual.

A tela será mais ou menos como essa:

configuração-do-sync-no-ubuntu-server

 

Após isso siga o “wizard” e complete a instalação com as configurações de sua preferência.

Se por acaso você cometer algum erro, a dica que dou é desinstalar e instalar novamente, já que ainda não começou a utilizar.

Depois disso acesse o endereço do servidor dele e comece a compartilhar:

http://127.0.0.1:8888/

Se estiver em outra maquina na mesma rede é só ajustar o IP de acorco com o necessário.

É isso.

Boa sorte!