anúncios

terça-feira, 31 de dezembro de 2019

Copiando arquivos via SCP

O que é SCP?

SCP (Secure Copy Protocol) é um protocolo de rede para transferências de arquivos que foi baseado em Berkeley Software Distribution (BSD) Remote Copy Protocol.

Por meio do scp, vocẽ pode transferir arquivos de forma fácil e segura entre uma máquina local para servidor remoto e vice-versa.

Para funcionar o comando scp é necessário que já tenha instalado e configurado a conexão SSH em um servidor remoto.

Para especificar a porta utilizada no SSH, diferente do padrão que é 22, adicione o argumento -p seguido da porta utilizada.

Exemplo de sintaxe do comando SCP no Linux

Copiando um arquivo remoto para máquina local
$ scp user@IP:/dir-remoto/arquivo-remoto.txt /dir-local/arquivo-local.txt

Enviando um arquivo local para um servidor remoto
$ scp /dir-local/arquivo-local.txt user@IP:/dir-remoto/arquivo-remoto.txt

Copiando diretórios e subdiretórios do servidor remoto para máquina local
$ scp -r user@IP:/dir-remoto /dir-local/

Enviando diretórios e subdiretórios da máquina local para o servidor remoto
$ scp -r /dir-local/ user@IP:/dir-remoto/

Feito!

Resolvendo problema de acesso negado ao acessar PHPMyAdmin



Problema comum de quem utiliza ambiente PHP no Windows com XAMPP. Só estou publicando a dica da solução desse problema devido ter ocorrido com um colega do time na empresa. Eu utilizo ambiente PHP no Docker e o DBeaver como cliente SGBD nas plataformas Windows e Linux.

É bom ressaltar que o PHPMyAdmin é uma ferramenta web para gerenciar o SGBD MySQL. Existe outros clientes que suportam diversos SGBDs (MySQL, PostgreSQL, Oracle, MSSQL), como o HeidiSQL e DBeaver.

Por padrão o password de root do MySQL no XAMPP vem em branco, ao definir e tentar acessar o phpmyadmin ocorre a mensagem do screenshot acima.

Segue a solução abaixo:

Solução

Editar o arquivo c:/xampp/phpmyadmin/config.inc.php alterando o password do usuário root que foi definido, conforme abaixo:

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'senha-definida';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
$cfg['Lang'] = '';

Feito!

sábado, 28 de dezembro de 2019

Instalando WPS Office no Linux

O que é WPS Office ?

WPS Office é uma suíte de escritório escrito em C++ que executa em plataformas Windows, Linux, Android e iOS. Desenvolvido pelo desenvolvedor de software chinês em Zhuhai, a Kingsoft. O WPS Office é um conjunto de softwares que é composto de três componentes principais: WPS Writer, WPS Presentation e WPS Spreadsheet.

O objetivo deste post é apresentar a instalação do WPS Office nas distros Debian/Ubuntu e CentOS/Fedora. A versão atual até a data de publicação deste post é 11.1.0.8865.

Instalação

Link de download WPS Office For Linux

Debian/Ubuntu

$ wget -c "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/8865/wps-office_11.1.0.8865_amd64.deb"

$ sudo dpkg -i wps-office_11.1.0.8865_amd64.deb

CentOS/Fedora

$ wget -c "http://wdl1.pcfg.cache.wpscdn.com/wpsdl/wpsoffice/download/linux/8865/wps-office-11.1.0.8865-1.x86_64.rpm"

$ sudo rpm -i wps-office-11.1.0.8865-1.x86_64.rpm

Feito!

domingo, 22 de dezembro de 2019

Resolvendo o problema Cannot connect to the ZCS upstream server Connection is refused no Zimbra

O objetivo deste post é de apresentar o problema ZCS upstream server connection is refused no Zimbra e a respectiva solução.

Ocorreu uma vez a seguinte mensagem de erro no servidor Zimbra.

Problema

"Problem accessing ZCS upstream server. 
Cannot connect to the ZCS upstream server. Connection is refused.
Possible reasons:
upstream server is unreachable
upstream server is currently being upgraded
upstream server is down
Please contact your ZCS administrator to fix the problem.
Powered by Nginx-Zimbra://"
Solução

Geralmente isso ocorre com arquivo de log, necessário limpar, parando todos os serviços do Zimbra e iniciando novamente.

$ su zimbra
$ zmcontrol stop
$ zmcontrol start
$ zmcontrol status


Parando os serviços

