anúncios

quarta-feira, 12 de dezembro de 2018

Conhecendo o Calibre

O que é pacote Calibre?

Calibre é um gerenciador de livros eletrônicos de código aberto, que permite a conversão de numerosos formatos de arquivo para livros eletrônicos. Permite organizar a coleção de livros por autor, data de publicação ou publicador, entre outros.

Uma das funções mais interessantes permite converter entre formatos ebook para um novo ebook com oura extensão. Por exemplo: .epub para .pdf.

Suporta qualquer tipo de formatos que desejar a leitura, como de conversão, desde que esteja estabelecidos, como o ePub, PDF, txt ou RTF, até exportar para fb2, OEB ou MOBI

Outras funcionadades com mais valor é a possibilidade de sincronizar os livros que o comprou do seu eBook, seja na Amazon Kindle ou outros modelos, como o Papyre, Cybook, Sony PRS.

Instalação
Debian e Ubuntu
# apt-get install calibre

Arch, Manjaro, Antergos

o Calibre está disponível através do repositório AUR

# pacman -Sy yaourt
# yaourt calibre


Slackware, CentOS, Fedora, openSuse
# wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | python -c “import sys; main=lambda:sys.stderr.write(‘Download failed\n’); exec(sys.stdin.read()); main()”

O script de instalação faz o download e extrai o instalador mais recente do Caliber e instala no diretório /opt/caliber, por padrão. Mas o usuário pode facilmente alterar o destino da instalação.

Converter um ebook no formato .epub para o formato .pdf no terminal
Acesse o diretório onde salvou o ebook .epub e execute:
$ ebook-convert ebook.epub ebook.pdf

Caso prefira usar o modo gráfico do Calibre para realizar a conversão do formato .epub para .pdf, entre outras funcionadades, também pode, basta abrir no menu do seu ambiente gráfico que estiver instalado na distro que estiver usando atualmente.


Feito!

segunda-feira, 10 de dezembro de 2018

Instalando o Sublime Text no Linux

O que é Sublime Text?

O Sublime Text é um editor de código fonte proprietário de multiplataforma, isto é, Windows, GNU/Linux, MacOS, desenvolvido em Python. Ele suporta nativamente muitas linguagens de programação, de marcação, e funções podem ser adicionadas por usuários com plug-ins, geralmente construídos pela comunidade e mantidos sob licenças de software livre.

O Sublime Text é o editor preferido dos desenvolvedores web, concorre com os editores, como o VSCode e Atom.

Chega de papo e vamos instalar o editor Sublime Text na distro conforme segue abaixo.

Instalação do Sublime Text
Slackware
$ wget -c https://packages.slackonly.com/pub/packages/14.2-x86/development/sublime_text/sublime_text-3.1.26-i586-1_slonly.txz
# upgradepkg --install-new sublime_text-3.1.26-i586-1_slonly.txz


Debian e Ubuntu
$ wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -
$ echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list
$ sudo apt-get update
$ sudo apt install sublime-text


CentOS e Fedora
YUM
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo yum install sublime-text

DNF
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo dnf config-manager --add-repo https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo


Arch e Manjaro
$ curl -O https://download.sublimetext.com/sublimehq-pub.gpg && sudo pacman-key --add sublimehq-pub.gpg && sudo pacman-key --lsign-key 8A8F901A && rm sublimehq-pub.gpg
$ echo -e "\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64" | sudo tee -a /etc/pacman.conf
$ sudo pacman -Syu sublime-text


openSUSE
$ sudo rpm -v --import https://download.sublimetext.com/sublimehq-rpm-pub.gpg
$ sudo zypper addrepo -g -f https://download.sublimetext.com/rpm/stable/x86_64/sublime-text.repo
$ sudo zypper install sublime-text


Após instalar o Sublime Text, o atalho para abrir pelo terminal é: subl
Então é comum abrir pelo terminal em background, ou seja, dessa forma: subl &

Referências
https://www.sublimetext.com/docs/3/linux_repositories.html

Feito!

sábado, 8 de dezembro de 2018

Controle as horas e despesas dos projetos com PSTime

O que é PSTime?

O PSTime é um software feito para facilitar o controle das horas trabalhadas, e despesas gastas pela equipe de seus projetos.

O PSTime foi criado para facilitar o processo de apontamento, e análise das horas trabalhadas e despesas gastas.

As vantagens de utilizar o PSTime são:
  • Economizar seu tempo e o da sua equipe.
  • Eliminar o apontamento em planilhas Excel ou sistemas complexos.
  • Ter informações precisas de cada hora trabalhada, em tempo real.
  • Saber o que cada membro de sua equipe está fazendo.
  • Apurar cada despesa gasta pela sua equipe.
  • Aumentar a confiabilidade das horas e despesas informadas.
  • Gerar relatórios ou planilhas Excel das horas e despesas.
  • Usar o PSTime em conjunto com seus atuais sistemas, através de interfaces prontas para integração.
  • É a forma mais fácil de apontar horas trabalhadas e despesas gastas em seus projetos.
  • Sua interface é extremamente simples e intuitiva e, em questão de minutos, você e sua equipe conseguirão criar projetos, apontar horas e despesas.
  • Não é necessária instalação. Basta criar a sua conta e começar a usar.

Tudo isso em um sistema extremamente fácil de usar. Com uma excelência em usabilidade e simplicidade são chaves para a adesão do sistema pela sua equipe.

Então, crie a sua conta agora mesmo no PSTime e comece a apontar as horas e despesas de seus projetos.

Screenshot do PSTime



Referências
[1] PSTime. https://www.pstime.com.br

Feito!

sexta-feira, 7 de dezembro de 2018

Integrando o PostgreSQL no XAMPP

Sabemos que os que desenvolvem em PHP no Windows, geralmente utilizam o XAMPP, ferramenta que inclui Apache, PHP e MySQL, faltou incluir o PostgreSQL, então, o objetivo deste howto é explicar a integração com SGBD PostgreSQL no XAMPP.

Segue os procedimentos:
Download no setup: PostgreSQL + pgAdmin
Após o download, executar o setup de onde salvou, este inclui o SGDB PostgreSQL e pgAdmin
Supondo que fez a instalação default do XAMPP no diretório c:/xampp, então crie o diretório c:/xampp/pgsql e durante a instalação quando perguntar onde deseja instalar o PostgreSQL, escolhe c:/xampp/pgsql
Define o password para o usuário administrador postgres
Por fim está instalado o PostgreSQL com pgAdmin.

Configuração de integração PostgreSQL no XAMPP

Abre o arquivo c:/xampp/php/php.ini e descomente as linhas abaixo:
extension=pdo_pgsql
extension=pgsql

Reinicie o serviço
Reinicie o Apache pela ferramenta XAMPP

Testes
Agora crie um arquivo info.php

< ?php
  phpinfo();

Veja se o módulo pdo_pgsql foi habilitado, conforme o screenshot



