Instalação automática via FTP

  • Identifique-se para criar novos tópicos neste fórum
  • Visitantes anônimos não podem postar neste fórum
Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

Vejam vocês mesmos:

http://Lucas.50free.org/copyxoops.

Essa é uma solução mais completa do que a anterior (apresentada neste tópico) para instalar o XOOPS de forma fácil e rápida. Independe de compatibilidade do servidor e deve funcionar na maioria dos casos. O maior problema deve ser encontrar um servidor para hospedar esse script, mas o 50free fucionou de forma excelente, porque não tem muitas restrições, nem excede o tempo de execução do script.

Fiz questão de mostrar na tela todo o processo de envio dos arquivos. Assim dá para se ter uma ideia do que está acontecendo.

Caso gostem da ideia, podemos desenvolvê-la (apesar de já ser uma solução quase completa) e divulgamos isso oficialmente.

Postem aqui seus resultados!

Salomão  Membro De: Brasília - DF - Brasil  Postagens: 503

Só não entendi direito a parte do diretório... No caso é o diretório remoto, mas varia bastante de acordo com cada host... Na 50free é OK, em outros eu não lembro...

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

O diretório varia dependendo de cada servidor. Atenção! Não é o necessáriamente path do script! Para saber qual o seu diretório de FTP, basta utilizar algum cliente e conferir. Acontece que muitas vezes o diretório visível para o público não é sempre o "/". Mutas vezes é algo parecido com "/www/" ou "/http_public/" ou "/domínio.com.br/", etc.

Já testei esse script no 50free.com, no dost.ro (muito lento) e no grátishost.com (do sponsoradulto.com).

Salomão  Membro De: Brasília - DF - Brasil  Postagens: 503

Na atlastelecom está OK, só não setou as permissões automáticas.
Só para constar, qual versão ele instala?

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

A versão é a 2.0.6 original em inglês, sem modificações.

Quanto às permissões, eu já pensei em dar o comando CHMOD automaticamente também, após o upload. Mas primeiro eu estou querendo saber se vale a pena trabalhar nessa ideia. Apesar de que em alguns servidores não é necessário mudar nenhuma permissão (acho que o instalador do XOOPS faz isso automaticamente).

Posso mudar o sistema para que automaticamente dê permissões 0755 para os scripts, 0644 para as imagens, 0770 para as pastas especiais, etc. Isso não seria muito complicado.

Esse recurso também pode ser útil para instalar automaticamente novos arquivos de idioma, módulos, temas e modificações.

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

Ah, tinha me esquecido!

Aqui está o código fonte desse script: copyxoops.zip.

Salomão  Membro De: Brasília - DF - Brasil  Postagens: 503

Lucas escreveu:
Ah, tinha me esquecido!

Aqui está o código fonte desse script: copyxoops.zip.

GPL?

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

Salomao escreveu:
GPL?

Sim, mas não recomendo utilizar a não ser que seja para testes. Lembrando que não é necessário ter o script para tirar proveito dele, já que eu o disponibilizei para uso livre a partir da minha conta no 50free.

Esqueci de mencionar que, ao utilizar o script, é necessário ter uma subpasta chamada "html" com os arquivos do XOOPS, dentro da mesma pasta dos scripts. É recomendável que os arquivos da subpasta "html" não tenham permissão para execução, caso ela esteja disponível para acesso através de um URL.

Salomão  Membro De: Brasília - DF - Brasil  Postagens: 503

É porque pretendo, assim que possível, alterar o script para fazer o upload já com as permissões para a 50free (é um saco fazer CHMOD recursivo sem programa que suporte), aí vejo se dá para melhorar ele...

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa tarde!

Lucas escreveu:
Esqueci de mencionar que, ao utilizar o script, é necessário ter uma subpasta chamada "html" com os arquivos do XOOPS, dentro da mesma pasta dos scripts...

Mais perguntas:

