Instalando PHP7 no Ubuntu

Segue um passo a passo para instalação do PHP7 no Ubuntu

Preparando Ambiente

Primeiro passo é remover a versão atual do PHP

sudo apt-get remove --purge php5* 

Depois, adicionar o repositório do PHP7 e atualizar a listagem de pacotes

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Instalando PHP7 + NGINX

Adicione o repositório do NGINX e atualize a listagem de pacotes

echo deb http://nginx.org/packages/mainline/ubuntu/ `lsb_release --codename --short` nginx >> /etc/apt/sources.list
sudo apt-get update

E por fim instale o NGINX + PHP-FPM

sudo apt-get install nginx php7.0-common php7.0-cli php7.0-fpm

Instalando PHP7 + Apache2

Recomendo a utilização do ambiente com NGINX, por ter menos falhas e um desempenho muito melhor. Mas caso precise/deseje utilizar o Apache basta instalar com os comandos abaixo:

apt-get install apache2 php7.0-common php7.0-cli php7.0 libapache2-mod-php7.0

Biblioteca para MySQL

Caso vá utilizar o MySQL como base de dados basta adicionar o pacote do MySQL

sudo apt-get install php7.0-mysql

Pronto!

 

Instalando Asterisk 13

O Asterisk é um poderoso software de PBX (central telefônica), free, que possibilita realizar interconexões entre o mundo analógico, digital e possibilita aplicações e recursos que quando vistos em outras centrais telefônicas, são de grande porte.

Leia mais

Asterisk FastAGI com PHP e Nginx

Antes de mais nada é importante lembrarmos o que é o Asterisk AGI, segundo o site Voip-Info (http://www.voip-info.org/wiki/view/Asterisk+AGI) AGI é o acrônimo de Asterisk Gateway Interface, em outras palavras, é uma interface de comunicação para adicionar novas funcionalidades ao Asterisk, basicamente o Asterisk chama um script externo que pode ser escrito em qualquer linguagem (Perl, PHP, C, Pascal, Shell e etc…).

Uma característica do AGI é que o script deve estar fisicamente na mesma maquina do Asterisk, o que pode acabar sobrecarregado essa maquina, sendo assim existe uma variante do AGI que é o FastAGI, que basicamente é a mesma coisa do AGI mas podendo ser utilizado via rede, pois o Asterisk conecta via socket TCP a um servidor externo para chamar o script. Para maiores informações consulte o link http://www.voip-info.org/wiki/view/Asterisk+FastAGI.

Dito isso, o que veremos neste post é como montar toda a estrutura de um servidor FastAGI. Neste utilizaremos como linguagem de programação o PHP e como servidor o Ubuntu 14.04 com os aplicativos Xinet + Nginx, a utilização do Nginx se da pelo fato de facilitar a criação de balanceamento de carga, segurança entre outros.

Leia mais

Corrigindo erro de usuários órfãos no Microsoft SQL

Um Erro muito comum é quando se restaura uma base de dados, ou até mesmo ao anexar uma nova base é que os usuários dessa base perdem i vínculo com o usuário de segurança do Microsoft SQL Server.

Para resolver este problema tem um comando simples e rápido.

Estes de mais nada garanta que o usuário exista no SQL server e depois execute o comando abaixo dentro da base de dados desejada.

 

EXEC sp_change_users_login 'Auto_Fix', 'usuario_orfao'

git push error: RPC failed; result=56, HTTP code = 0

Ao tentar migrar um repositório do GitHub para um servidor local usando Bonobo Git Server (https://bonobogitserver.com/), tive o seguinte erro:

Counting objects: 5682, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3751/3751), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; result=56, HTTP code = 0
Writing objects:  10% (619/5682), fatal: The remote end4.75 M huniB | 3g u6p unexpecte.00 Kdly
Writing objects: 100% (5682/5682), 34.68 MiB | 22.00 KiB/s, done.
Total 5682 (delta 1827), reused 5682 (delta 1827)
fatal: The remote end hung up unexpectedly

Pesquisando na internet verifiquei que este erro está associado ao tamanho do pacote que necessita ser enviado pelo cliente ao servidor, sendo assim a solução do mesmo é ajustar o cliente e o servidor para receber pacotes maiores.

No cliente fiz o ajuste com o seguinte comando

git config --global http.postBuffer 100M

Ja no servidor alterei o arquivo web.config do Bonobo para permitir o conteúdo com 100Mb (conforme abaixo)

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <system.web>
    <httpRuntime maxRequestLength="104857600" />
    ...
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits executionTimeout="18000" maxAllowedContentLength="104857600" />
        ...

Após este procedimento e a aplicação do HotFix Microsoft (KB2634328) tudo funcionou normalmente em meu ambiente.

Referência:
https://bonobogitserver.com/frequently-asked-questions/

Tratando código CNL para ligações conurbadas no Asterisk

Introdução e contextualização

Antes de qualquer coisa vamos direto ao problema que pretendemos resolver neste post. O sistema de telefonia fixa no Brasil adota um padrão de separação das localidades e uma subordinação político-administrativa (isso será explicado um pouco mais a frente com mais detalhes). Basicamente com essa separação poderemos ter 2 municípios com o mesmo DDD onde para realizar ligações um deles não é necessário adicionar o código de DDD, e para outro sim.

Exemplo: Moro na cidade de Curitiba (cujo DDD é 41), temos diversos municípios de Curitiba e região metropolitana como Curitiba, Lapa, São José dos Pinhais, Colombo e etc… Quando em Curitiba não necessito utilizar o DDD para efetuar uma ligação a estes municípios, porém quando ligamos para Paranaguá, uma cidade  a +- 100 Km de Curitiba, que utiliza o mesmo DDD, ja é necessário utilizar o DDD para realizar ligações.

Sendo assim surge o nosso problema, se o DDD não é quem difere se devo ou não colocar o DDD ao realizar uma chamada, como podemos realizar essa distinção? A resposta esta na base de dados CNL.

Leia mais

Convertendo PKCS#12 (.p12 ou .pfx) em um KeyStore Java JKS

Neste post mostrarei como converter um arquivo PKCS#12 (.p12 ou .pfx) para um KeyStore Java no formato JKS.

Tanto o arquivo PKCS#12 como o JSK contem o certificado X509 a chave privada assiciada ao mesmo.

Então mãos na massa!

Caso você tenha alguma dúvida de como gerar o arquivo PKCS#12 basta dar uma olhadinha nestes 2 outros posts aqui no site mesmo, eles podem lhe ajudar.

Antes de tentar realizar a conversão é necessário realizar a instalação do JAVA JDK e configuração para que no Path do sistema operacional tenha o caminho %programfiles%\java\jdk1.6.0_21\bin. Vale a pena observar que o caminho pode se alterar conforme a versão do JDK que está instalado.

keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS -srcstorepass mystorepass -deststorepass myotherstorepass -srcalias myserverkey -destalias myotherserverkey -srckeypass mykeypass -destkeypass myotherkeypass

Caso necessite você pode listar o certificado do KeyStore com o comando

keytool -v -list -keystore mykeystore.p12