Agora para confirmar, teste a conexão com PostgreSQL no script PHP
testeconectapgsql.php
< ?php
try{
$conn = new PDO('pgsql:host=127.0.0.1;port=5432;dbname=postgres', 'postgres','password');
if($conn) {
echo "database conectado";
}
}catch (PDOException $e){
// report error message
echo $e->getMessage();
}
No browser http://localhost/testeconectapgsql.php
Com isso, irá aparecer a mensagem "database conectado" , se as credencias do usuário, password e banco estiverem corretas.

Feito!

quarta-feira, 5 de dezembro de 2018

Conhecendo SQuirrel SQL

O que é SQuirrel SQL?

O SQuirrel SQL Client é uma ferramenta de administração de banco de dados. O SQuirrel SQL usa o JDBC para permitir que os usuários explorem e interajam com bancos de dados por meio de um driver JDBC. Fornece um editor que oferece conclusão de código e realce de sintaxe para o SQL padrão. O SQuirrel também fornece uma arquitetura de plug-in que permite que os criadores de plug-ins modifiquem grande parte do comportamento do aplicativo para fornecer funcionalidade ou recursos específicos do banco de dados que sejam independentes do banco de dados. Como esse aplicativo de desktop é escrito inteiramente em Java com componentes de UI do Swing, ele deve ser executado em qualquer plataforma que tenha uma JVM.

Recursos
Os recursos incluem:
  • A Árvore de Objetos permite pesquisar objetos de banco de dados, como catálogos, esquemas, tabelas, acionadores, visualizações, seqüências, procedimentos, UDTs etc.
  • O Editor SQL, baseado em RSyntaxTextArea por fifesoft.com, fornece realce de sintaxe. Pode abrir, criar, salvar e executar arquivos contendo instruções SQL.
  • SQuirreL suporta sessões simultâneas com vários bancos de dados. Isso permite comparar dados e compartilhar instruções SQL entre bancos de dados.
  • Recursos gráficos podem gerar gráficos mostrando os relacionamentos das tabelas.
Instalação

Até o presente publicação deste post, a versão do SQuirreL SQL é 3.9.0, portanto cabe substituir a versão pela nova versão correspondente se for o caso.

Pré-requisitos:
Ter o JDK devidamente configurado no PATH do sistema operacional.
howto de configuração do JDK no PATH no Linux e Windows . Só substituir a versão correspondente na configuração do JDK.

O link de download do SQuirrel SQL é: SQuirreL SQL
$ java -jar squirrel-sql-3.9.0-standard.jar

Screenshot do SQuirrel SQL



Feito!

terça-feira, 4 de dezembro de 2018

Conhecendo o GanttProject

O que é GanttProject?

O GanttProject é um software de gerenciamento de projetos desenvolvido em Java licenciado pela GPL (software livre) que é executado nos sistemas operacionais: Microsoft Windows, GNU/Linux e Mac OS X. Este projeto foi iniciado em Janeiro de 2003, na Universidade de Marne-la-Vallée (França) e gerenciado, inicialmente, por Alexandre Thomas, agora substituído por Dmitry Barashev.

Recursos

Comparando com outros softwares completos de gerenciamento de projetos, pode-se dizer que o GanttProject é projetado considerando o princípio KISS (Keep it simple, stupid).

O GanttProject apresenta a maioria das funções básicas de gerenciamento de projetos, como um gráfico de Gantt para agendamento de tarefas de projeto e gerenciamento de recursos usando gráficos de carga de recursos. Ele só pode lidar com dias e não horas. Não possui recursos como fluxo de caixa, controle de mensagens e documentos.

Os recursos incluem:
  • Criar estrutura de divisão de trabalho
  • Hierarquia de Tarefas e Dependências
  • Gráfico de Gantt
  • Gráfico de Carga de Recursos
  • Linhas de base salvando e comparando
  • Geração do Gráfico PERT
  • Relatórios em PDF e HTML
  • Importação / exportação do MS Project com formato de arquivo MPX (* .mpx) e MSPDI (* .xml) (formato de intercâmbio de dados baseado em XML desde o Microsoft Project 2002)
  • Trocar dados com aplicativos de planilhas
  • Grupo de trabalho baseado em WebDAV
  • Formato de arquivo de projeto é XML
  • Gestão de férias e feriados
  • Disponível em mais de 20 idiomas

Depois de conhecer o GanttProject e seus recursos, chegou a hora de fazer o download e a instalação, no site GanttProject

Instalação

Até o presente publicação deste post, a versão do GantProject é 2.8.9, portanto cabe substituir a versão pela nova versão correspondente se for o caso.

Pré-requisitos:
Ter o JDK devidamente configurado no PATH do sistema operacional.
howto de configuração do JDK no PATH no Linux e Windows . Só substituir a versão correspondente na configuração do JDK.

No Windows

Ao extrair o arquivo que fez o download ganttproject-2.8.9-r2335.zip e execute o arquivo ganttproject.bat no PowerShell ou ganttproject.exe

No GNU/Linux
Abre o terminal e acesse o diretório onde salvou o arquivo ganttproject-2.8.9-r2335.zip e segue os procedimentos:
$ unzip ganttproject-2.8.9-r2335.zip
$ cd ganttproject-2.8.9-r2335
$ ./ganttproject


Screenshots do GanttProject

Fluxo de andamento do projeto



Atividades assinadas por responsáveis



Diagrama de PERT



Referências

[1] https://www.ganttproject.biz/

Feito!

segunda-feira, 3 de dezembro de 2018

Executando querys SQL no script Shell

Sabia que é possível executar querys SQL do SGBD MySQL/Maria por meio de script Shell, de forma equivalente como faria com a linguagem PHP? Pois então, ao invés de colocar a query diretamente no terminal do MySQL, pode automatizar rotinas relacionados ao SGBD MySQL via script Shell.

Exemplo de script Shell com querys SQL
script Shell que lista os usuários e gera o resultado da query no arquivo users.txt
O exemplo a seguir deve substituir o nome da base de dados, usuário e a query correspondente a tabela de usuários que tiver criado no seu servidor MySQL
lista-users.sh
#!/bin/bash
mysql -u < user > -p < database > -B -B -e "SELECT * FROM users" > users.txt


script Shell que exibe o tempo que o servidor MySQL está no ar ou uptime
uptime-mysql.sh
!#/bin/bash
mysql -u < user > -p -B -N -e "SHOW STATUS LIKE 'Uptime'"


Execução do script uptime-mysql.sh
reginaldo@Saitam:~$ chmod +x uptime-mysql.sh 
reginaldo@Saitam:~$ ./uptime-mysql.sh 
Enter password: 
Uptime 19106
Interpretação dos argumentos utilizados no script
#! /bin/bash — esta primeira linha é especial. Ela invoca o Bash, que irá interpretar e executar as instruções contidas neste script.
# lista-users.sh | uptime-mysql.sh — nome do script Shell
mysql -u < user > -p — inicia a conexão com o usuário criado no MySQL
-B — gera uma saída batch. Exibe os resultados, usando a caractere tab como separador de colunas.
-N — suprime o cabeçalho da coluna. Assim temos uma saída mais limpa.

