Localizar e substituir em grandes arquivos com sed

Hoje precisei localizar e substituir todas as ocorrencias de uma string dentro de um arquivo muito grande de um dump de um banco de dados MySQL de uma loja magento que mudou de domínio. Normalmente eu fazia isso com o Notepad++ que tem o melhor desempenho nessa tarefa em comparação com outros editores como Sublime Text, Dreamweaver, Bloco de Notas, etc. Porém alguma coisa estava saindo errado no processo e eu não estava conseguindo importar o banco. E como o arquivo era muito pesado não tinha possibilidade de eu encontrar a linha com erro e corrigir.

Então encontrei um comando que substitui lá no linux, chamado sed. Isso salvou minha vida e do cliente que estava atendendo.

O comando é bem simples, no meu caso, como queria mudar um domínio por outro, o comando que executei foi:

$ sed -i 's/dominioantigo.com/novodominio.com/g' database.sql

Como é uma expressão regular, recomendo escapar todos os símbolos presentes na string. No meu caso como o único símbolo era um ponto, e mesmo ele sendo um coringa nas expressões regulares, não achei que poderia prejudicar e no fim deu tudo certo, mas o correto seria eu ter executado este comando:

$ sed -i 's/dominioantigo\.com/novodominio\.com/g' database.sql

É uma solução prática para muitas tarefas, mas acho que o que mais acontece por aí que exige essa tarefa é mudança de domínio.

Instalando e ativando a extensão PHP mCrypt no Ubuntu

Alguns frameworks como o Magento precisam dessa extensão.

Mãos à obra!

Obter permissões de root

sudo su

Instalando as bibliotecas necessárias

apt-get install php5-mcrypt

Ativando a extensão

php5enmod mcrypt

Reiniciando o apache

service apache2 restart

Feito!

Configurando IP estático no Ubuntu Server

Para configurar um endereço estático no servidor seguiremos os passos:

Obter privilégios de root:

sudo su

Abrir o arquivo interfaces com um editor:

vim /etc/network/interfaces

Troque o texto abaixo:

auto eth0<br />
iface eth0 inet dhcp

Por:

auto eth0<br />
iface eth0 inet static<br />
dns-nameservers 8.8.8.8 8.8.4.4<br />
address 192.168.25.50<br />
netmask 255.255.255.0<br />
network 192.168.25.0<br />
broadcast 192.168.25.255<br />
gateway 192.168.25.1

Os endereços acima são baseados na minha rede, que é 192.168.25.xxx.

Você deve fazer de acordo com a sua.

Reinicie a interface de rede:

/etc/init.d/networking restart

Testando:

ping www.google.com

É isso.

Boa sorte!

Instalando a biblioteca cURL do PHP no Ubuntu

Alguns frameworks como a API do Facebook, sistemas como o Magento e vários outros precisam de algumas bibliotecas.

Passos para instalação:

1 – Obter permissões de root

sudo su

2 – Instalando as bibliotecas necessárias

apt-get install curl libcurl3 libcurl3-dev php5-curl

3 – Reiniciando o apache

service apache2 restart

Habilitando o mod_rewrite no apache

Habilitar o modo rewrite é essencial para que o seu wordpress ou qualquer outro site funcione com a URL amigável.

Por exemplo, um wordpress sem a URL amigável ficaria assim:

www.seusite.com.br/?p=123

E com a URL amigável seria:

www.seusite.com.br/viajens

Isso além de ser melhor para o usuário, também ajuda muito na indexação do Google e outros mecanismos de buscas.

Então, mãos à obra!

Antes de tudo temos que ter permissão de administrador no linux.

Para isso, digite no terminal o seguinte comando:

sudo su

Então confirme sua senha e pronto.

Vamos agora, verificar se ele está instalado.

Se você instalou o apache2 pelo meu tutorial então você já tem esse módulo, mas vamos verificar mesmo assim.

Utilize o seguinte comando:

ls /usr/lib/apache2/modules/mod_rewrite.so

Se o arquivo existir, o nome dele será impresso logo abaixo do seu comando executado.

Se não existir dará uma mensagem que o arquivo não pode ser encontrado.

Mais ou menos assim:

ls: cannot access /usr/lib/apache2/modules/mod_rewrite.so1: No such file or directory

Habilitando o modo rewrite no apache2

Agora que sabemos que o módulo existe vamos liga-lo.

Execute o comando:

a2enmod rewrite

Você verá algo semelhante a isso:

Enabling module rewrite.<br />
Run '/etc/init.d/apache2 restart' to activate new configuration!

Isso significa que já está habilitado.

O próximo passo é habilitar o modo rewrite no seu site, pois normalmente vem desativado.

Abra o arquivo 000-default.conf no seu editor de preferência e localize a configuração do site que você deseja ativar.

O arquivo fica em: /etc/apache2/sites-available/000-default.conf

Encontre DocumentRoot /var/www/html

E adicione logo abaixo:

<Directory /var/www/html><br />
Options Indexes FollowSymLinks<br />
AllowOverride All<br />
Order allow,deny<br />
allow from all<br />
</Directory>

Agora é só reiniciar o apache e tudo estará funcionando.

Execute o seguinte comando no seu terminal:

/etc/init.d/apache2 restart

Instalando um servidor SMTP no Linux (postfix)

O servidor SMTP é o servidor de e-mail.

A instalação do servidor SMTP é muito simples.

No terminal digite:

sudo apt-get install postfix

Quando ele te pedir uma senha você deve definir uma de sua preferência.

Depois disso ele concluirá a instalação.

Para futuras configurações no servidor SMTP apenas digite no terminal:

sudo dpkg-reconfigure postfix

E é isso, agora você já tem o servidor rodando no seu Linux.

Com isso você já poderá enviar e-mails utilizando a função mail() do php.

Se quiser configurar algum programa de e-mail para enviar usando seu servidor você deve configurar o programa para o IP ou domínio da sua máquina e usar a porta 25 que é a padrão.

Viu?! Foi rápido e fácil!