Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

Scripts para instalação do magento zipado no servidor
 
kanedasam
Jr. Member
 
Total Posts:  3
Joined:  2009-06-07
 

Ola Pessoal

Sou novato em php, mas já programo a um bom tempo, mas estou tendo dificuldades em finalizar um script de php para agilizar o tempo de instalação e, se necessário reinstalar o magento com rapidez. Pois o ftp do meu servidor e muito lento e fica uma eternidade para colocar o magento lá.

Na Verdade esta funcionando, so que preciso aumentar, de verdade, o timeout do meu script , e concertar algumas coisas.

O que estou fazendo e o zipar os diretórios do magento e descompactar no servidor dentro do diretório Magento :

404.zip
app.zip // este leva mais tempo e as vezes da timeout
downloader.zip
includes.zip
js.zip
lib.zip
media.zip
pkginfo.zip
report.zip
rootrmag.zip // Aqui esta os arquivos que ficam na raiz
skin.zip
var.zip

Neste diretório, Magento, aplico a permissão de escrita e coloco estes 3 scripts lá junto os arquivos zipados.

extract.php

<?
require_once('function.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Untitled Document</title>
<
style type="text/css">
<!--
#titulo {
    
color#FFF;
}
-->
</
style>
</
head>

<
body>


<
table width="707"  border="0" cellpadding="0" cellspacing="0">
<
tr
  <
td bgcolor="#666666" id="titulo"Arquivos ZIP </td>
  <
td bgcolor="#666666" id="titulo"Diretórios do Mesmo nome</td>
  <