Referências

[1] https://elias.praciano.com/2015/03/como-executar-queries-mysql-de-uma-shell-script/

Feito!

domingo, 2 de dezembro de 2018

Conhecendo o MySQL workbench

O que é MySQL workbench?

MySQL workbench é uma ferramenta exclusiva para administrar SGBD MySQL ou MariaDB (clone do MySQL) por meio da interface gráfica. Pode criar Diagrama de Entidade e Relacionamento (DER) executar querys SQL.

O MySQL wokbench está disponível para as plataformas Windows, GNU/Linux e Mac OS X

Instalação do MySQL workbench
OBS: Necessário ter o SGBD MySQL / MariaDB instalado.

Windows

No Windows, se você estiver instalando o MySQL Community Server 5.6, o MySQL Workbench é instalado no processo de instalação do próprio servidor. Baixe o arquivo .msi apropriado da página de download do MySQL, execute-o e siga as instruções.

Depois de instalá-lo com sucesso, quando você inicia, você obtém conforme o screenshot a seguir:



Você pode ver que existem três seções - Desenvolvimento SQL, Modelagem de Dados e Administração de Servidores.

Linux
Debian e Ubuntu:
# apt-get install mysql-workbench

CentOS e Fedora:
# yum install mysql-workbench-community

Screenshot MySQL workbench no Linux



Feito!

sábado, 1 de dezembro de 2018

Solução para VGA SiS 671 ou 771 no Linux

Sabemos que a placa de vídeo que por default apresenta algumas incompatibilidades no GNU/Linux, mas existe uma solução aceitável para o modelo da placa de vídeo SiS 771/661.

O problema mais comum com esta placa é que a resolução da tela está incorreta. Geralmente muito baixo. Com isso, você deve conseguir uma resolução de 1280x800. Você pode esperar apenas um desempenho mínimo: a reprodução de vídeos ocorrerá sem problemas. Mesmo a reprodução de vídeo em 480p provavelmente será ruim.

Testado no notebook com VGA SiS 771/661 e a distro Ubuntu 18.04, porém os procedimentos se aplicam em qualquer distro.

Instalação e configuração do VGA SiS 771/661
Faça o download sis64.tar.gz
Copiar os arquivos para o diretório de drivers do xorg
# cp sisimedia_drv.* /usr/lib/xorg/modules/drivers
# cp xorg /etc/X11/


Ao reiniciar o notebook, a resolução deverá estar em 1280x800.

Referências

[1] https://sites.google.com/site/easylinuxtipsproject/sis

Feito!

sexta-feira, 30 de novembro de 2018

Conhecendo o 7zip

O que é 7zip?

7zip é uma ferramenta de compactação que em 2007, a SourceForge.net concedeu prêmios de escolha da comunidade Technical Design e para Best Project.
Em 2013, 7zip recebeu o prêmio Elite da Tom's Hardware devido à superioridade na velocidade e taxa de compactação.

Recursos
Os principais recursos do 7zip são:
  • Para formatos ZIP e GZIP, o 7-Zip fornece uma taxa de compressão que é 2-10% melhor do que a proporção fornecida pelo PKZip e WinZip
  • Criptografia AES-256 forte em formatos 7z e ZIP
  • Capacidade de extração automática para o formato 7z
  • Integração com o Windows Shell
  • Gerenciador de Arquivos
  • Versão de linha de comando
  • Plugin para FAR Manager
  • Disponível em 87 idiomas
Instalação do 7zip
Debian e Ubuntu:
# apt-get install p7zip-full
# apt-get install p7zip-rar


CentOS e Fedora:
$ wget https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/p7zip-16.02-10.el7.x86_64.rpm
$ wget https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/epel/7/x86_64/Packages/p/p7zip-plugins-16.02-10.el7.x86_64.rpm
# rpm -U --quiet p7zip-16.02-10.el7.x86_64.rpm
# rpm -U --quiet p7zip-plugins-16.02-10.el7.x86_64.rpm


Utilização
O pacote p7zip instala o utilitário em linha de comando chamado 7z.

$ 7z [adeltux] [-] [SWITCH]

Compactactar
Acesse o diretório onde estão os arquivos que deseja compactar com 7zip e segue:
$ 7z a exemplo-files.7z *
Após a execução do comando acima, deve ter um arquivo chamado com o nome que escolheu, no caso do exemplo exemplo-files.7z.
Pode verificar listando com o comando $ ls -la *.7z no diretório corrente.

Descompactar
Estando no diretório onde se encontra o arquivo compactado, no caso exemplo-files.7z e execute conforme abaixo:
$ 7z e exemplo-files.7z

Compactar arquivo ZIP com 7ZIP
O 7zip também permite criar arquivo .zip, para isso, basta substituir a extensão .7z por .zip do procedimento que foi realizado anterior para compactar com .7zip.
$ 7z a exemplo-files.zip *
Nesse caso para descompactar o exemplo-files.zip, precisa ter o unzip instalado.

Adicionar novos arquivos em um arquivo já compactado com o 7zip
A ferramenta 7zip permite que adicione arquivos após a criação, a opção nesse caso é o u
$ 7z u exemplo-files.7z new-file

Listar o conteúdo do arquivo compactado com o 7zip
Para olhar o conteúdo do arquivo compactado, usa a opção l da ferramenta 7zip.
$ 7z l exemplo-files.7z

Excluir um arquivo de um arquivo compactado com o 7zip
Para excluir um arquivo que está compactado por 7zip, usa a opção d, nome do arquivo compactado e o nome do arquivo que deseja excluir.
$ 7z d exemplo-files.7z new-file

Alguns fatos importantes do 7zip
Retirados da documentação
  • DO NOT USE the 7-zip format for backup purpose on Linux/Unix because : – 7-zip does not store the owner/group of the file.
  • On Linux/Unix, in order to backup directories you must use tar : – to backup a directory : tar cf – directory | 7za a -si directory.tar.7z
O 7zip não é um utilitário de backup, para isso existem a ferramenta tar.
Para compactar diretório com o 7zip, é recomendado compactar antes com a ferramenta tar.
$ tar -cf - exemplo | 7za a -si exemplo.tar.7z

Para descompactar
$ 7za x -so exemplo.tar.7z | tar xf -

Referências

[1] https://e-tinet.com/linux/7zip-linux/
[2] https://linux.die.net/man/1/7z
[3] https://www.7-zip.org/support.html
[4] https://www.7-zip.org/download.html

Feito!

quinta-feira, 29 de novembro de 2018

Resolvendo erro no PHPMyAdmin no Linux

Se caso tiver o problema no PHPMyAdmin, conforme o screenshot abaixo:



Então, a solução para esse problema é executar o comando abaixo:

# sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

Feito!

quarta-feira, 28 de novembro de 2018

Resolvendo o problema MySQL Error Too many connections

Problema