zimbra@zimbra-server:~/nginx/logs$ zmcontrol stop  
 Host zimbra-server.saitam.com  
      Stopping vmware-ha...skipped.  
           /opt/zimbra/bin/zmhactl missing or not executable.  
      Stopping zmconfigd...Done.  
      Stopping zimlet webapp...Done.  
      Stopping zimbraAdmin webapp...Done.  
      Stopping zimbra webapp...Done.  
      Stopping service webapp...Done.  
      Stopping stats...Done.  
      Stopping mta...Done.  
      Stopping spell...Done.  
      Stopping snmp...Done.  
      Stopping cbpolicyd...Done.  
      Stopping archiving...Done.  
      Stopping opendkim...Done.  
      Stopping amavis...Done.  
      Stopping antivirus...Done.  
      Stopping antispam...Done.  
      Stopping proxy...Done.  
      Stopping memcached...Done.  
      Stopping mailbox...Done.  
      Stopping logger...Done.  
      Stopping dnscache...Done.  
      Stopping ldap...Done.  

Iniciando os serviços

zimbra@zimbra-server:~/nginx/logs$ zmcontrol start  
 Host zimbra-server.saitam.com  
      Starting ldap...Done.  
      Starting zmconfigd...Done.  
      Starting logger...Done.  
      Starting mailbox...Done.  
      Starting memcached...Done.  
      Starting proxy...Done.  
      Starting amavis...Done.  
      Starting antispam...Done.  
      Starting antivirus...Done.  
      Starting opendkim...Done.  
      Starting snmp...Done.  
      Starting spell...Done.  
      Starting mta...Done.  
      Starting stats...Done.  
      Starting service webapp...Done.  
      Starting zimbra webapp...Done.  
      Starting zimbraAdmin webapp...Done.  
      Starting zimlet webapp...Done.  

Verificando o status dos serviços

 zimbra@Saitam:~/nginx/logs$ zmcontrol status  
 Host zimbra-server.saitam.com  
      amavis         Running  
      antispam        Running  
      antivirus        Running  
      ldap          Running  
      logger         Running  
      mailbox         Running  
      memcached        Running  
      mta           Running  
      opendkim        Running  
      proxy          Running  
      service webapp     Running  
      snmp          Running  
      spell          Running  
      stats          Running  
      zimbra webapp      Running  
      zimbraAdmin webapp   Running  
      zimlet webapp      Running  
      zmconfigd        Running  

Antes




Depois




Feito!

sábado, 21 de dezembro de 2019

Instalando e Configurando o VestaCP

O que é VestaCP?

O painel de controle do Vesta (muitas vezes abreviado como VestaCP) é um painel de controle de hospedagem de código aberto, permitindo ao usuário gerenciar sites, criar contas de email, gerenciar contas de email, gerenciar contas FTP e muito mais.

Requisitos mínimos de hardware

Memória RAM HD CPU
512MB 20GB 1GHz

Instalação

Considerando que tenha o servidor Linux com a distribuição Debian/Ubuntu Server/CentOS instalado no seu Datacenter ou Cloudserver (AWS ou Digital Ocean), conecte ao servidor via SSH e segue os procedimentos abaixo:

$ curl -O http://vestacp.com/pub/vst-install.sh
# bash vst-install.sh

Segue os steps do setup da instalação

Após o término, acesse o VestaCP no browser https://dominio.com.br:8083 com o usuário e password de administrador definido na instalação.

Figura 1: Screenshot do VestaCP


Considerações finais

Parabéns por concluir a instalação do Vesta CP no Debian/Ubuntu Server/CentOS, agora você está pronto para começar a gerenciar sites, contas de email, contas FTP e muito mais.

Feito!

sexta-feira, 20 de dezembro de 2019

Instalando e Configurando servidor CalDAV e CardDAV com Radicale

O que é Radicale?

Radicale é um servidor de calendário e lista de endereços, desenvolvido em Python e implementa os padrões CalDAV e CardDAV.

A configuração recomendada para uso em produção é atender ao Apache em todo o sistema via uWSGI com autenticação baseada em Apache.

Debian/Ubuntu

Instalação

$ sudo apt install radicale apache2-utils python3-bcrypt python3-passlib

Autenticação

Crie um arquivo "users" com todos os nomes de usuário e senhas

$ htpasswd -c -B /etc/radicale/users user
$ htpasswd -B /etc/radicale/users user2

Em seguida, para definir a autenticação como htpasswd com criptografia bcrypt, edite essas instâncias em /etc/radicale/config