td bgcolor="#666666" id="titulo"Ação</td>
</
tr>
<?
if ($arquivos != "")  {

    
foreach($arquivos as $listar)
     
{   
     $ext_file 
substr($listar,-4);
     
$nome substr($listar0, -4);
     
//filtra o tipo do arquivo 
     
if ($ext_file == ".zip")
     
{
         
//print " Arquivo: <a href='$listar'>$listar</a><br>";
        
echo '<tr>';
        echo 
'<td bgcolor="#CCCCCC">';
        echo 
$nome;
        echo 
'</td>';
         if (
recursive_array_search($nome,$pastas)) {
            
echo '<td bgcolor="#CCCCCC">Existe o Dirétorio - '.$nome.'</td>';
            echo 
'<td bgcolor="#CCCCCC">';
            echo 
'<form action="extract_process.php" method="post" enctype="multipart/form-data" name="form'.$nome.'" target="_self" id="form'.$nome.'">';
            echo 
'<input name="file" id="file" type="hidden" value="'.$nome.'" size="2"/>';
            echo 
'<input type="submit" name="action" id="action" value="Desinstalar" />';
            echo 
'</form>';
            echo 
'</td> ';
        
else {
            
echo '<td bgcolor="#CCCCCC">Não Existe Diretorio  - '.$nome.'</td>';
            echo 
'<td bgcolor="#CCCCCC">';
            echo 
'<form action="extract_process.php" method="post" enctype="multipart/form-data" name="form'.$nome.'" target="_self" id="form'.$nome.'">';
            echo 
'<input name="file" id="file" type="hidden" value="'.$nome.'" size="2"/>';
            echo 
'<input type="submit" name="action" id="action" value="Instalar" /> ';
            echo 
'</form>';
            echo 
'</td>';
            
        
}
          
echo '</tr>';
     
}

     }
    
         
}

?>

</table>

</
body>
</
html>

extract_process

<?php
require_once('function.php');
$workfile $_POST["file"];
$action $_POST["action"];

$to "extract.php";
if (
$action == "Desinstalar")
{
    rmdirr
($workfile);
    
header('Location: '$to); 
}
if ($action == "Instalar")
{
    unzip
($workfile.'.zip');
 
header('Location: '$to); 
}

?>

function.php

<?
set_time_limit
(180);
// Função que apagará o diretorio de forma recursiva
function rmdirr($dirname)
{
    
// Sanity check
    
if (!file_exists($dirname)) {
        
return false;
    
}

     
//Simple delete for a file
    
if (is_file($dirname) || is_link($dirname)) {
        
return unlink($dirname);
    
}

    
// Loop through the folder
    
$dir dir($dirname);
    while (
false !== $entry $dir->read()) {
        
// Skip pointers
        
if ($entry == '.' || $entry == '..'{
            
continue;
        
}

        
// Recurse
        
rmdirr($dirname DIRECTORY_SEPARATOR $entry);
    
}

    
// Clean up
    
$dir->close();
    return 
rmdir($dirname);
}

// Função que irá fazer a descompactação dos arquivos no diretório
function unzip($zipfile)
{
    $zip 
zip_open($zipfile);
    while (
$zip_entry zip_read($zip))    {
        zip_entry_open
($zip$zip_entry);
        if (
substr(zip_entry_name($zip_entry), -1) == '/'{
            $zdir 
substr(zip_entry_name($zip_entry), 0, -1);
            if (
file_exists($zdir)) {
                
//trigger_error('Diretorio "<b>' . $zdir . '</b>" já existe', E_USER_ERROR);
                
return false;
            
}
            mkdir
($zdir);
        
}
        
else {
            $name 
zip_entry_name($zip_entry);
            if (
file_exists($name)) {
              
//  trigger_error('Arquivo "<b>' . $name . '</b>" já existe', E_USER_ERROR);
                
return false;
            
}
            $fopen 
fopen($name"w");
            
fwrite($fopenzip_entry_read($zip_entryzip_entry_filesize($zip_entry)), zip_entry_filesize($zip_entry));
        
}
        zip_entry_close
($zip_entry);
    
}
    zip_close
($zip);
    return 
true;
}
// Função que irá fazer uma busca recursiva em uma array
function recursive_array_search($needle,$haystack
    
//Você pode receber este erro devido que local que o script esta rodando não tenha diretórios
    // mas isso não causa erro.
    //Warning: Invalid argument supplied for foreach() in /home/redfoxtecno/www/lojamod1/function.php on line 62
    
foreach($haystack as $key=>$value
        $current_key
=$key
        if(
$needle===$value OR (is_array($value) && recursive_array_search($needle,$value))) 
            
return true
        

    } 
    
return false




//unzip('magento.zip');
//$total=count($files = glob("{*.zip}", GLOB_BRACE));
//print_r("nessa pasta tem $total aruivos zipados <br>");
//print_r($files);
// pega o endereço do diretório
$diretorio getcwd(); 
// abre o diretório
$ponteiro  opendir($diretorio);
// monta os vetores com os itens encontrados na pasta
while ($nome_itens readdir($ponteiro)) {    $itens[] $nome_itens;}
sort
($itens);
// percorre o vetor para fazer a separacao entre arquivos e pastas 
foreach ($itens as $listar{
// retira "./" e "../" para que retorne apenas pastas e arquivos   
if ($listar!="." && $listar!="..")

// checa se o tipo de arquivo encontrado ÃƒÂ© uma pasta           
if (is_dir($listar)) 
// caso VERDADEIRO adiciona o item ÃƒÂ  variável de pastas            
$pastas[]=$listar;         } else{ 
// caso FALSO adiciona o item ÃƒÂ  variável de arquivos            
$arquivos[]=$listar;        }   }}
?>
 
Magento Community Magento Community
Magento Community
Magento Community
 
Carlos Teixeira
Sr. Member
 
Total Posts:  95
Joined:  2009-01-26
Brasil
 

@kanedasam

O jeito mais rápido de instalar o magento e via SSH verifique se sua hospedagem possui esse recurso e leia o conteúdo desse link:

http://www.magentocommerce.com/wiki/groups/227/installing_magento_via_shell_ssh

Caso ainda queira continuar usando o seu script vc precisa aumentar o valor do tempo máximo de execução de script do PHP, nem todas empresas de hospedagem liberam essa recurso em ambiente compartilhado…

<?
 ini_set
('max_execution_time'$tempoemsegundos);
?>
 
Magento Community Magento Community
Magento Community
Magento Community
 
Eric Cavalcanti
Guru
 
Avatar
Total Posts:  710
Joined:  2008-09-28
San Antonio
 

Pois eh, com o SSH instalo o magento em 2 minutos.
:D

 
Magento Community Magento Community
Magento Community
Magento Community
 
kanedasam
Jr. Member
 
Total Posts:  3
Joined:  2009-06-07
 

Blz Carlos Teixeira

Sem duvida nenhuma a solução do ssh e mais inteligente e rápida. Obrigado pela orientação e ajuda, funcionou perfeitamente.

 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top