Mudanças entre as edições de "Tutoriais:Implantação resumida"

De Tek-System Wiki
Ir para navegação Ir para pesquisar
 
(25 revisões intermediárias por 2 usuários não estão sendo mostradas)
Linha 1: Linha 1:
'''PASSO 1'''
'''PASSO 1'''


---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
Criar uma maquina linux debian 7GB de memoria ram e pelo menos 100GB de HD, não faça menos que isso. Lembre-se de apontar o dominio para o servidor da maquina e vice-versa. Deixa-a no jeito.


  CRIAR UMA MAQUINA VIRTUAL 7GB DE HAM ANYWHERE COM LINUX DEBIAN!!!!
'''PASSO 2'''
 
Jogue a pasta com scripts Teksystem_Scripts (http://192.168.254.201/ecommerce-magento/infra) na mesma altura onde será inserido o magento2-ready(Codigo fonte do magento)
 
'''PASSO 3'''
Rode o comando para ser possivel utilizar a pasta com scripts:
 
  chmod +x configura_maquina_linux.sh
 
rode o comando de configuracao da maquina linux
 
./configura_maquina_linux.sh
 
'''PASSO 4'''
 
Envie o arquivo do magento zipado pelo filezilla
 
 
'''PASSO 5'''
Apos enviado o magento e descompacta-lo:
 
Acesse o arquivo '''index.php'''
 
 
'''PASSO 6 '''
 
obs: Não se esqueça de configurar o Tek-Prot!!! Ou seja o código do usuário da tekapi.
 
Código fonte da index:
<nowiki>
 
<?php
 
    function dataVerificacaoExpirada(){
 
        $arquivo = "data_ultima_bloqueio.txt";
        $hora_espera = 2;
 
        if (is_writable($arquivo)) {
 
            $fp = fopen($arquivo, "r+");
 
            $dataAnterior = fgets($fp, 256);
 
            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');
 
            $dataAnterior = new DateTime($dataAnterior);
            $diferenca =  $dataAnterior->diff($dataAtual);
 
            $horas = $diferenca->h+($diferenca->days * 24);
 
            if($horas >= $hora_espera){
                return true;
            }
 
            fclose($fp);
 
        }else{
 
            $fp = fopen($arquivo, "a+");
 
            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');
 
            fwrite($fp, $dataAtual->format('Y-m-d H:i:s'));
           
            fclose($fp);
 
            return true;
        }
 
        return false;
    }
 
    function gravarUltimaDataValida(){
 
        $arquivo = "data_ultima_bloqueio.txt";
 
        if (is_writable($arquivo)) {
 
            $fp = fopen($arquivo, "r+");
 
            file_put_contents($arquivo, ""); // limpa arquivo
 
            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');
            fwrite($fp, $dataAtual->format('Y-m-d H:i:s'));
            fclose($fp);
        }
    }
 
    function gravarSeEcommerceEstaValidoNoArquivo($boolEhValido){
 
        $arquivoValidacaoTP = "eh-valido-tekprot.txt";
 
        $boolEhValido = $boolEhValido ? "sim" : "nao";
 
        if (is_writable($arquivoValidacaoTP)) {
            $fp = fopen($arquivoValidacaoTP, "r+");
            file_put_contents($arquivoValidacaoTP, ""); // limpa arquivo
            fwrite($fp, $boolEhValido);
            fclose($fp);
        }else{
 
            $fp = fopen($arquivoValidacaoTP, "a+");
            fwrite($fp, $boolEhValido);
            fclose($fp);
        }
 
    }
 
    function lerSeEcommerceEstaValidoNoArquivo(){
 
        $arquivoValidacaoTP = "eh-valido-tekprot.txt";
        $fp = fopen($arquivoValidacaoTP, "r+");
 
        $boolEhValido = fgets($fp, 200);
 
        return $boolEhValido == "sim";
    }
 
    // Sim, esse processo ira utilizar o mesmo token para varios clientes, mas nao importa pois ira bloquear os ataques de bots
    function gravarUltimoTokenEncriptadoNoArquivoPassandoToken($key, $url, $configToken, $tokenDaApiEncriptado){
 
        $arquivoToken = "token.txt";
 
        if (is_writable($arquivoToken)) {
 
            $fp = fopen($arquivoToken, "r+");
 
            file_put_contents($arquivoToken, ""); // limpa arquivo
 
            fwrite($fp, $tokenDaApiEncriptado);
            fclose($fp);
        }else{
 
            $fp = fopen($arquivoToken, "a+");
 
            fwrite($fp, $tokenDaApiEncriptado);
            fclose($fp);
        }
 
    }
 
    function buscarUltimoTokenEncriptadoNoArquivo(){
 
        $arquivoToken = "token.txt";
        $fp = fopen($arquivoToken, "r+");
        $tokenEncriptado = fgets($fp, 1024);
 
        return $tokenEncriptado;
    }
 
    function buscaToken($configToken, $url){
        $userData = array("token" => $configToken);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
 
        $data = curl_exec($ch);
        $err = curl_error($ch);
 
        if($err === ""){
            $json = json_decode($data);
            if(isset($json->errors))
                return $json->data->token;
            else return false;
        }else{
            return false;
        } 
    }
 
    function validaIntegracao($configUrlWebservice, $token){
 
        gravarUltimaDataValida();
 
        $canal = "ECOMMERCE_MAGENTO";
        $url = $configUrlWebservice. "integracao/tekecommerce/" . $canal ;
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . $token));
        // Fim - Requisicao
        $result = curl_exec($ch);
        $err = curl_error($ch);
 
        if($err === ""){
            $json = json_decode($result);
 
            if(isset($json->errors)){
                return $json->data;
            }else {
                return false;
            }
 
        }else{
            return false;
        }
       
    }
 
    function liberaMagento(){
 
        switch($_SERVER['HTTP_HOST']) {
            case '35.196.243.242 ':
                $mageRunCode = 'base';
                $mageRunType = 'website';
            break;
            case 'teksystemcommerce.com.br':
                $mageRunCode = 'tc';
                $mageRunType = 'website';
            break;
            case 'www.teksystemcommerce.com.br':
                $mageRunCode = 'tc';
                $mageRunType = 'website';
            break;
        }
       
        $params = $_SERVER;
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = $mageRunCode;
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = $mageRunType;
        $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
       
        /** @var \Magento\Framework\App\Http $app */
        $app = $bootstrap->createApplication('Magento\Framework\App\Http');
        $bootstrap->run($app);
    }
 
    function paginaErro($msg){
        echo
        '<div class="container">
            <div class="title">
                <h3>AVISO IMPORTANTE</h3>
            </div>
            <div class="bg-tek">
                <img src="http://teksystemcommerce.com.br/pub/static/version1553773995/frontend/Emthemes/everything_fashionshop/pt_BR/images/logo@2x.svg" width="300px"/>
                <p>Este site está temporariamente indisponível !!!</p>
            </div>
        </div>
        <style>
            .container{
                border: solid 1px;
                margin: 0 20% 0 20%;
                text-align: center;
            }
            .title{
                color: white;
                font-size: 19px;
                font-family:"Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
                background-color: #000;
                padding: 1px;
            }
            p{
                padding: 5% 0 5% 0;
                font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
                font-size: 25px;
                font-weight:900;
            }
 
            img{
                padding-top: 10%;
            }
 
            .bg-tek{
                background-color: #59a4f9;
                padding-bottom: 1px;
            }
 
            @media only screen and (max-width: 767px) {
                p{
                    padding: 10% 0 0 0;
                    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
                    font-size: 45px;
                    font-weight:900;
                }
                img{
                    width: 600px;
                }
                .container{
                    margin: unset;
                }
            }
        </style>';
    } 
 