Quando um cliente tenta efetuar login no sistema com SGBD MySQL, às vezes ele pode ser rejeitado e receber uma mensagem de erro no log dizendo "MySQL Error: Too many connections". Isso significa que o número máximo de clientes que podem estar conectados ao servidor foi atingido. O cliente terá que esperar que outro cliente faça logoff ou o administrador terá que aumentar o número máximo de conexões permitidas.

Solução

O número máximo de conexões permitidos para o servidor está contido na coluna max_connections. O valor padrão é 151. Para ver o valor para o qual esta variável está definida, execute o seguinte comando SQL.

Logue com usuário root do MySQL

mysql> SHOW VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+
1 row in set (0.30 sec)

Solução temporária

A solução temporária é fazer o update na coluna max_connections para outro valor acima de 151.

mysql> SET GLOBAL max_connections = 512;
Ao reiniciar o serviço MySQL (mysqld), retornará ao valor default 151.

Solução permanente

A melhor forma de alterar o valor max_connections é editar o arquivo /etc/my.cnf e reiniciar o serviço MySQL (mysqld) para efeito e fixar. Para isso segue o procedimento.

# vim /etc/my.cnf
max_connections = 512


Reiniciar o serviço MySQL/MariaDB

Debian: # systemctl restart mysqld

CentOS: # systemctl restart mysqld

Slackware: # /etc/rc.d/rc.mysqld restart

Referências
https://www.thegeekdiary.com/mysql-error-too-many-connections-and-how-to-resolve-it/

Feito!

terça-feira, 27 de novembro de 2018

Instalando e configurando o Adminer

O que é Adminer?

Adminer é uma ferramenta web para gerenciar banco de dados, alternativa melhor ao PHPMyAdmin, pois suporta os SGBDS: MySQL/MariaDB, PostgreSQL, SQLite, MS SQL Server, Oracle.

Considerando que já tenha o webserver Apache e o PHP instalado e devidamente configurado, então podemos iniciar os procedimentos de instalação e configuração do Adminer.

Procedimentos de instalação e configuração do Adminer
Clonar o repositório Adminer do Github no diretório raiz do Apache
No Debian e Ubuntu é: /var/www/html
$ cd /var/www/html
$ git clone https://github.com/vrana/adminer.git
$ cd /var/www/html/adminer

Criar o VHost Adminer
No diretório /etc/apache2/sites-available , crie o arquivo adminer.conf com o conteúdo abaixo:
< VirtualHost *:80 >
#ServerAdmin root@localhost
ServerName adminer.local
DocumentRoot "/var/www/html/adminer"
ErrorLog ${APACHE_LOG_DIR}/error-adminer.log
CustomLog ${APACHE_LOG_DIR}/access-adminer.log combined

DirectoryIndex index.php index.html index.htm
AllowOverride All
Order allow,deny
Allow from all

< /VirtualHost >
Ativar o VHost Adminer
# a2ensite adminer.conf

Reload do Apache
# systemctl reload apache2

Adicionar o VHost no arquivo hosts
# vim /etc/hosts
127.0.0.1      adminer.local
No browser digite na url http://adminer.local/adminer

Screenshots do Adminer
Login



Logado



Feito!

segunda-feira, 26 de novembro de 2018

Conhecendo o DBeaver

O que é DBeaver?

DBeaver é um software cliente SGBD (Sistema Gerenciador de Banco de Dados). Para bancos de dados relacionais, ele usa a API do JDBC para interagir com bancos de dados por meio de um driver JDBC. Para outros bancos de dados (NoSQL), ele usa drivers de banco de dados proprietários. Ele fornece um editor que suporta o preenchimento de código e o realce de sintaxe. Este software foi escrito em Java e baseado na IDE Eclipse.

O DBeaver é um software livre, open source, distribuído pela licença do Apache. Uma edição corporativa de código fechado do DBeaver é distribuída sob uma licença comercial, nesse caso é para bancos de dados (NoSQL).

O DBeaver foi iniciado em 2010 como um projeto de hobby. Era para ser livre, de código aberto, ter uma interface de usuário elegante e conveniente e incluir recursos usados com freqüência para desenvolvedores de banco de dados. O primeiro lançamento oficial foi em 2011

Em 2014, a versão Enterprise Edition (EE) foi lançada. A versão EE é baseada no CE, mas também fornece suporte a bancos de dados NoSQL / BigData (Cassandra, MongoDB e Redis) e inclui alguns plug-ins adicionais do Eclipse.

Em 2015, o código fonte do DBeaver foi transferido para o GitHub .

Em 2017, o DBeaver CE foi relicenciado sob a licença Apache (a partir da versão 4.x).

Em julho de 2017, a versão do DBeaver EE tornou-se comercial para suportar a versão CE.

Suporte e versões

O DBeaver é software multiplataforma e trabalha com suporte no Eclipse. Disponível para os sistemas operacionais: Windows, GNU/Linux, MacOS X, Solaris. Suporta aos idiomas: Inglês, Chinês, Russo, Italiano e Alemão.

Community Edition

Community Edition (CE) é a versão inicial do DBeaver. Foi lançado em 2010 e tornou-se open-source (GPL) em 2011.

A versão CE inclui suporte estendido dos seguintes SGBDs:
  • MySQL/MariaDB
  • PostgreSQL
  • Oracle
  • MS SQL Server
  • SQLite
  • Firebird
  • DB2 (LUW)
  • Sybase
  • Teradata
  • Informix
  • Apache Derby
  • Apache Phoenix
  • Qualquer outro SGBD que tenha driver JDBC ou ODBC.
Eclipse Plugin Edition

A versão do plug-in do Eclipse foi lançada no Eclipse Marketplace. Essa versão é usada por programadores que usam o Eclipse IDE para desenvolvimento de software e que precisam de uma ferramenta de gerenciamento de banco de dados diretamente em seu IDE. O plug-in do Eclipse inclui a maioria dos recursos do Community Edition e também é liberado sob licença GPL.

Enterprise Edition

O DBeaver 3.x anunciou o suporte de bancos de dados NoSQL (Cassandra e MongoDB na versão inicial). Desde então, o DBeaver foi dividido nas edições Community e Enterprise. O Enterprise Edition tem suporte a bancos de dados NoSQL, gerenciador de consultas persistente e alguns outros recursos de nível corporativo. A versão EE não é de código aberto e requer a compra de uma licença (uma licença de avaliação pode ser gerada gratuitamente).

A versão Enterprise Edition inclui suporte aos bancos NoSQL:
  • Cassandra
  • MongoDB
  • Redis
Recursos
Os recursos do DBeaver incluidos são:
  • Execução de querys SQL ANSI
  • Numeração de linhas no editor
  • Sintaxe highlighting e SQL autocompletar
  • Gerenciamento de scripts SQL
  • Gera DDL
  • Redesenha o DER
  • Tunelamento SSH
  • SSL (MySQL e PostgreSQL)
  • Exportar e importar bases de dados
Instalação do DBeaver
Pré requisitos

Como o DBeaver foi implementado em Java, então para poder executar é necessário ter o JRE instalado e configurado no PATH. Caso você programa em Java, certamente já deve ter o JDK, então já está com o pré requisito instalado.