1- Os arquivos copyxoops.php e copyxoops.html ficam compartilhando a mesma pasta juntamente com admin.php, favicon.ico, index.php, normais do XOOPS?

2- O código fonte de "copyxoops.php" precisa sofrer alguma edição para funcionar no meu espaço, utilizando minha assinatura no 50free?

3- Fiz como acima citado e iniciei com http://matheus.50free.org/html/copyxoops.html:
Incluí FTP Host: atlastelecom.ro.
Diretório: /web.
Utilizador: augusto.
Senha;

Os dados acima foram previamente testados e funcionam via Cliente FTP. Ao executar seu script recebi esta mensagem de erro :
Conectando ao atlastelecom.ro, com o utilizador augusto... erro.

Não foi possível conectar ao servidor!
Confira se o FTP host, utilizador e senha estão corretos.

O que pode estar errado?

Atenciosamente.

Lehy

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

1- Os arquivos copyxoops.php e copyxoops.html ficam compartilhando a mesma pasta juntamente com admin.php, favicon.ico, index.php, normais do XOOPS ?

Os arquivos copyxoops.html (pode renomear para o que quiser, é só html) e copyxoops.php podem ficar em qualquer pasta e o XOOPS deve ficar numa subpasta chamada "html" dentro da mesma. A estrutura ficaria mais ou menos assim:

Pasta_qualquer.
...|- html (todos os arquivos do XOOPS aqui)
...|- index.php
...|- admin.php
...|- favicon.ico.
...|- etc.
...|- copyxoops.html
...|- copyxoops.php

2- O código fonte de "copyxoops.php" precisa sofrer alguma edição para funcionar no meu espaço, utilizando minha assinatura no 50free?

Se você vai utilizar no 50free, suponho que não seja necessário mudar nada. Mas, se quiser, você pode alterar a pasta onde os arrquivos de origem do XOOPS estão, alterando a variável $src_dir (por padrão = "html"). Em outros servidores, pede ser que esse script não funcione corretamente, porque pode dar server timeout. No 50free, curiosamente, isso não ocorre.

3- Fiz como acima citado e iniciei com http://matheus.50free.org/html/copyxoops.html:
Incluí FTP Host: atlastelecom.ro.
Diretório: /web.
Utilizador: augusto.
Senha;

Os dados acima foram previamente testados e funcionam via Cliente FTP. Ao executar seu script recebi esta mensagem de erro :
Conectando ao atlastelecom.ro, com o utilizador augusto... erro.

Não foi possível conectar ao servidor!
Confira se o FTP host, utilizador e senha estão corretos.

Essa mensagem significa que o PHP não conseguiu estabelecer uma conexão com o servidor FTP. Se você tem certeza absoluta de que todos os dados estão corretos, a única coisa que pode estar divergindo é a porta FTP do servidor. A porta desse servidor é a 21 (padrão)? Para utilizar portas deferentes, será necessário modificar algumas coisas no script.

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

Lehy escreveu:
Conectando ao atlastelecom.ro, com o utilizador augusto... erro.

Não foi possível conectar ao servidor!
Confira se o FTP host, utilizador e senha estão corretos.

Foi desatenção minha, o nome deveria ser atlastelecom.ro. Já fiz funcionar aqui, quem quiser experimente XOOPS português Brasileiro com módulos adicionais.

O interessante deste sistema é que você poderá dar o início e desligar seu equipamento, o processo fluirá ao nível de servidores.

Atenciosamente.

Lehy.

Salomão  Membro De: Brasília - DF - Brasil  Postagens: 503

A tradução é aquela do Mikhail?

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

Salomao escreveu:
A tradução é aquela do Mikhail?

Sim, tratava-se daquela que o Mikhail disponibilizou, a versão disponível no xoops.org dava erro ao descompactar.

Notei que a agenda piCal estava sem a tradução e incluí.

Porem removi aqueles módulos enormes , phpMyadmin e Jargon, removi também o xoopsfaq e agendax por redundância e renomeei o ".htaccess" do uploader porque com o ponto fica oculto e difícil de remover quando utilizamos cliente FTP for Windows.

