WordPress – Alterar caminho das imagens

wordpress-logo-stacked-rgb

Recentemente migrei de servidor onde o meu blog está alojado. Após a migração reparei que o caminho das minhas imagens estava errado pois antes tinha ‘papimigas.com/blog’ e agora é ‘papimigas.com’. Tinha de alterar todas as imagens para o novo caminho e havia duas maneiras de resolver:

  • Manualmente uma a uma (tarefa ingrata, são anos de artigos, alguns com muitas imagens)
  • Via cli do mysql (medo!)

Após uma pequena pesquisa vi que a tabela responsável é a wp-posts.

Primeiro fazer um backup e só depois iniciar a aventura na cli MySQL!

Entrar no MySQL com o comando:
mysql -u root -p
(tecla enter, inserir palavra-passe de root mysql e clicar na tecla enter novamente)

Verificar qual a base de dados:
mysql> SHOW databases;

Após verificar qual a base de dados que alberga o nosso WordPress é altura de a “usar”. Vamos supor que a nossa base de dados tem o nome de “wordpress_db”. Usamos o seguinte código:
mysql> USE wordpress_db;

Verificamos se a tabela wp-posts existe:
mysql> SHOW tables;

Se estiver tudo confirmado alteramos o caminho das imagens com o seguinte comando:
mysql> UPDATE wp_posts SET post_content=(REPLACE (post_content, ”,”));

No meu caso foi:
mysql> UPDATE wp_posts SET post_content=(REPLACE (post_content, ‘papimigas.com/blog’,’papimigas.com’));

E puf! A magia acontece 🙂

Para sair da cli MySQL basta usar o comando quit:
mysql> quit;

iRedMail alias

iredmail

iRedMail é uma excelente alternativa open-source para quem quer um servidor de email. Robusto e potente, é uma boa solução para quem precisa de um servidor de email.

Como de costume há uma solução “livre” de custos e uma versão paga, com suporte e uns extras.

Na versão livre não há nenhuma opção gráfica para se criar “alias” aos emails existentes. Mas é possível fazer por sql, na consola. De acordo com a página da iRedMail isto é explicado mas… o comando não funcionou da maneira como eles explicam.

Na consola, entramos na CLI MySQL:
mysql -u root -p
Inserimos a password de root mysql e os seguintes comandos:
USE vmail;
INSERT INTO alias (address, goto, domain, is_alias, active)
VALUES (‘novoalias@dominio.pt’, ‘emailoriginal@dominio.pt’, ‘dominio.pt’, ‘1’, ‘1’);

E pronto, podem testar o vosso novo alias.

MySQL na CLI


MySQL é um sistema de gestão de base de dados, que usa a linguagem SQL. Parceiro inseparável de qualquer aplicação minimamente complexa executada a partir de um browser, é bastante popular  no conjunto LAMP. Há outros sistemas do género como o MariaDB (fork do MySQL), PostgreSQL, Microsoft SQL Server, entre outros.
Muitas vezes encontro aplicações que usam um acesso ao MySQL com a password root para acesso a uma base de dados… Para além de inseguro e altamente perigoso, deixa-me de cabelos em pé 🙂
No caso do Microsoft SQL Server, temos uma consola gráfica toda bonita para criar e gerir bases de dados.
No caso do MySQL ou instalamos o phpMyAdmin ou então temos a linha de comandos…
Quando estamos a instalar uma qualquer aplicação que usa o sistema LAMP, tipo WordPress, Webmin, Owncloud, etc, temos de configurar uma base de dados. Para isso devemos criar uma só para o que estamos a instalar e com direitos limitados sobre o resto do sistema. Assim, mesmo que descubram os acessos não deverão pôr em causa a segurança do resto do sistema. Como criar? Na consola começamos por entrar na consola MySQL:

mysql -u root -p

Vai ser pedida a password de admin do MySQL (definida na instalação do MySQL)
Vão ficar na CLI do MySQL:

mysql>

Não esqueçam que no fim de qualquer comando tem de terminar a linha com um ponto e virgula. No fim de cada linha cliquem no Enter.
Vamos então criar um utilizador local e definir a palavra-passe:

mysql> CREATE USER ‘utilizador‘@’localhost’ IDENTIFIED BY ‘123456789‘;

Alterem as palavras a bold para o que quiserem.
Agora vamos criar a base de dados:

mysql> CREATE DATABASE 123_nome;

Alterem a palavra a bold para o que quiserem.
Em seguida damos privilégios totais de administração desta nova base de dados para o novo utilizador:

mysql> GRANT ALL PRIVILEGES ON 123_nome.* TO ‘utilizador‘@’localhost’;

Mais um Enter e temos a configuração feita! Falta então aplicar o que fizemos:

mysql> FLUSH PRIVILEGES;

E pronto, podemos usar este utilizador na nossa aplicação, sem pôr em causa a segurança de outras bases de dados.
Para sair da CLI do MySQL executem o comando:

mysql> quit