try {
    require __DIR__ . '/app/bootstrap.php';
} catch (\Exception $e) {
    echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
    <div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
        <h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
        Autoload error</h3>
    </div>
    <p>{$e->getMessage()}</p>
</div>
HTML;
    exit(1);
}
 
$key = "0fb32560a639adbb2b05b27f920a3a08"; //encrypitamento do token
$expireCookie = 3600; // expira o cookie em 1h, para fazer uma nova consulta no TEKPROT
$configToken = "b2121-21445-454a-bb67-0f7d622123faf"; //Token do usuario
$configUrlWebservice = "http://ts.teksystem.com.br:9090/api/v1/"; //URL da api
$url = $configUrlWebservice . "auth"; //URL de autenticacao
 
if(!isset($_COOKIE["token"])){


CONFIGURE A MAQUINA LINUX VIDE (http://192.168.254.201/rafaelpadovani/magento-google-cloud-configuration)
    $tokenEncriptado = buscarUltimoTokenEncriptadoNoArquivo();


NAO PRECISA FICAR INSTALANDO O ACESSO LOCAL, FAZ PELO SSH ONLINE MESMO PORQUE SE PERDE MUITO TEMPO!!!!
    if($tokenEncriptado != null){
        setcookie("token", buscarUltimoTokenEncriptadoNoArquivo() , -1, '/');
    }
}


INSTALE O DOCKER(http://192.168.254.201/rafaelpadovani/magento-google-cloud-configuration)


SUBA O ARQUIVO ZIP E DESCOMPACTEO NA MAQUINA VIRTUAL VIDE(http://192.168.254.201/rafaelpadovani/magento-google-cloud-configuration)
if(isset($_COOKIE["token"]) && buscarUltimoTokenEncriptadoNoArquivo() != $_COOKIE["token"]){
---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    setcookie("token", buscarUltimoTokenEncriptadoNoArquivo(), -1, '/');
}




if(dataVerificacaoExpirada()){ //licenca invalida


'''PASSO 2'''
    $result = buscaToken($configToken, $url);
---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
    $encry = $result . $key ;
Primeiro, acesse o arquivo index.php
    $encry = base64_encode($encry);
 
    if($result){
        gravarUltimoTokenEncriptadoNoArquivoPassandoToken($key, $url, $configToken, $encry);
 
        setcookie("token", $encry, -1, '/');
        $result = validaIntegracao($configUrlWebservice, $result);
 
        gravarSeEcommerceEstaValidoNoArquivo($result);
 
        if($result){
            liberaMagento();
        }else{
            paginaErro("Erro de conexao - Liberacao");
        }
 
    }else{
        paginaErro("Erro de conexao - Token");
    }
}elseif (lerSeEcommerceEstaValidoNoArquivo()) {
    liberaMagento();
}else{
    paginaErro("Erro de conexao - Token");
}
 
</nowiki>
 
 
ALTERE O CONFIG TOKEN:
 
$configToken = "b2121-21445-454a-bb67-0f7d622123faf";
 
 
'''PASSO 7'''
 
Acesse '''IP-DO-CLIENTE/phpmyadmin'''
 
Vá no repositorio: http://192.168.254.201/ecommerce-magento/inicializacao-scripts
 
Rode a sql procedure-implantacao.sql trocando pelas informações da empresa.
 
Depois rode a limpeza: procedure-limpa-pedidos-produtos.sql
 
 
Não se esqueça de colocar HTTP na url do host!
 
 
'''PASSO 8'''
 
Talvez precise instalar o sshpass.. entao olhe o tutorial
 
'''PASSO 9'''


Configure o backup automatico e aproveite para colocar no cron os scripts necessarios para rotina do magento:


'''1 - NORMALMENTE A LOJA ESTÁ COM O CODIGO 'ts''''
http://tekwiki.teksystem.com.br/~teksys/tekwiki/index.php?title=BACKUP_CRON




// $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER);
'''PASSO 10'''
switch($_SERVER['HTTP_HOST']) {
    case '127.0.0.1':
        $mageRunCode = 'base';
        $mageRunType = 'website';
    break;
    // case 'sergius.local':
    //    $mageRunCode = 'ts';
    //    $mageRunType = 'website';
    // break;
    case 'sergius.local':
        $mageRunCode = 'tc';
        $mageRunType = 'website';
    break;
    // case 'https://tekwebserver.com.br':
    //    $mageRunCode = 'sw';
    //    $mageRunType = 'website';
    // break;
    // case 'https://www.tekwebserver.com.br':
    //    $mageRunCode = 'sw';
    //    $mageRunType = 'website';
    // break;
}


Adicionar caminho do arquivo e empresa em:


'''COLOQUE A URL ALI, SE FOR LOCAL NAO COLOQUE HTTP AQUI, MAS SE FOR ONLINE COLOQUE!!!!!!!!!!'''
http://192.168.254.201/ecommerce-magento/acesso-ssh-mac-ou-linux/tree/master/Teksystem_scripts
---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----  


'''PASSO 11'''


Instale o certificado gratuito lets encript:


PASSO 3
http://tekwiki.teksystem.com.br/~teksys/tekwiki/index.php?title=Certificado_SSL_GRATUITO_LETS_ENCRIPT
---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
2 - ACESSE 127.0.0.1/phpmyadmin


ACESSE O PAINEL E VÁ NA TABELA core_config_data
'''ISIRA TODOS COMANDOS DE CRON AUTOMATICAMENTE'''


NESSA TABELA TROQUE A URL DO SITE!!!!!
/home/ecommerce/Teksystem_scripts/ativa-todos-cron-por-tempo.sh


------------------------------------------------------------------------------
ATENCAO, NECESSARIO INSTALAR O PHP, SOMENTE O PHP SEM APACHE, RODE:
'''PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !! PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!
PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!
PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!
PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!
PRECISA DE HTTP NA URL ANTES MESMO SE FOR LOCAL !!'''
------------------------------------------------------------------------------


apt-get install php7.0-fpm


'''NAO PRECISA MEXER COM SECURE, UNSECURE, DEIXA ISSO QUIETO!!'''
Dessa forma ele vai preencher os eventos sem você ter que ficar lembrando, mas note que o cron deve estar limpo de inserir isto pois ele vai duplicar a linha...
---------- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----

Edição atual tal como às 19h52min de 8 de setembro de 2020

PASSO 1

Criar uma maquina linux debian 7GB de memoria ram e pelo menos 100GB de HD, não faça menos que isso. Lembre-se de apontar o dominio para o servidor da maquina e vice-versa. Deixa-a no jeito.

PASSO 2

Jogue a pasta com scripts Teksystem_Scripts (http://192.168.254.201/ecommerce-magento/infra) na mesma altura onde será inserido o magento2-ready(Codigo fonte do magento)

PASSO 3 Rode o comando para ser possivel utilizar a pasta com scripts:

chmod +x configura_maquina_linux.sh 

rode o comando de configuracao da maquina linux

./configura_maquina_linux.sh

PASSO 4

Envie o arquivo do magento zipado pelo filezilla


PASSO 5 Apos enviado o magento e descompacta-lo:

Acesse o arquivo index.php


PASSO 6

obs: Não se esqueça de configurar o Tek-Prot!!! Ou seja o código do usuário da tekapi.

Código fonte da index:


<?php

    function dataVerificacaoExpirada(){

        $arquivo = "data_ultima_bloqueio.txt";
        $hora_espera = 2;

        if (is_writable($arquivo)) {

            $fp = fopen($arquivo, "r+");

            $dataAnterior = fgets($fp, 256);

            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');

            $dataAnterior = new DateTime($dataAnterior);
            $diferenca =  $dataAnterior->diff($dataAtual);

            $horas = $diferenca->h+($diferenca->days * 24);

            if($horas >= $hora_espera){
                return true;
            }

            fclose($fp);

        }else{

            $fp = fopen($arquivo, "a+");

            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');

            fwrite($fp, $dataAtual->format('Y-m-d H:i:s'));
            
            fclose($fp);

            return true;
        }

        return false;
    }

    function gravarUltimaDataValida(){

        $arquivo = "data_ultima_bloqueio.txt";

        if (is_writable($arquivo)) {

            $fp = fopen($arquivo, "r+");

            file_put_contents($arquivo, ""); // limpa arquivo

            date_default_timezone_set('America/Sao_Paulo');
            $dataAtual = new DateTime('NOW');
            fwrite($fp, $dataAtual->format('Y-m-d H:i:s'));
            fclose($fp);
        }
    }

    function gravarSeEcommerceEstaValidoNoArquivo($boolEhValido){

        $arquivoValidacaoTP = "eh-valido-tekprot.txt";

        $boolEhValido = $boolEhValido ? "sim" : "nao";

        if (is_writable($arquivoValidacaoTP)) {
            $fp = fopen($arquivoValidacaoTP, "r+");
            file_put_contents($arquivoValidacaoTP, ""); // limpa arquivo
            fwrite($fp, $boolEhValido);
            fclose($fp);
        }else{

            $fp = fopen($arquivoValidacaoTP, "a+");
            fwrite($fp, $boolEhValido);
            fclose($fp);
        }

    }

    function lerSeEcommerceEstaValidoNoArquivo(){

        $arquivoValidacaoTP = "eh-valido-tekprot.txt";
        $fp = fopen($arquivoValidacaoTP, "r+");

        $boolEhValido = fgets($fp, 200);

        return $boolEhValido == "sim";
    }

    // Sim, esse processo ira utilizar o mesmo token para varios clientes, mas nao importa pois ira bloquear os ataques de bots
    function gravarUltimoTokenEncriptadoNoArquivoPassandoToken($key, $url, $configToken, $tokenDaApiEncriptado){

        $arquivoToken = "token.txt";

        if (is_writable($arquivoToken)) {

            $fp = fopen($arquivoToken, "r+");

            file_put_contents($arquivoToken, ""); // limpa arquivo

            fwrite($fp, $tokenDaApiEncriptado);
            fclose($fp);
        }else{

            $fp = fopen($arquivoToken, "a+");

            fwrite($fp, $tokenDaApiEncriptado);
            fclose($fp);
        }

    }

    function buscarUltimoTokenEncriptadoNoArquivo(){

        $arquivoToken = "token.txt";
        $fp = fopen($arquivoToken, "r+");
        $tokenEncriptado = fgets($fp, 1024);

        return $tokenEncriptado;
    }

    function buscaToken($configToken, $url){
        $userData = array("token" => $configToken);
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($userData));
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));

        $data = curl_exec($ch);
        $err = curl_error($ch);

        if($err === ""){
            $json = json_decode($data);
            if(isset($json->errors))
                return $json->data->token;
            else return false;
        }else{
            return false;
        }   
    }

    function validaIntegracao($configUrlWebservice, $token){

        gravarUltimaDataValida();

        $canal = "ECOMMERCE_MAGENTO";
        $url = $configUrlWebservice. "integracao/tekecommerce/" . $canal ;
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json", "Authorization: Bearer " . $token));
        // Fim - Requisicao
        $result = curl_exec($ch);
        $err = curl_error($ch);

        if($err === ""){
            $json = json_decode($result);

            if(isset($json->errors)){
                return $json->data;
            }else {
                return false;
            }

        }else{
            return false;
        }
        
    }

    function liberaMagento(){

        switch($_SERVER['HTTP_HOST']) {
            case '35.196.243.242 ':
                $mageRunCode = 'base';
                $mageRunType = 'website';
            break;
            case 'teksystemcommerce.com.br':
                $mageRunCode = 'tc';
                $mageRunType = 'website';
            break;
            case 'www.teksystemcommerce.com.br':
                $mageRunCode = 'tc';
                $mageRunType = 'website';
            break;
        }
        
        $params = $_SERVER;
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE] = $mageRunCode;
        $params[\Magento\Store\Model\StoreManager::PARAM_RUN_TYPE] = $mageRunType;
        $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $params);
        
        /** @var \Magento\Framework\App\Http $app */
        $app = $bootstrap->createApplication('Magento\Framework\App\Http');
        $bootstrap->run($app);
    }

    function paginaErro($msg){
        echo 
        '<div class="container">
            <div class="title">
                <h3>AVISO IMPORTANTE</h3>
            </div>
            <div class="bg-tek">
                <img src="http://teksystemcommerce.com.br/pub/static/version1553773995/frontend/Emthemes/everything_fashionshop/pt_BR/images/logo@2x.svg" width="300px"/>
                <p>Este site está temporariamente indisponível !!!</p>
            </div>
        </div>
        <style>
            .container{
                border: solid 1px;
                margin: 0 20% 0 20%;
                text-align: center;
            }
            .title{
                color: white;
                font-size: 19px;
                font-family:"Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
                background-color: #000;
                padding: 1px;
            }
            p{
                padding: 5% 0 5% 0;
                font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
                font-size: 25px;
                font-weight:900;
            }

            img{
                padding-top: 10%;
            }

            .bg-tek{
                background-color: #59a4f9;
                padding-bottom: 1px;
            }

            @media only screen and (max-width: 767px) {
                p{
                    padding: 10% 0 0 0;
                    font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
                    font-size: 45px;
                    font-weight:900;
                }
                img{
                    width: 600px;
                }
                .container{
                    margin: unset;
                }
            }
        </style>';
    }   