Incluí os módulos tinycontent, freecontent, cadastros, friendfinder, horóscolo, MyAds, online, xcGal, XOOPSremguestbook e o tema do Lucastd(lucastd01).

Visando reduzir o tamanho e o tempo de instalação, removi todos os idiomas dos módulos, deixando apenas com dois, o Brasileiro e preferenciamente o inglês.

Hoje estou trocando pela tradução que disponibilizaram aqui no XOOPS, curiosamente o módulo piCal continua sem nosso idioma, corrigi também.

Atenciosamente.

Lehy

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

Lucas escreveu:
...O maior problema deve ser encontrar um servidor para hospedar esse script, mas o 50free fucionou de forma excelente, porque não tem muitas restrições, nem excede o tempo de execução do script.

Numa execução da minha versão adaptada, conforme detalhei anteriormente, excedeu o tempo de execução do servidor, transferindo de 50free para 50free.

Talvez esta solução, associada com o uso de arquivo compactado executado com PCLTAR, MaxgComp TAR Class ou ainda associada com a solução "xoopsmoleza", resolva tudo: dificuldades com servidores, tempo de execução, espaço ocupado, etc.

Atenciosamente.

Lehy

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

Estive estudando o PCLZIP.

No início achei que seria estimulante dissecar o código PHP e retirar apenas as funções que interessava, mas a seguir refleti,e em nome da produtividade:
Porque não utilizar um programa tão útil como o objeto a que se propõe ?

Meu forte não é o PHP, "mesmo", com intuito de agilidade alguém pode montar-me um código para uma função myPostExtractCallBack" que faça o seguinte (eu entendi que pode ser colocado qualquer comando PHP numa "Call Back"):

1) Criar uma "flag" de operação de sistema, antes de chamar PCLZIP, para pré definir se o servidor é Microsoft Windows ou Linux;

2) Colocar na Call Back um comportamento conforme a "flag": em sistemas Linux ajuste os atributos para seus CHMOD corretos, 555 para ".GIF", ".JPG", "gif", "jpg", ".PNG" e ".png", 755 ".PHP", ".php", ".html" e ".HTML" e finalmente 770 para as pastas "template_c", "cache", "upload" e o arquivo "mainfile.php".

3) a seguir qualquer outra função necessária, e que eu possa ter esquecido, necessária à instalação do XOOPS.

Eis o código sugerido pelo portal, para a função "myPostExtractCallBack".


Function myPreExtractCallBack($p_event, &$p_header) { ... }

Function myPostExtractCallBack($p_event, &$p_header)
{
// ----- look for valid extraction.
If ($p_header['status'] == 'ok') {
// ----- read the file estou the standard output.
Readfile($p_header['filename']);
// ----- delete the file.
Unlink($p_header['filename'])
}
}

$list = $archive->extract(PCLZIP_OPT_PATH, 'temp',
PCLZIP_CB_PRE_EXTRACT, 'myPreExtractCallBack',
PCLZIP_CB_POST_EXTRACT, 'myPostExtractCallBack');
?>


Se pudéssemos utilizariar o PCLTAR mesmo, e não o PCLZIP que acabei traduzindo seria melhor em termos de espaço nos servidores. Os arquivos ".tgz" sempre ficam bem menores que os ".zip". Mas me pareceu que PCLTAR não suporta funções "Call Back".

Passo-lhes o que traduzi, por onde constatei que trata-se de uma espécie de programa PKZIP para utilizar no portal, porém com muitos mais recursos.
cada arquivo PKZIP é representado por um objeto da classe PclZip. Quando criamos um arquivo PclZip (ou objeto da classe PclZip), o nome do arquivo é associado ao objeto. Neste momento o arquivo não é verificado, nem lido, ele pode até nem existir imediatamente.
Exemplo:

Require_once('pclzip.lib.php');
$archive = new PclZip("archive.zip");
?>


O container é manipulado utilizando-se um método público associado ao objeto PclZip. Para criar um container, quando ele não existe, o método 'create()' deve ser utilizado com uma lista de arquivos e/ou pastas como parametro.

Caso o container já exista seu conteúdo será manipulado pelo método 'listContent()' ou 'extract()'.

2 - Parametros e argumentos.

Cada método tem seus próprios argumentos. Estes podem ser determinantes ou opcionais. Exemplo :

Require_once('pclzip.lib.php');
$archive = new PclZip('archive.zip');
$v_list = $archive->add('dev/file.txt',
PCLZIP_OPT_REMOVE_PATH, 'dev');
?>


Aqui o primeiro parâmetro 'dev/file.txt' é determinante, enquanto 'PCLZIP_OPT_REMOVE_PATH, ...' é opcional.

Alguns métodos podem também ser chamados através de uma lista variável contendo argumentos opionais :

$list = $archive->extract(PCLZIP_OPT_PATH, "folder",
PCLZIP_OPT_REMOVE_PATH, "data",
PCLZIP_CB_PRE_EXTRACT, "callback_pre_extract",
PCLZIP_CB_POST_EXTRACT, "callback_post_extract");
?>


Neste exemplo os arquivos serão extraídos na pasta 'folder', e as informações do caminho ou path, aqui denominado 'data' serão ignoradas quando existirem.

Também, antes de cada extração de um arquivo simples do container, é chamada uma função de retorno, cujo nome é
Fornecido pelo utilizador (aqui 'callback_pre_extract()'). Esta função confere habilidade para trocar o caminho o nome do arquivo que está sendo extraído, ou saltar sua extração por motivo pré definido.
No final da extração do arquivo uma outra função de retorno é executada, conferindo a facilidade para o utilizador especificar uma ação para o arquivo extraído, antes de iniciar a extração do próximo arquivo do container.

$list = $archive->extract(PCLZIP_OPT_PATH, "folder",
PCLZIP_OPT_REMOVE_ALL_PATH);
?>


Aqui os arquivos foram extraídos na pasta 'folder' e toda a informação de caminho armazenado para os arquivos foram ignoradas no geral, até mesmos quando diferentes. Com este recurso o utilizador não precisa especificar o local exato do arquivo.
A ser removido, ou em caso de extrações, ficará tudo armazenado em uma só pasta.

Estes pequenos exemplos mostram como a lista de variáveis de opções funciona. Recursos ampliados com um pequeno preço na complexidade. Fica fácil entender esses novos recursos, sem trocar o formato das notações de todos os os métodos.

A definição de argumentos, seus usos e restrições são descritos na seção "Optional Variable Parameters". Na descrição de cada método, quando existe a opção da lista, ela será indicada.

- Valores retornados.