[auth]
type = htpasswd
htpasswd_filename = /etc/radicale/users
htpasswd_encryption = bcrypt
O script de inicialização do SysV fornecido deve cuidar disso. Caso contrário, você pode fazê-lo manualmente, conforme abaixo:

$ sudo mkdir -p /var/lib/radicale
$ sudo chown radicale:radicale /var/lib/radicale
$ sudo chmod g-w,o-rwx /var/lib/radicale
$ sudo mkdir -p /var/log/radicale
$ sudo chown radicale:adm /var/log/radicale
$ sudo chmod g-w,o-rwx /var/log/radicale
Arquivo de log

Editar o arquivo /etc/radicale/config conforme abaixo:
$ sudo vim /etc/radicale/config

[logging]
config = /etc/radicale/logging

/etc/radicale/logging
[handlers]
#keys = console
keys = file

[formatters]
#keys = simple
keys = full

[logger_root]
#level = WARNING
#level = INFO
level = DEBUG
#handlers = console
handlers = file
[handler_file]
class = FileHandler
# Note: Debian logrotate handles /var/log/radicale/*.log, but not /var/log/radicale/log
# (the example given on radicale.org, including their own logfile rotation)
args = ('/var/log/radicale/radicale.log',)
formatter = full
[formatter_full]
format = %(asctime)s - [%(thread)x] %(levelname)s: %(message)s
Adicionar o hostname do Radicale

Editar o arquivo /etc/radicale/config

[server]
hosts = 127.0.0.1:5232, hostname.local:5232
ssl = true
Habilitar o serviço Radicale no boot

$ sudo update-rc.d radicale enable
service radicale start
service radicale status
service radicale stop

Configuração do Vhost no Apache para o Radicale

$ sudo apt install apache2 libapache2-mod-wsgi
$ sudo vim etc/apache2/sites-available/radicale.conf

< VirtualHost *:80 >
  ServerName dav.dominio.com.br

WSGIDaemonProcess radicale user=www-data group=www-data threads=1
WSGIScriptAlias / /usr/share/radicale/radicale.wsgi

< Directory /usr/share/radicale>
WSGIProcessGroup radicale
WSGIApplicationGroup %{GLOBAL}
AllowOverride None
Order allow,deny
allow from all
< /Directory >
< /VirtualHost >
Ativar o Vhost

$ sudo a2dissite 000-default.conf
$ sudo a2ensite radicale.conf

Criar arquivo de log com usuário e grupo www-data

$ sudo mkdir -p /var/log/radicale/
$ sudo chown -R www-data /var/log/radicale/
$ sudo mkdir -p /var/lib/radicale
$ sudo chown -R www-data /var/lib/radicale/

Reinicie o serviço do Radicale e Apache

Ao acessar http://dav.dominio.com.br irá redirecionar por debaixo dos panos http://dav.dominio:5232

Agora, utilize o App CardDAV-Sync e adicione o servidor Radicale configurado para sincronizar os contatos.

Referências:

https://wiki.debian.org/Radicale

Feito!

quinta-feira, 19 de dezembro de 2019

Configurar certificado SSL com Let's Encrypt

O que é Let's Encrypt?

Let's Encrypt é uma autoridade certificadora gratuita, automatizada e aberta que se tornou possível graças à organização sem fins lucrativos Internet Security Research Group (ISRG)

O Certbot é o cliente do Let's Encrypt que facilita a emissão do certificado SSL no webserver Apache e Nginx.

O presente post, irá explicar os procedimentos de geração do certificado SSL com Let's Encrypt em paralelo com Certbot em um servidor com Debian.

Instalar o Certbot

No Apache

$ sudo apt-get install python-certbot-apache

No Nginx

$ sudo apt-get install python-certbot-nginx

Realizar a emissão e instalação do certificado SSL
Após instalar o certbot, execute a emissão do certificado de acordo com o webserver Apache ou Nginx que estiver utilizando em seu servidor.

No Apache

$ sudo certbot --apache -d dominio.com.br -d dominio.com.br

No Nginx

$ sudo certbot --nginx -d dominio.com.br -d dominio.com.br

Neste exemplo, estamos emitindo um certificado tanto para o domínio principal quanto para o subdomínio www.

Após a execução do comando, precisa fornecer algumas informações solicitadas no próprio terminal, uma delas é o e-mail que será utilizado para enviar notificações sobre a renovação do certificado e eventuais alertas de segurança. Aceitar os termos de serviço e por fim escolha a opção para redicionar todo tráfego para executar sob o prototocolo HTTPS.