try {
    require __DIR__ . '/app/bootstrap.php';
} catch (\Exception $e) {
    echo <<<HTML
<div style="font:12px/1.35em arial, helvetica, sans-serif;">
    <div style="margin:0 0 25px 0; border-bottom:1px solid #ccc;">
        <h3 style="margin:0;font-size:1.7em;font-weight:normal;text-transform:none;text-align:left;color:#2f2f2f;">
        Autoload error</h3>
    </div>
    <p>{$e->getMessage()}</p>
</div>
HTML;
    exit(1);
}

$key = "0fb32560a639adbb2b05b27f920a3a08"; //encrypitamento do token
$expireCookie = 3600; // expira o cookie em 1h, para fazer uma nova consulta no TEKPROT
$configToken = "b2121-21445-454a-bb67-0f7d622123faf"; //Token do usuario
$configUrlWebservice = "http://ts.teksystem.com.br:9090/api/v1/"; //URL da api
$url = $configUrlWebservice . "auth"; //URL de autenticacao

if(!isset($_COOKIE["token"])){

    $tokenEncriptado = buscarUltimoTokenEncriptadoNoArquivo();

    if($tokenEncriptado != null){
        setcookie("token", buscarUltimoTokenEncriptadoNoArquivo() , -1, '/');
    }
}