Resumindo: Para quem não programa em Java, instale o JRE e configure no PATH no seu sistema operacional.

Já para quem programa em Java, configure o JDK no PATH do seu sistema operacional.

Após ter o JRE ou JDK configurado no PATH do seu sistema operacional, faça o download do DBeaver e o processo de instalação é basicamente extrair em algum diretório de sua preferência e executar o arquivo dbeaver. Obviamente que poderá adicionar como atalho no menu, porém não será mostrado nesse post, porque varia de ambiente desktop (Gnome, KDE, XFCE, LXDE, etc).

No meu caso extrair no diretório downloads e a versão até a data de publicação deste post é 5.1.3, basicamente só troca a versão.

$ tar -xzvf dbeaver-ce-5.1.3-linux.gtk.x86_64.tar.gz
$ cd dbeaver
$ ./dbeaver

Screenschot DBeaver



Feito!

sexta-feira, 23 de novembro de 2018

Conhecendo o HeidiSQL

O que é HeidiSQL?

O HeidiSQL sucessor do MySQL-Front é o software cliente SGBD (Sistema Gerenciador de Banco de Dados) para MySQL, MariaDB, PostgreSQL e MS SQL Server.Foi desenvolvido pelo alemão Ansgar Becker.

As versões com numeração inferior a 3.0 são conhecidas com MySQL-Front até a versão 2.5. O software foi renomeado em 2006 para HeidiSQL, em Abril de 2006, Ansgar Becker disponibilizou o código fonte como um software livre sem fins lucrativos no SourceForge [1]. Foi movido para Github em Novembro de 2017.

Existe também um software comercial chamado "MySQL-Front 3.0", o qual foi desenvolvido por outro programador entre 2004 até 2006 e possui um código completamente redesenhado. [1]

O time que compõe o HeidiSQL atualmente consiste de cinco desenvolvedores oficiais e um designer. Os membros que estão trabalhando no HeidiSQL em suas horas livres disponíveis e remanescem de diferentes países: Alemanha, Dinamarca, Holanda, China e Brasil. [1]

Recursos
  • Gratuito
  • Exportar tabelas para os formatos: CSV, HTML, XML, SQL, LaTeX, Wiki Markup and PHP Array
  • Reformatar querys SQL
  • Permite conectar em vários servidores de banco de dados em uma mesma janela
  • Criar e editar tabelas, exibições, rotinas armazenadas, triggers e eventos.
  • Exportar de um servidor de banco de dados diretamente para outro servidor de banco de dados
  • Conecte-se via túnel SSH ou via configurações SSL
A única desvantagem é que o HeidiSQL é restrito apenas na plataforma Microsoft Windows.

Depois de conhecer o HeidiSQL e seus recursos, chegou a hora de fazer o download e a instalação, no site https://www.heidisql.com/

O link de download direto é: https://www.heidisql.com/download.php

O processo de instalação do HeidiSQL como é na plataforma Microsoft Windows, então na forma padrão, Next>NextFinish.

Screenshot HeidiSQL


Referências
[1] Wikipedia.org. HeidiSQL. Disponível em: https://pt.wikipedia.org/wiki/HeidiSQL

Feito!

segunda-feira, 5 de novembro de 2018

Instalando MariaDB no CentOS

O que é MariaDB ?

MariaDB é um sistema gerenciador de banco de dados, fork do MySQL.

O presente howto foi testado no CentOS 7. Você deve escolhar a versão 10.2 ou 10.3 do MariaDB que deseja instalar.

Primeiramente adicionar o repositório no arquivo etc/yum.repos.d/MariaDB.repo
# vim /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.2 CentOS repository list - created 2018-11-03 20:15 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
OU caso preferir a versão 10.3.x
# MariaDB 10.3 CentOS repository list - created 2018-11-03 20:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
ESC + :x (salva e sai do editor Vim)

Instalação do MariaDB via repositório
# yum install MariaDB-server MariaDB-client

Feito!

sábado, 3 de novembro de 2018

Instalando o MariaDB 10.2, 10.3 no Debian

O que é MariaDB ?

MariaDB é um sistema gerenciador de banco de dados fork do MySQL.

O presente howto foi testado no Debian 9. Você deve escolhar a versão 10.2 ou 10.3 do MariaDB que deseja instalar.

MariaDB 10.2.x
# apt-get install software-properties-common dirmngr
# sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.ufscar.br/mariadb/repo/10.2/debian stretch main'

Atualização do sistema
# apt-get update
Instalação do MariaDB
# apt-get install mariadb-server

MariaDB 10.3.x
# apt-get install software-properties-common dirmngr
# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
# add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.ufscar.br/mariadb/repo/10.3/debian stretch main'

Atualização do sistema
# apt-get update
Instalação do MariaDB
# apt-get install mariadb-server

Feito!

terça-feira, 30 de outubro de 2018

Escrever mensagens formatadas no Telegram

No post anterior foi apresentado o Telegram e sua forma de instalação no GNU/Linux, serve para qualquer distro.

O presente post explica como escrever em negrito, itálico e bloco de código fonte nas mensagens no Telegram.

Para escrever uma mensagem em negrito ou itálico, primeiro deve chamar o @bold seguido da mensagem, que irá aparecer as opções negrito ou itálico.

Exemplos
@bold teste irá aparecer as opções negrito, itálico. Note que também aparece o código necessário, então sabendo disso, pode escrever mensagem em negrito ou itálico sem precisar usar o @bold mensagem.

Para escrever uma mensagem em negrito:
**hello world**

Para escrever uma mensagem em itálico:
__hello world__

Para escrever bloco em código fonte, inicia com três aspas simples e fecha com três aspas simples
```
#!/bin/sh

echo "hello world";
```
Feito!

sexta-feira, 26 de outubro de 2018

Conhecendo e instalando o Telegram no Linux

O que é Telegram?

O Telegram é um serviço de mensagens instantâneas baseado na nuvem. O Telegram foi fundado em 2013 pelo irmãos Nikolai e Pavel Durov, os fundadores do VK, a maior rede social da Rússia [1]. O Telegram é uma empresa independente, não ligado ao VK. Baseia-se em Berlim, Alemanha [2].

Telegram precisa de um número de telefone para usar. Telegram é multiplataforma, tem clientes para desktop e móvel, como iOS, Android, Windows, além de uma versão para navegadores web. Diferente do WhatsApp, que limita para até 256 pessoas em cada grupo, no Telegram o usuário pode criar um grupo com até 100.000 membros.

Os usuários podem enviar mensagens e trocar fotos, vídeos, stickers e arquivos de qualquer tipo. Os clientes do Telegram possuem código aberto, porém seus servidores são proprietários. O serviço também providencia APIs para desenvolvedores independentes.