Os valores de retorno variam de mótodo para método. Eles são descritos em cada resumo de método.
No entanto a maioria retorna "0" se der erro (e confiugura a flag variável com "error", ou ainda, uma sequência de caracteres informa o sucesso na extração de cada arquivo.
Cada entrada da "array" informa "arquivo' ou "pasta", algumas destas propriedades e "status" da última ação executada no arquivo.

Cada arquivo é descrito pelos seguintes argumentos :

filename.

Nome do arquivo.
Para adicionar, este é o nome dado quando chamamos o método.
Para extrair é utilizado o nome real (não o nome armazenado no ontainer).

Stored_filename.

Armazena nome do arquivo.

Size.

Tamanho real do arquivo.

Compressed_size.

Tamanho ocupado no container (sem o cabeçalho)

Mtime.

Última modificação, data e hora (data em formato UNIX)

Comment.

Commentários associados com cada arquivo.

Folder.

True | false : Indicando o nome do arquivo ou da pasta.

Index.

Índice do arquivo no container (quando configurado).

Content.

Conteúdo do arquivo a extrair. Este linha só estará presente quando o argumento PCLZIP_OPT_EXTRACT_IN_STRING estiver ativo.

Status

Resultado da ação (depende do tipo de ação tomada).
Os valores são :

ok.

Significa "OK !"

Filtered.

O arquivo/pasta não foi extraído(filtrado pelo utilizador).

Already_a_directory.

O arquivo não foi extraído porque existia uma pasta com o mesmo nome.

Newer_exist.

O arquivo não foi extraído porque um arquivo com mesmo nome já existia e era mais novo.

Write_protected.

O arquivo não foi extraído porque um arquivo com mesmo nome já estava protegido contra escrita.

Path_creation_fail.

O arquivo não foi extraído porque uma pasta com mesmo nome já existia e causou falha de criação.

Write_error.

O arquivo não foi extraído porque houve erro de escrita, falta de espaço normalmente.

Read_error.

O arquivo não foi extraído porque houve erro de leitura, container corrompido normalmente.

Invalid_header.
O arquivo não foi extraído porque houve o cabeçalho estava errado, normalmente erro de CRC

Skipped.

O arquivo não foi extraído ou não foi adicionado por obediência a uma função de retorno criada pelo utilizador que assim determinva.
(Recurso introduzido na versão 1.3)

Filename_too_long.

O arquivo não foi extraído por possuir nome muito longo, acima de 255 caracteres.(Recurso introduzido na versão 1.3)

Atenciosamente.

Lehy.

Fernando  Iniciante   Postagens: 3

Bom, achei muito legal a ideia do LucasTSD e acho que isso deve ser levado adiante, inclusive com as permissões e talz... legal disponibilizar isso em um servidor confiável e colocar um endereço aqui no XOOPS.
Quanto ao PCLZIP, pelo que entendi é uma alternativa (melhor, mas mais complicada) de se fazer a mesma coisa proposta no começo deste tópico.
Vou dar uma analisada nele (um arquivo apenas... mas com 206Kb de puro texto) e ver se vale à pena no XOOPS.

Valker Vacilão Silva  Iniciante De: Brasília - DF - Brasil  Postagens: 17

no sábado estava testanto o http://matheus.50free.org/xoops/copyxoops.html. Achei muito lento e acabei cancelando.

Gislaine  Ocasional   Postagens: 36

Bom, achei muito legal a ideia do LucasTSD e acho que isso deve ser levado adiante, inclusive com as permissões e talz... legal disponibilizar isso em um servidor confiável e colocar um endereço aqui no XOOPS.
Quanto ao PCLZIP, pelo que entendi é uma alternativa (melhor, mas mais complicada) de se fazer a mesma coisa proposta no começo deste tópico.
Vou dar uma analisada nele (um arquivo apenas... mas com 206Kb de puro texto) e ver se vale à pena no XOOPS.

Olha, acho que vale mesmo dar uma boa olhada, estou super enrolado mas muito interessado neste andamento.
Veja lá meu rapaz e avisa nóis

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

Vacilão escreveu:
No sábado estava testanto o http://matheus.50free.org/xoops/copyxoops.html. Achei muito lento e acabei cancelando.

Realmente é lento, essa rotina é para você clicar, ir almoçar e voltar mais tarde. Pode até desligar seu micro. Essa é a falha do sistema até o momento.

Mas com a utilização do PCLZIP o upload não será feito dos arquivos um a um e sim do container o que será muito mais rápido, algo em torno de 10 minutos em conexão 56kbps.

E após o upload, o próprio código pode executar o PCLZIP devidamente acompanhado por uma função Call Back que fará as identificações do que está sendo extraído, reagindo caso a caso através de uma simples função de multi escolha.

Digo simples por acreditar que o seja, pelo meu conhecimento de outras linguagens de script, mas não programo em PHP ainda.

Outra vantagem é que o PCLZIP estará sendo executado pelo próprio servidor destino dos arquivos explodidos, o que aumenta o tempo de descompactação e diminui as chances de "time-out".

ão final basta remover o arquivo container juntamente com a pasta "install"

Atenciosamente.

Lehy

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa noite!

... Quanto ao PCLZIP, pelo que entendi é uma alternativa (melhor, mas mais complicada) de se fazer a mesma coisa proposta no começo deste tópico.

Realmente melhor e mais complicada, este trecho da tradução indica isso
... pequenos exemplos mostram como a lista de variáveis de opções funciona. Recursos ampliados com um pequeno preço na complexidade...

Atenciosamente.

Lehy

cyber_geek  Iniciante   Postagens: 19

kara sou novo em XOOPS e estava com dificuldades para enviar os arquivos para meu FTP devido a minha conexao ser discada, adorei a ideia parabens se precisar de mim tou aqui para ajudar.

Tenho uma dica:
Deveria ter opção de escolher o que se pretende enviar tipow só os módulos e que módulos ou só tal arquivo assim ajudaria caso desse algum erro durante o envio completo.

Obrigado pessoal...

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Bom dia!

cyber_geek escreveu:
Kara sou novo em XOOPS e estava com dificuldades para enviar os arquivos para meu FTP devido a minha conexao ser discada, adorei a ideia parabens se precisar de mim tou aqui para ajudar.

Realmente para quem possui linha discada o processo chega a ser angustiante. O upload pode demorar horas. E este processo pode vir a ser um estado-de-arte em termos de instalação.

Quanto à sua ideia de modular o upload é bem interessante. Criando-se um log da tarefa pode-se saber exatamente o que foi realizado.

Este mesmo log pode ser utilizado pelo PCLTAR que simplesmente efetuará um skip a cada componente localizado no arquivo log.

Volta a ênfase da pequena complexidade para obter-se um valor agregado muito grande ao conjunto.

E parece pequena mesmo, lembra-me o tempo do PKZIP em DOS, depois que se utiliza torna-se muito simples.

Quem entender um pouquinho de PHP pode nos presentear com uma boa rotina para call back. Precisamos incrementar esta solução iniciada pelo Lucas.

Atenciosamente.

Lehy.

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

Assim que eu tiver tempo, vou tentar desenvolver um pouco mais essa ideia. Já pensei em algumas novas funções que podem ser acrescentadas a esta solução, proporcionando uma instalação mais personalizada do XOOPS. O maior problema é ter um servidor suficientemente capaz de rodar esse tipo de script (sem timeout, rápido, com funções de FTP habilitadas etc.). O 50free, mesmo com os cadastros suspensos, está servindo de forma excelente para isso, mas não se sabe até quando poderemos contar com ele, além das limitações de espaço em disco e transferência mensal.

Lehy Matheus  Participativo De: Ponta Grossa  Postagens: 132

Boa tarde!

Lucas escreveu:
... O maior problema é ter um servidor suficientemente capaz de rodar esse tipo de script (sem timeout, rápido, com funções de FTP habilitadas etc.). O 50free, mesmo com os cadastros suspensos, está servindo de forma excelente para isso...

Quanto a isso acredito que não teremos problemas. Nosso colega Silvio Palmieri, nos ofereceu serviços de servidor rápido, sem custos para XOOPS e Moodle.

Atenciosamente.

Lehy

Lucas T. D. S.  Ocasional De: Recife - Pernambuco - Brasil  Postagens: 30

lehy escreveu:
Quanto a isso acredito que não teremos problemas. Nosso colega Silvio Palmieri, nos ofereceu serviços de servidor rápido, sem custos para XOOPS e Moodle.

Huuummm... Interessante... Então como fazemos para utilizar esses recursos?

  Pesquisa avançada






Entrada

Codinome:


Senha:





Perdeu a senha?  |Cadastre-se!


Quem nos visita
Há 29 visitantes neste momento... (19 na seção Fóruns)

Associados: 0
Anônimos: 29

outros...

Banner XOOPS Cube