if(isset($_COOKIE["token"]) && buscarUltimoTokenEncriptadoNoArquivo() != $_COOKIE["token"]){
    setcookie("token", buscarUltimoTokenEncriptadoNoArquivo(), -1, '/');
}


if(dataVerificacaoExpirada()){ //licenca invalida

    $result = buscaToken($configToken, $url);
    $encry = $result . $key ;
    $encry = base64_encode($encry);

    if($result){
 
        gravarUltimoTokenEncriptadoNoArquivoPassandoToken($key, $url, $configToken, $encry);

        setcookie("token", $encry, -1, '/');
        $result = validaIntegracao($configUrlWebservice, $result);

        gravarSeEcommerceEstaValidoNoArquivo($result);

        if($result){
            liberaMagento();
        }else{
            paginaErro("Erro de conexao - Liberacao");
        }

    }else{
        paginaErro("Erro de conexao - Token");
    }
}elseif (lerSeEcommerceEstaValidoNoArquivo()) {
    liberaMagento();
}else{
     paginaErro("Erro de conexao - Token");
}

 


ALTERE O CONFIG TOKEN:

$configToken = "b2121-21445-454a-bb67-0f7d622123faf";


PASSO 7

Acesse IP-DO-CLIENTE/phpmyadmin

Vá no repositorio: http://192.168.254.201/ecommerce-magento/inicializacao-scripts