Características
  • Todas as conversas são criptografadas;
  • Streaming de vídeos e músicas;
  • Ligações de voz com aprendizado de IA;
  • Sincronização na nuvem entre dispositivos;
  • Maior velocidade no envio de mensagens;
  • Temas;
  • Modo noturno automático baseado no pôr e nascer do sol, em tempo programado ou no sensor de luminosidade;
  • Múltiplas contas Telegram em um único aplicativo, e alternação rápida entre essas contas;
  • Distribuição de servidores em todo o mundo para maior segurança e velocidade;
  • API em código aberto e protocolo livre para todos;
  • Gratuito, sem propaganda e mensalidades;
  • Pode enviar fotos, vídeos e arquivos: todos os tipos de arquivos suportados, até 1,5GB de tamanho;
  • Canais públicos ou privados com número ilimitado de seguidores;
  • Grupos para 200 membros e se convertido para supergrupo, passa a ter capacidade para 100 000 membros;
  • Chats secretos com criptografia end-to-end;
  • Mensagens de auto-destruição em chats secretos;
  • Auto-destruição de imagens e vídeos com contador em chats privados;
  • Status de leitura da mensagem: 1 traço = enviada, 2 traços = aberta;
  • Interação com bots, softwares programados para interagir de acordo com os comandos enviados e que se comportam como usuários;
  • Envio de stickers;
  • Possibilidade de criar pacotes de stickers com o @Stickers;

Depois de conhecer o Telegram e suas características, podemos seguir os procedimentos de instalação do Telegram no GNU/Linux, o qual se aplica a qualquer distribuição.

Procedimento de instalação do Telegram no GNU/Linux
Faça o download do Telegram no site abaixo conforme a arquitetura do seu computador
Plataforma Linux 32 bits

Plataforma Linux 64 bits

Instalação

$ tar -Jxf tsetup.1.4.3.tar.xz
# mv Telegram /opt
$ /opt/Telegram &

Agora só adicionar o aplicativo Telegram no menu do ambiente gráfico na distro que utiliza.
Participe dos grupo abaixo:

Grupo Linux+LPIC

Grupo Linguagens de Programação

Grupo FreeBSD

Grupo Infra TI Corporate

Grupo CodeIgniter Brasil

Canal Blog Computação

Referências

[1] Meet Telegram, A Secure Messaging App From The Founders Of VK, Russia’s Largest Social Network, TechCrunch . Data de publicação: 27 de outubro de 2013.

[2] Tweet by Telegram, Telegram official Publicado pela conta do Twitter em: 21 de fevereiro de 2014.

Feito!

sábado, 29 de setembro de 2018

Configurando Vhost do Apache no CentOS

O que é Vhost?

Vhost é a capacidade de ter diversos sites ou sistemas no mesmo servidor de forma isolada. Assim é possível ter vários domínios ou subdomínios no mesmo servidor.
O presente howto tem como objetivo explicar os procedimentos de configurar Vhost do Apache no RHEL/CentOS, mas também funciona em distros derivadas do RHEL/CentOS, como o Fedora por exemplo.

Configuração do Vhost

Considerando que já tenha o ambiente com Apache, PHP e os módulos PHP necessários já instalado, caso ainda não tenha, então segue o howto de configuração do ambiente PHP 7 no Linux (CentOS/Fedora) .

