Mostrando postagens com marcador sftp. Mostrar todas as postagens
Mostrando postagens com marcador sftp. Mostrar todas as postagens

TRANSFERÊNCIA DE ARQUIVOS NO PHP VIA SFTP / SSH

TRANSFERÊNCIA DE ARQUIVOS NO PHP VIA SFTP / SSH

Em um dado momento no desenvolvimento de um sistema, foi preciso criar uma função para transferir arquivo de um servidor para outro, sendo que o servidor só dava suporte a transferência de arquivos via SSH. Foi então que desenvolvi esta função que funcionou perfeitamente.

///////////ENVIO VIA SSH////////
                $serverHost = seusite.com.br;
                $serverUser = 'seuLoginSFTP';
                $serverPass = 'senhaDoLoginSFTP';
                $diretorioLocal = 'arquivoTemporario/meuArquivo.txt'
                $diretorioRemoto = 'var/www/diretorioDestinoServidorExterno/meuArquivo.txt';

                /* Faz a conexão com o servidor remoto */
                if (!$ssh = @ssh2_connect($serverHost, 22)) {
                     SingletonPDO :: rollbackTrans();
                    $xml .= "<erro>ERRO AO ABRIR CONEXÃO SSH COM SERVER $servidor!</erro>";
                    die("$xml\n");
                }

                /* Faz a autenticação no servidor remoto */
                if (!@ssh2_auth_password($ssh, $serverUser, $serverPass)) {
                     SingletonPDO :: rollbackTrans();
                    $xml .= "<erro>ERRO AO TENTAR AUTENTICAR O USUARIO SSH AO SERVER $serverHost!</erro>";
                    die("$xml\n");
                }

                /**
                 * Copia o arquivo do servidor local para o servidor remoto.
                 * As permissões são opcionais
                 */
                if (!@ssh2_scp_send($ssh, $diretorioLocal, $diretorioRemoto, 0644)) {
                     SingletonPDO :: rollbackTrans();
                    $xml .= "<erro>ERRO AO ENVIAR ARQUIVO VIA SSH AO SERVIDOR $servidor! - $diretorioLocal - $diretorioRemoto</erro>";
                    die("$xml\n");
                }

///////////////////////////////////////

CONFIGURAR FTP OU SFTP NO PHPSTORM

Para configurar o FTP ou o SFTP no PhpStorm, navegue até o menu

Tools -> Deployment -> Browse Remote Host

Na tela que se abre a direita dentro do PhpStorm, clique nos três pontinhos (...) pra entrar na tela de configuração.




No campo SFTP host, coloque o endereço host do seu servidor de arquivo remoto (Exemplo: 199.166.400.111 ou www.nomeServer.com), e depois preencha o campo Port(se precisar), User Name e Password, e clique no botão Test SFTP connection...(ao lado do campo SFTP host) para verifica se foi tudo preenchido corretamente. Caso o preenchimento esteja correto, dará uma mensagem de Successfully Connected ...

Na aba "Mappings", informe o diretório do seu projeto local, e informe o diretório do mesmo projeto local só que no servidor remoto de arquivos,  para que os mesmos fiquem sincronizados quando fizer uma alteração em um arquivo localmente, o mesmo após submetido ao repositório também seja automaticamente enviado para o servidor de arquivo remoto e assim substituir o arquivo pelo atualizado.


Clique em no botão OK, e pronto, seu projeto já está sincronizado com o projeto remoto.

Caso tenha alguma dúvida, deixe sua mensagem nos comentários que estarei respondendo.