Rode a sql procedure-implantacao.sql trocando pelas informações da empresa.
Depois rode a limpeza: procedure-limpa-pedidos-produtos.sql


Não se esqueça de colocar HTTP na url do host!


PASSO 8

Talvez precise instalar o sshpass.. entao olhe o tutorial

PASSO 9

Configure o backup automatico e aproveite para colocar no cron os scripts necessarios para rotina do magento:

http://tekwiki.teksystem.com.br/~teksys/tekwiki/index.php?title=BACKUP_CRON


PASSO 10

Adicionar caminho do arquivo e empresa em:

http://192.168.254.201/ecommerce-magento/acesso-ssh-mac-ou-linux/tree/master/Teksystem_scripts

PASSO 11

Instale o certificado gratuito lets encript:

http://tekwiki.teksystem.com.br/~teksys/tekwiki/index.php?title=Certificado_SSL_GRATUITO_LETS_ENCRIPT

ISIRA TODOS COMANDOS DE CRON AUTOMATICAMENTE

/home/ecommerce/Teksystem_scripts/ativa-todos-cron-por-tempo.sh

ATENCAO, NECESSARIO INSTALAR O PHP, SOMENTE O PHP SEM APACHE, RODE:

apt-get install php7.0-fpm

Dessa forma ele vai preencher os eventos sem você ter que ficar lembrando, mas note que o cron deve estar limpo de inserir isto pois ele vai duplicar a linha...