Caso já tenha o ambiente PHP 7 no CentOS/Fedora, então segue os procedimentos abaixo:
Primeiro é necessário adicionar a linha seguinte no final do arquivo /etc/httpd/conf/httpd.conf
# vim /etc/httpd/conf/httpd.conf
IncludeOptional sites-enabled/*.conf

No CentOS/Fedora é necessário criar os diretórios sites-enabled e sites-available, pois esses diretórios são fundamentais dos arquivos Vhosts.

# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled

O nome app.conf coloca o nome que quiser, geralmente é comum colocar o nome do domínio/subdomínio do Vhost correspondente.

# vim /etc/httpd/sites-available/app.conf

Altere o arquivo para ficar como este, apenas altere o diretório de localização do seu site ou sistema.


< VirtualHost *:80>
ServerName app.local
DocumentRoot "/var/www/html/app/public"
ErrorLog ${APACHE_LOG_DIR}/app.error.log
CustomLog ${APACHE_LOG_DIR}/app.access.log combined
  < Directory "/var/www/html/app/public">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
  < /Directory>
< /VirtualHost>

Nota: A configuração do Vhost acima é de uma aplicação web, que funciona na rede interna, para rede externa, só alterar o ServerName para o nome de domínio válido no registro.br.

Habilitar o Vhost app.conf

# ln -s /etc/httpd/sites-available/app.conf /etc/httpd/sites-enabled/app.conf

Reiniciar o Apache2


# systemctl restart httpd.service

Liberação do serviço HTTP no Firewalld

# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --reload


Adicionar o nome definido no ServerName do Vhost no arquivo hosts

Como neste caso o Vhost é na rede interna, então para simular o domínio é necessário adicionar no arquivo /etc/hosts o IP do servidor seguido do nome ServerName definido no arquivo Vhost.

# vim /etc/hosts
IPSERVIDOR    app.local

Para que uma máquina com Windows possa acessar a aplicação com o Vhost, o arquivo hosts é C:\Windows\System32\drivers\etc\hosts
Abrir com Bloco de Notas como Administrador o arquivo hosts no caminho mencionado.

Abre o browser e acesse http://app.local

Para criar outro Vhost, copie o arquivo do Vhost e troque o ServerName, DocumentRoot e Directory para o Vhost corresponde, habilita o novo Vhost, reiniciar o Apache e adicione no arquivo hosts.

Feito!

domingo, 23 de setembro de 2018

Configurando Vhost do Apache no Debian

O que é Vhost?

Vhost é a capacidade de ter diversos sites ou sistemas no mesmo servidor de forma isolada.
Assim é possível ter vários domínios ou subdomínios no mesmo servidor.
O presente howto tem como objetivo explicar os procedimentos de configurar Vhost do Apache no Debian, mas também funciona em distros derivadas do Debian, como o Ubuntu por exemplo.

Configuração do Vhost

Considerando que já tenha o ambiente com Apache, PHP e os módulos PHP necessários já instalado, caso ainda não tenha, então segue o howto de configuração do ambiente PHP 7 no Linux (Debian/Ubuntu) .

Caso já tenha o ambiente PHP 7 no Debian/Ubuntu, então segue os procedimentos abaixo:
O Apache tem um arquivo de configuração de Vhost de exemplo, então pode fazer uma cópia deste arquivo para cada Vhost que for criar, depois alterar o ServerName, DocumentRoot e Directory para o Vhost correspondente.

# cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/app.conf
O nome app.conf coloca o nome que quiser, geralmente é comum colocar o nome do domínio/subdomínio do Vhost correspondente.

# vim /etc/apache2/sites-available/app.conf
Altere o arquivo para ficar como este, apenas altere o diretório de localização do seu site ou sistema.
< VirtualHost *:80 >
ServerName app.local
DocumentRoot "/var/www/html/app/public"
ErrorLog ${APACHE_LOG_DIR}/app.error.log
CustomLog ${APACHE_LOG_DIR}/app.access.log combined
< Directory "/var/www/html/app/public" >
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
< /Directory >
< /VirtualHost >
Nota: A configuração do Vhost acima é de uma aplicação web, que funciona na rede interna, para rede externa, só alterar o ServerName para o nome de domínio válido no registro.br.

Habilitar o Vhost app.conf
# a2ensite app.conf

Reload do Apache2
# systemctl reload apache2

Como neste caso o Vhost é na rede interna, então para simular o domínio é necessário adicionar no arquivo /etc/hosts o IP do servidor seguido do nome ServerName definido no arquivo Vhost.
Para que uma máquina com Windows possa acessar a aplicação com o Vhost, o arquivo hosts é C:\Windows\System32\drivers\etc\hosts
Abrir com Bloco de Notas como Administrador o arquivo hosts no caminho mencionado.
Adicionar no arquivo hosts
IPSERVIDOR    app.local 
Abre o browser e acesse http://app.local

Para criar outro Vhost, copie o arquivo do Vhost criado anteriormente e troque o ServerName, DocumentRoot e Directory para o Vhost corresponde, habilita o novo Vhost, reload no Apache e adicione no arquivo hosts.

Feito!

sábado, 8 de setembro de 2018

Configurando Webmail RainLoop

O que é RainLoop Webmail?

RainLoop Webmail é um moderno cliente de e-mail que pode instalar em um servidor próprio e permite adicionar os domínios permitidos na respectiva conta do e-mail correspondente.
Possui suporte aos protocolos IMAP e SMTP, incluindo SSL e STARTTLS.
Integração com Facebook, Google, Twitter e Dropbox.

Requerimentos:
Servidores de aplicação web: Apache, Nginx, Lighttp e qualquer outro que tenha suporte a linguagem PHP com a versão mínima 5.4.
PHP extensions: cURL, iconv, json, libxml, dom, openssl, DateTime, PCRE, SPL
Browser: Google Chrome, Firefox, Opera 10+, Safari 3+, Internet Explorer 11 or EDGE RainLoop Webmail foi projetado com o uso eficiente de memória em mente, para que ele funcione bem em servidores web de baixo custo.

Depois de conhecer o RainLoop Webmail e pra que ser serve, podemos seguir os procedimentos de instalação e configuração do RainLoop Webmail em seu servidor GNU/Linux Debian/CentOS/Ubuntu Server.

Procedimentos de instalação e configuração
Considerando que já tenha o Apache+PHP com as extensões do PHP instalados, caso ainda não tenha, segue o howto de instalação do ambiente PHP 7 no Linux
Caso já tenha o ambiente PHP 7 no Debian, então segue os procedimentos abaixo
$ wget -c "https://www.rainloop.net/repository/webmail/rainloop-community-latest.zip"
# mkdir /var/www/html/rainloop
# unzip rainloop-community-latest.zip -d /var/www/html/rainloop
# chown -R www-data:www-data /var/www/html/rainloop

Permissões no /var/www/html/rainloop
# cd /var/www/html/rainloop
# find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;


VirtualHost no Apache para o RainLoop Webmail
# vim /etc/apache/sites-available/rainloop.conf
< VirtualHost *:80 >
    ServerAdmin root.saitam@saitam.int
    ServerName webmail.saitam.int
    DocumentRoot "/var/www/html/rainloop"
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    < Directory "/var/www/html/rainloop" >
 DirectoryIndex index.php index.html index.htm
 AllowOverride All
 Order allow,deny
 Allow from all
    < /Directory >
< /VirtualHost >
ESC +:wq (salva e sai do editor Vim)
Ativar Vhost RainLoop Webmail
#a2ensite rainloop.conf
Reload do Apache
#systemctl reload apache2

Caso estiver configurando o RainLoop Webmail em um servidor na intranet, então para ser acessível nas máquinas de sua rede deve adicionar o IP do servidor RainLoop Webmail no arquivo hosts com o mesmo nome definido no ServerName.

No Windows o arquivo host o caminho é: C:\Windows\System32\drivers\etc\hosts
Abrir com Bloco de Notas como Administrador o arquivo hosts no caminho mencionado.

No GNU/Linux o caminho do arquivo hosts é: /etc/hosts

O conteúdo do arquivo hosts deve ter a seguinte linha
x.y.z.w webmail.dominio.int
Trocar x.y.z.w pelo respectivo endereço IP do servidor RainLoop Webmail e o webmail.dominio.int pelo mesmo nome definido no ServerName do Vhost.

Acesso ao RainLoop Webmail
Painel de administração do RainLoop Webmail, onde adiciona os domínios do servidor de e-mail e as configurações dos protocolos IMAP e SMTP, incluindo SSL e STARTTLS.
No browser é: http://webmail.dominio.int/?admin OU https://webmail.dominio.com.br/?admin
Por default, o usuário e password administrativo é admin/12345. Obviamente trocar o usuário/password default pelo de sua preferência.

Após adicionar os domínios e configurar os protocolos IMAP e SMTP do servidor de e-mail, pode acessar no browser acesse: http://webmail.dominio.int OU https://webmail.dominio.com.br

Feito!

terça-feira, 21 de agosto de 2018

7 anos de blog

O blog esta completando hoje, 21 de Agosto de 2018, 7 anos!

Gostaria de agradecer a todos pelo prestígio e a paciência de ler os posts que são publicados. Espero continuar compartilhando conhecimentos no blog para nossos leitores. Continuem prestigiando e divulgando o blog Mundo da Computação Integral, assim aumentamos nossa comunidade.

domingo, 13 de maio de 2018

Upgrade PHP 5.6/7.0 para 7.2 no Debian

De acordo com a postagem no Twitter sobre a recomendação de atualizar a versão do PHP para versão atual. Até a data de publicação deste post, a versão atual do PHP é 7.2.

"#PHP 5.6 is now in security fix only mode, which runs until the end of 2018. Plan your upgrades to PHP 7!"
https://twitter.com/official_php

Então, chega de conversa e vamos seguir os procedimentos seguintes para atualizar a versão do PHP no Debian.

# apt-get install apt-transport-https lsb-release ca-certificates
# wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
# sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
# apt-get update
# apt-get install php7.2-cli php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-mysql php7.2-xml php7.2-fpm libapache2-mod-php7.2
Teste a versão do PHP com o comando seguinte: php --version
Se o retorno for 7.2, então está OK, pode desabilitar o módulo da versão anterior do PHP.
# a2dismod php5.6 ou
# a2dismod php7.0
# a2enmod php7.2
# service apache2 restart
# apt-get purge php5.6* ou
# apt-get purge php7.0*

Referência
https://tecadmin.net/install-php-debian-9-stretch/
Feito!

sábado, 10 de março de 2018

Configurando um servidor DNS no Debian

O que é DNS e pra que serve?

O Domain Name System (DNS) é um sistema de gerenciamento de nomes hierárquico e distribuído para computadores, serviços ou qualquer recurso conectado à Internet ou numa rede privada.

O DNS apresenta uma arquitetura cliente/servidor, podendo envolver vários servidores DNS na resposta a uma consulta. A função do servidor DNS é resolver nomes para os endereços IP e de endereços IP para nomes respectivos, e permitindo a localização de hosts no determinado domínio.

O software mais utilizado para configurar servidor DNS no GNU/Linux e FreeBSD é o BIND. Este software geralmente se encontra localizado no servidor DNS primário. O servidor DNS secundário é uma espécie de cópia de segurança do servidor DNS primário.

Depois de conhecer o DNS e para que serve, pode-se seguir o howto seguinte para configurar o servidor DNS na sua rede, apenas adapte o endereço IP e o nome de domínio.

Observação 1: Para uso de servidor DNS na rede interna é comum usar o sufixo .int para representar interno e não confundir com um domínio externo. Já se for configurar o servidor DNS na rede externa disponível na Internet, usa normal, só antes deve registrar o domínio no https://registro.br

Observação 2: O presente howto foi configurado e testado na distribuição Linux Debian 9, mas pode ser configurado na distro Ubuntu também.

Ok. Vamos nessa então? Abre o terminal, logue como root e segue os procedimentos seguintes.

# apt-get update
# apt-get install bind9 dnsutils whois
Observação: Este howto será utilizado o editor de texto Vim, mas o leitor pode usar outro editor que achar melhor.
Para novatos no editor Vim, para salvar e sair é ESC + :x

Configurando endereço IP fixo
# vim /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.1.6
netmask 255.255.255.0
gateway 192.168.1.1
# This is an autoconfigured IPv6 interface
iface enp0s3 inet6 auto
Alterar os arquivos hosts e hostname respectivamente
# vim /etc/hosts
Adicione a linha
127.0.0.1       localhost
127.0.1.1       perolanegra
192.168.1.6     perolanegra.saitam.int perolanegra
192.168.1.6     saitam.int
192.168.1.6     app.saitam.int
192.168.1.6     adm.saitam.int
192.168.1.6     carreiras.saitam.int

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

# vim /etc/hostname
perolanegra.saitam.int
Acessar até o diretório onde estão os arquivos do Bind
# cd /etc/bind
Criar as zona direta e reversa no arquivo named.conf.local
# vim named.conf.local
//Zona direta
zone "saitam.int" { //nome de domínio
  type master;
  file "/etc/bind/db.saitam"; //nome do arquivo que contém os endereços DNS
};

//Zona reversa
zone "1.168.192.in-addr.arpa" { //último quarteto do IP
  type master;
  file "/etc/bind/db.192";
};
Verificar se o arquivo de configuração contém erros
# named-checkconf
Criar os arquivos da zona direta e reversa
Zona direta
# vim db.saitam
;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     perolanegra.saitam.int root.saitam.int (
                         2018031000     ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@               IN      NS      perolanegra.
@               IN      A       192.168.1.6
@               IN      AAAA    ::1
router          IN      A       192.168.1.1
gateway         CNAME   router
app             IN      A       192.168.1.6
adm             IN      A       192.168.1.6
carreiras       IN      A       192.168.1.6
www             CNAME   saitam.int

Zona reversa
# vim db.192
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     perolanegra.saitam.int root.saitam.int. (
                         2018031000     ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      perolanegra.saitam.int.
6       IN      PTR     perolanegra.saitam.int.
6       IN      PTR     saitam.int.
1       IN      PTR     router.saitam.int.
6       IN      PTR     app.saitam.int.
6       IN      PTR     adm.saitam.int.
6       IN      PTR     carreiras.saitam.int.

Verificar se o arquivo de zona direta e reversa contém erros
# named-checkzone saitam.int /etc/bind/db.saitam.int
zone saitam.int/IN: loaded serial 2018031000
OK
# named-checkzone 1.168.192.in-addr /etc/bind/db.192
zone 1.168.192.in-addr/IN: loaded serial 2018031000
OK

Caso tenha ocorrido algum erro nos testes acima no seu servidor DNS, revise os arquivos de configuração com atenção, pois um ";" pode fazer a diferença na configuração do Bind.

Reiniciar o serviço Bind9
# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

Para podermos usar o domínio configurado deve adicionar no arquivo /etc/resolv.conf Nas máquinas clientes deve trocar o IP do servidor DNS que utiliza pelo o IP da máquina que configurou o servidor DNS para poder resolver nomes usando o servidor DNS configurado.

# vim /etc/resolv.conf
domain saitam.int
search saitam.int
nameserver 192.168.1.6
Agora vamos verificar a resolução de nomes
# nslookup saitam.int
Server: 192.168.1.6
Address: 192.168.1.6#53

Name: saitam.int
Address: 192.168.1.6
# nslookup router
Server:         192.168.1.6
Address:        192.168.1.6#53

Name:   router.saitam.int
Address: 192.168.1.1
# nslookup 192.168.1.6
Server:         192.168.1.6
Address:        192.168.1.6#53

6.1.168.192.in-addr.arpa        name = carreiras.saitam.int.
6.1.168.192.in-addr.arpa        name = saitam.int.
6.1.168.192.in-addr.arpa        name = app.saitam.int.
6.1.168.192.in-addr.arpa        name = adm.saitam.int.
6.1.168.192.in-addr.arpa        name = perolanegra.saitam.int.
Referências
[1] https://pt.wikipedia.org/wiki/Domain_Name_System
[2] http://tldp.org/HOWTO/DNS-HOWTO-5.html
[3] https://www.isc.org/downloads/bind/

Feito!

sábado, 10 de fevereiro de 2018

Instalando o módulo SSH2 no PHP

O objetivo deste post, é instalar e habilitar o módulo SSH2 no PHP. Com isso pode implementar um script PHP que conecta em alguma máquina ou servidor com Linux via SSH e executar comandos.

No final do post, tem um exemplo de script PHP que mostra como fazer.

No Windows com Xampp
Acesse http://windows.php.net/downloads/pecl/releases/ssh2/1.1.2/
Faça o download do arquivo php_ssh2-1.1.2-7.1-ts-vc14-x86.zip ou php_ssh2-1.1.2-7.1-ts-vc14-x64.zip, extrair e copiar os arquivos php_ssh2.dll e php_ssh2.pdb para c:/xampp/php/ext
Adicionar extension=php_ssh2 no php.ini
Reiniciar o Apache, no Xampp abre o Shell, digite php -m, verifique se tem o módulo ssh2

No Linux (Debian/Ubuntu)
PHP 5: # apt-get install php5-ssh2
PHP 7.0: # apt-get install php7.0-ssh2

Exemplo
Script PHP que conecta no servidor via SSH e cria um diretório abc na máquina Linux remota.
< ?php
$IP = '';
$POST = ;
$USER = '';
$PASS = '';
$connection = ssh2_connect($IP, $PORT);

if (ssh2_auth_password($connection, $USER, $PASS)) {
echo "Autenticado!\n";
$shell = ssh2_exec($connection, "mkdir abc");
}
else {
  die('Autenticação falhou!');
}
Feito!