A Apple inclui nativamente o PHP 7.3 nessa versão do macOS mas, por exemplo, sem a extensão php-zip.

Isso impossibilita a instalação de uma série de componentes via composer.

É possível remover os binários do php 7.3 mas eles retornaram na próxima atualização do sistema operacional.

Uma solução é instalar outra versão do PHP via brew e indicar que ela é a padrão para uso do sistema via export como segue abaixo:

brew install php@7.4

adicionar as seguintes linhas ao ~/.bashrc:

export PATH=”/usr/local/opt/php@7.4/bin:$PATH”
export PATH=”/usr/local/opt/php@7.4/sbin:$PATH”

Profit!

Atualizações de kernel são bem-vindas por trazerem correções, melhorias e maior segurança mas, dependendo do hardware podem ocorrer incompatibilidades causando consequências indesejáveis.

Para manter uma versão de kernel que comprovadamente funciona no seu hardware, é possível travar o sistema de atualização para determinado pacote:

sudo apt-mark hold <linux-image>

Onde linux-image é o nome completo da imagem a ser mantida.

Para desmarcar e permitir a atualização, trocamos o comando para:

sudo apt-mark unhold <linux-image>

Para saber quais pacotes estão marcados um hold:

sudo apt-mark showhold

Após uma instalação manual do WordPress onde baixamos o pacote e criamos um banco de dados vazio para o instalador gerar os dados, os comandos abaixo deixarão os direitos de acesso às pastas e arquivos da melhor forma possível considerando funcionalidade e segurança.

chown -R www-data:www-data .
find . -type f -exec chmod 644 {} +
find . -type d -exec chmod 755 {} +
mv wp-config-sample.php wp-config.php
chmod 640 wp-config.php

Após esses comandos podemos prosseguir com a instalação do WordPress alterando os dados de acesso ao banco de dados no arquivo wp-config.php.

Com o domínio registrado no DNS e configurado no Apache na porta 80, segue:

apt install certbot python3-certbot-apache
certbot --apache -d your_domain -d www.your_domain

Responda as perguntas do script com atenção!

Particularmente, prefiro deixar o redirecionamento automático de http para https.

Os certificados deverão ser salvos dentro da pasta /etc/letsencrypt/live/ automaticamente.

O script criou um novo vhost para o domínio dentro do apache se você respondeu para redirecionar para https.

Esse script também gera um cron job em /etc/cron.d para renovar o certificado automaticamente e pode ser testado com o comando abaixo:

certbot renew --dry-run

Seguem informações de referência úteis para criar e executar uma imagem docker para um servidor Ubuntu com finalidade de uso no desenvolvimento de software para web.

Primeiro, o básico. Criamos um contêiner a partir de uma imagem. Essa imagem pode ser baixada do Docker Hub.

docker pull ubuntu:bionic

Estou usando a tag bionic para me referir a uma versão específica igual a mesma utilizada no servidor de produção.

Esse comando acima vai baixar a imagem para nossa máquina que já possui o serviço do doker rodando.

Uma vez que a imagem está baixada, vamos criar um contêiner a partir dela e expor as portas que serão utilizadas com o comando abaixo.

docker run --name bionic -p 8089:80 -p 5439:5432 -it -i ubuntu:bionic

Essas portas correspondem aos seguintes serviços respectivamente:

  • apache2 web server
  • postgresql database server

Esse comando (docker run … -it) vai te enviar para uma sessão dentro do contêiner.

É aconselhável executar uma atualização de pacotes antes de qualquer outro comando.

Volumes

Por padrão um contêiner descarta os dados gravados quando terminado. Para persistir os dados usamos os Volumes.

O comando abaixo cria um volume com o nome de bionic-vol.

docker volume create bionic-vol

Para usar esse volume, montamos o mesmo no comando run do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
--mount source=bionic-vol,target=/app \
-it -i ubuntu:bionic

Dessa forma, uma pasta /app poderá ser usada para armazenar de forma persistente qualquer arquivo ou estrutura de pastas (ex: local onde o servidor de banco de dados guarda seus arquivos).

Agora vamos aprimorar esse comando para atender a necessidade de um desenvolvedor web com persistência de dados e apontamento da pasta do projeto no host pelo web server do contêiner.

docker run \
--name bionic \
-p 8089:80 -p 5439:5432 \
-v $HOME/Projetos:/var/www/html \
-v $HOME/docker/volumes/postgres:/var/lib/postgresql/data \
-it -i ubuntu:bionic

Comandos