Com isso, o certificado já deverá estar funcionamento plenamente. Para verificar, acesse a URL raiz do seu domínio usando o protocolo seguro (https://seudominio.com.br). É bom verificar o diagnótico completo do certificado, acesse o endereço abaixo substituindo pelo seu domínio.

https://www.ssllabs.com/ssltest/analyze.html?d=saitam.com

Ativar a renovação automática

Todos os certificados emitidos pela Let's Encrypt têm duração de apenas 90 dias. O Certbot já vem programado para configurar a renovação automática do Let's Encrypt antes da data de expiração. Na prática, confere diariamente a data de expiração do certificado. Se for menor do que 30 dias, o certificado é renovado.

$ sudo certbot renew --dry-run

O comando certbot renew é o responsável por realizar a verificação do Let's Encrypt. Nesse caso, a flag --dry-run dispara o script, mas em modo teste. Assim, ele não realiza a renovação em si, apenas uma simulação.

A qualquer momento, se houver algum problema com a renovação do certificado, você receberá um aviso no e-mail que cadastrou no início do processo.

Referências:

https://letsencrypt.org/pt-br/docs/

Feito!

quarta-feira, 18 de dezembro de 2019

Configurar certificado Self-Signed SSL no Nginx

O que é certificado SSL ?

Certificado SSL é uma maneira de criar uma conexão mais segura criptografando as informações transmitidas entre o cliente e o servidor onde o certificado está instalado. Este certificado ainda exibe informações de identificação do servidor diretamente no browser do usuário.

Certificados SSL normalmente são emitidos por empresas chamadas de Certificate Authorities que verifica os detalhes do servidor, mas também é possível emitir Self-signed SSL certificate.

O presente post explica os procedimentos de como criar self-signed certificate e configurar no Nginx com Debian/Ubuntu.

Requisitos:

Ter o Nginx instalado.

Instalação do Nginx

$ sudo apt install nginx
Reiniciar o serviço Nginx

$ sudo systemctl restart nginx

Criar o certificado Self-Signed SSL (não assinado)

$ sudo mkdir /etc/nginx/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt

O comando acima irá criar dois arquivos nginx.key e nginx.crt necessários para configurar Nginx HTTPS server.
Esse certificado tem validade por 1 ano.
Ao executar o comando acima irá perguntar conforme abaixo:

Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Nome do Estado
Locality Name (eg, city) []:Nome da Cidade
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nome da Empresa fictícia
Organizational Unit Name (eg, section) []:Departamento de TI
Common Name (e.g. server FQDN or YOUR name) []: nome definido no ServerName do Vhost
Email Address []:seu_email@dominio.com.br

Configurar o Nginx HTTPS server com certificado SSL no Vhost

$ sudo vim /etc/nginx/sites-available/projeto-ssl.conf

PS: Substituir o destacado em vermelho para o seu cenário de projeto do Vhost
server {
  listen       443 ssl;
  server_name  projeto.local;
  ssl_certificate     /usr/local/nginx/ssl/nginx.crt;
  ssl_certificate_key /usr/local/nginx/ssl/nginx.key;
  ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers         HIGH:!aNULL:!MD5;

  root  /var/www/html/projeto;
  index index.php;

  charset utf-8;

  location ~ /(\.ht) {
    deny all;
    return 404;
  }

  location ~ ^(.+\.php)(.*)$ {
    try_files $fastcgi_script_name =404;
    include        /etc/nginx/fastcgi_params;
    fastcgi_split_path_info  ^(.+\.php)(.*)$;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;
  }
}

Reiniciar o Nginx

$ sudo systemctl restart nginx

Adicionar o Vhost no arquivo /etc/hosts

127.0.0.1 projeto.local

No browser acessa https://projeto.local

Feito!

terça-feira, 17 de dezembro de 2019

Configurar certificado Self-Signed SSL no Apache

O que é certificado SSL ?

Certificado SSL é uma maneira de criar uma conexão mais segura criptografando as informações transmitidas entre o cliente e o servidor onde o certificado está instalado. Este certificado ainda exibe informações de identificação do servidor diretamente no browser do usuário.

Certificados SSL normalmente são emitidos por empresas chamadas de Certificate Authorities que verifica os detalhes do servidor, mas também é possível emitir Self-signed SSL certificate.

O presente post explica os procedimentos de como criar self-signed certificate e configurar no Apache com Debian/Ubuntu.

Requisitos:

Ter o Apache instalado e os módulos ssl e mod_rewrite habilitados.

Instalação do Apache e habilitar os módulos ssl e mod_rewrite

$ sudo apt install apache2
$ sudo a2enmod ssl
$ sudo a2enmod rewrite

Reiniciar o serviço Apache

$ sudo systemctl restart apache2

Criar o certificado Self-Signed SSL (não assinado)

$ sudo mkdir /etc/apache2/ssl
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt
O comando acima irá criar dois arquivos apache.key e apache.crt necessários para configurar Apache HTTPS server.
Esse certificado tem validade por 1 ano.
Ao executar o comando acima irá perguntar conforme abaixo:

Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:Nome do Estado
Locality Name (eg, city) []:Nome da Cidade
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nome da Empresa fictícia
Organizational Unit Name (eg, section) []:Departamento de TI
Common Name (e.g. server FQDN or YOUR name) []: nome definido no ServerName do Vhost
Email Address []:seu_email@dominio.com.br

Configurar o Apache HTTPS server com certificado SSL no Vhost

$ sudo vim /etc/apache2/sites-available/projeto-ssl.conf

PS: Substituir o destacado em vermelho para o seu cenário de projeto do Vhost
< IfModule mod_ssl.c >
    < VirtualHost _default_:443 >
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html/projeto
        ServerName projeto.local

            RewriteEngine On

        < Directory "/var/www/html/projeto" >
            Options None
            Options +FollowSymlinks
            AllowOverride All
        < /Directory >

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        SSLCertificateFile    /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

        < FilesMatch "\.(cgi|shtml|phtml|php)$" >
                SSLOptions +StdEnvVars
        < /FilesMatch >
        < Directory /usr/lib/cgi-bin >
                SSLOptions +StdEnvVars
        < /Directory >

        BrowserMatch "MSIE [2-6]" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

    < /VirtualHost >
< /IfModule >
Ativar o Vhost

$ sudo a2ensite projeto-ssl.conf

Reiniciar o Apache

$ sudo systemctl restart apache2

Adicionar o Vhost no arquivo /etc/hosts

127.0.0.1 projeto.local

No browser acessa https://projeto.local

Feito!

segunda-feira, 16 de dezembro de 2019

Habilitar o sudo no Debian

O que é sudo ?

O sudo é uma aplicação que permite a execução de comandos administrativos de segurança com usuário regular. Na política do Debian, o sudo não vem habilitado por padrão para o usuário regular, devido o fato ser uma distro destinada em servidor, mas se esteja utilizando o Debian em ambiente desktop, então não tem problema habilitar o sudo para o seu usuário regular.

Instalar o sudo
$ apt install sudo

Editar o arquivo /etc/sudoers

# vim /etc/sudoers

Na linha root ALL=(ALL:ALL) ALL substituir o root pelo nome do seu usuário
seu usuário ALL=(ALL:ALL) ALL

Feito!

domingo, 15 de dezembro de 2019

Instalando e Configurando servidor CalDAV e CardDAV com Baïkal

O que é Baïkal?

O Baïkal oferece acesso sincronizado aos seus calendários e catálogos de endereços pelo CalDAV e CardDAV. Assim os contatos e calendários inseridos nos smartphones são sincronizados no Baïkal em servidor próprio de CalDAV e CardDAV.

Pré requisitos do ambiente para o Baïkal

O Baïkal foi desenvolvimento em PHP, então o ambiente precisa ter como servidor web Apache/Nginx, PHP e SGBD MySQL.

Debian/Ubuntu:

$ sudo apt install apache2 libapache2-mod-php7.3 php7.3-dev php7.3-mysql php7.3-mbstring php7.3-gd mariadb-server

Download do Baïkal

$ wget -c "https://github.com/sabre-io/Baikal/releases/download/0.6.1/baikal-0.6.1.zip"
$ sudo unzip baikal-0.6.1.zip -d /var/www/html
$ sudo chown www-data:www-data /var/www/html/baikal/Specific

Criar o banco de dados no SGBD MySQL

$ sudo mysql -u root -p
mysql> create database baikal;
mysql> CREATE USER userbaikal@localhost IDENTIFIED BY 'secret';
mysql> GRANT ALL PRIVILEGES ON baikal.* TO userbaikal@localhost WITH GRANT OPTION;
mysql> quit

Configuração do Vhost
No Apache
Criar o arquivo /etc/apache2/sites-available/baikal.conf
< VirtualHost *:80 >
DocumentRoot /var/www/html/baikal/html
ServerName dav.dominio.com.br

RewriteEngine On
RewriteRule /.well-known/carddav /card.php [R,L]
RewriteRule /.well-known/caldav /cal.php [R,L]

< Directory "/var/www/html/baikal/html" >
Options None
Options +FollowSymlinks
AllowOverride All
< /Directory >
< /VirtualHost >
No Nginx
Criar o arquivo /etc/nginx/sites-available/baikal.conf
server {
  listen       80;
  server_name  dav.dominio.com.br;

  root  /var/www/html/baikal/html;
  index index.php;

  rewrite ^/.well-known/caldav /dav.php redirect;
  rewrite ^/.well-known/carddav /dav.php redirect;

  charset utf-8;

  location ~ /(\.ht|Core|Specific) {
    deny all;
    return 404;
  }

  location ~ ^(.+\.php)(.*)$ {
    try_files $fastcgi_script_name =404;
    include        /etc/nginx/fastcgi_params;
    fastcgi_split_path_info  ^(.+\.php)(.*)$;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO        $fastcgi_path_info;
  }
}
Ativar o Vhost e o mod_rewrite
$ sudo a2ensite baikal.conf
$ sudo a2enmod rewrite

Reinicie o Apache ou Nginx
$ sudo systemctl restart apache2
OU
$ sudo systemctl restart nginx

No browser, acessar http://dav.dominio.com.br
STEP 1

Server Time zone: Escolher o seu fuso horário, no meu caso, selecionei America/Sao_Paulo.
Enable CalDAV: Marque a opção para habilitar a funcionalidade CalDAV do Baïkal.
Enable CardDAV: Marque a opção para habilitar a funcionalidade CardDAV do Baïkal.
WebDAV authentication type: Escolha Digest.
Admin password: Definir um password para interface de administração do Baïkal.
Admin password, confirmation: Confirme o password.

STEP 2

MySQL host: localhost
MySQL database name: Coloque o nome do banco de dados que foi definido, no caso foi baikal.
MySQL username: Coloque o nome de usuário do banco de dados, no caso foi userbaikal.
MySQL password: Coloque a senha do usuário do banco de dados que foi definida.

Clique em Start using Baïkal.

Baïkal instalado com sucesso. Clique em Start using Baïkal para a interface administrativa do Baïkal.

Use o Let's Encrypt para o certificado SSL.

Considerações finais

Com o servidor CalDAV e CardDAV instalado e configurado, crie um usuário CardDAV no servidor para sincronizar com os clientes (smartphones) pelo App CardDAV-Sync. Informe o domínio do servidor do Baikal que foi configurado com o usuário e password. Lembrar de marcar SSL e para isso ter ativado o Let's Encrypt no servidor.



No App CardDAV-Sync, adicione o domínio servidor que foi configurado o Baïkal e preencher conforme abaixo:

PS: Substituir o dav.dominio.com.br pelo nome do seu domínio que definiu no ServerName do Vhost com o domínio validado no Registro BR

Server name or URL: dav.dominio.com.br/card.php/addressbooks/usuario/default
Marque Use SSL (utilizar o Let's Encrypt no servidor)
Username: Colocar o nome de usuário que criou na lista de endereços no servidor Baïkal
Password: Colocar a senha definida do username

Feito!

sábado, 14 de dezembro de 2019

Desabilitar o case sensitive do MySQL no Linux

Se desenvolveu uma aplicação no ambiente de desenvolvimento com o SGBD MySQL em plataforma Windows, criou nome das tabelas e colunas do banco de dados em minúscula e na comunicação com a aplicação e banco de dados escreveu em maiúscula, a príncipio no Windows funcionou sem problemas, mas ao fazer o deploy no servidor de produção que é Linux, se deparou com erro, o nome da tabela não encontrou. O que ocorreu nesse caso, foi que no Windows o SGBD MySQL inclui o case sensitive habilitado por padrão e no Linux é case sensitive e obviamente o SGBD MySQL vem desabilitado o case sensitive , isto é, teste é diferente de TESTE.

E agora como resolver? Calma, esse é o objetivo desta postagem, explicar os procedimentos para desabilitar o case sensitive no SGBD MySQL em servidor Linux (Debian/Ubuntu/CentOS).

Segue os procedimentos:
  1. Parar o serviço do MySQL: $ sudo systemctl stop mysql
  2. Editar o arquivo de configuração do MySQL: $ sudo vim /etc/mysql/my.cnf
  3. Na seção [mysqld] adicione a linha lower_case_table_names=1
  4. Iniciar o serviço do MySQL: $ sudo systemctl start mysql
Feito!