Comandos para utilizar para manutenção do contêiner:

  • docker ps – lista contêineres em execução
  • docker attach bionic – conecta o terminal do container
  • docker volume ls – lista volumes instalados

Documentação oficial em https://docs.docker.com/.

Após baixar o arquivo do Pentaho Data Integration, descompacte o conteúdo em uma pasta da sua escolha.

Minha escolha foi ~/MyApps/PDI91. Nunca utilize a pasta de aplicativos nativa do sistema operacional nesses casos.

Estou usando a versão Big Sur do MacOS e a 9.1 do PDI.

No Finder, navegue até a pasta ~/MyApps.PDI91 e abra o arquivo “Data Integration.app”. Provavelmente o sistema vai reclamar dos direitos de acesso. Abra a Privacidade nas Preferências do Sistema e destrave esse aplicativo.

Tente abrir novamente o .app. Caso nada aconteça, execute o comando abaixo no terminal (lembrando de alterar o caminho de acordo com sua escolha) para remover o aplicativo da quarentena:

sudo xattr -dr com.apple.quarantine ~/MyApps/PDI91/Data\ Integration.app

Feito isso o app deve abrir e você poderá fixar o mesmo no Dock depois de executado.

Boas transformações!

MacBook PRO 2017 com 128GB de armazenamento em 2020. Sem chance de continuar instalando atualizações do S.O. e armazenar aplicativos para desenvolvimento de software nessa capacidade de armazenamento.

A busca por um upgrade para um de 512GB bateu forte no bolso. Mais de 2.000,00 em conversão do dólar de hoje por esse aqui:

Procurando uma alternativa, cheguei nesse pacote composto por um adaptador e uma SSD de 512GB, além das ferramentas necessárias para a substituição:

Onde atentar nesse processo:

  • o kit vem com duas chaves, uma exclusiva para o SSD e outra para os demais parafusos
  • a remoção dos parafusos da tampa deve ser memorizada porque são três tamanhos diferentes nesse modelo
  • a remoção da tampa deve ser feita com o auxílio da ventosa e palheta (veja vídeos no youtube sobre esse procedimento), ela é de alumínio e forçar pode vincar a peça de forma irreparável
  • desligar a bateria é um procedimento delicado que envolve o desligamento de um cabo flat e a desconexão de outra peça (eu prefiro deixar a bateria descarregar por completo do que mexer nessas peças)
  • após instalar o no SSD, entrar na recuperação do sistema e preparar o SSD com o Utilitário de Disco

Se for compra as peças separadas, o SSD tem que ter suporte à NVME, do contrário o MacOS não vai reconhecer.

Boa sorte!

Após uma atualização do Windows Update um notebook passou a não responder o comando de abrir a área de notificação e também o calendário.

A única solução foi registrar novamente o componente usando o comando abaixo dentro do PowerShell em modo administrativo:

Get-AppxPackage | % { Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)\AppxManifest.xml” -verbose }

Instalar o PhpSpreadsheet para trabalhar com arquivos do Microsoft Excel no PHP pode ser uma necessidade básica de um projeto.

Utilize os comandos abaixo para preparar o ambiente:

sudo apt install composer php-fdomdocument php-gd php-mbstring php-zip

sudo systemctl reload apache2

Em seguida, o comando abaixo instala o componente para uso no PHP:

composer require phpoffice/phpspreadsheet

Nem todos aplicativos possuem assistentes de instalação para deixar atalhos no menu iniciar.

Nesses casos temos que botar a mão na massa, ou melhor, no terminal, para deixar esses atalhos com acesso mais imediato do que a execução direta chamando o aplicativo na pasta pelo explorer.

A partir do momento que conseguimos criar atalhos para o aplicativo na nossa área de trabalho usando o comando “Enviar para…” podemos recortar e colar esses atalhos na pasta do Iniciar (sim, o Iniciar é uma pasta no seu disco).

Abra a pasta abaixo copiando e colando seu endereço no Executar (Win + R):

mod_fcgid: read data timeout

Com essa pasta aberta, podemos colar nossos atalhos (não cole o arquivo original do aplicativo, nunca!) ou mesmo criar pastas específicas para organizar esses aplicativos.

Em seguida, devemos reiniciar nossa sessão no Windows ou, se preferir, reiniciar o explorer com os seguintes comando no Terminal (não é necessário abrir como Administrador):

taskkill /f /IM explorer.exe
start explorer.exe
exit

Dessa forma os atalhos/pastas já estarão presentes no menu Iniciar, onde podemos fixá-los no acesso rápido, por exemplo.

Boa sorte!