Como instalar o Zen Cart.

O Zen-Cart é uma das ferramentas de comércio eletrônico (ecommerce), de código aberto, mais populares atualmente.
Neste artigo, vamos abordar a sua instalação/configuração em duas partes. zen cart comércio eletrônicoNuma delas, vamos baixar e instalar a infraestrutura de instalação do Zen Cart. Na segunda, vamos proceder com a instalação e configuração básica do ambiente de trabalho do software.
Mesmo que você já tenha feito o download do pacote de instalação do Zen-Cart, convém verificar se você já tem tudo para prosseguir com a aventura:

  • Nome/endereço do servidor FTP para o qual irá fazer upload dos pacotes de instalação;
  • Acesso ao banco de dados — a certa altura, serão pedidas informações sobre o banco de dados onde o Zen Cart será instalado. Anote o DB_NAME (nome do banco de dados), DB_USER (usuário do banco de dados), DB_PASS (senha de usuário) e DB_HOST (nome do servidor de banco de dados)
LEIA MAIS

A instalação

Se ainda não fez, você pode baixar o Zen Cart aqui.
Feito o download, copie ou faça o upload do pacote do Zen Cart pro diretório, dentro do servidor, em que será feita a instalação.
Aqui, neste artigo, vou usar o diretório /loja.

Criar os arquivos de configuração configure.php

Será necessário criar alguns arquivos de configuração no servidor. Se você já descompactou o pacote .zip (o que você baixou), localize o arquivo /loja/includes/dist/configure.php e mude suas permissões para 777 – o que permite que todos o possam ler, alterar e executar.
Localize, agora, o arquivo /loja/admin/includes/dist-configure.php. Renomeie-o para configure.php e mude suas permissões para 777.
Sem título1

Ajustando as permissões das pastas

Ao fazer upload, o servidor vai ajustar automaticamente algumas permissões de arquivos e pastas/diretórios. De modo geral, pastas terão suas permissões ajustadas para 755 e arquivos para 644. Estes valores são comuns à maioria dos servidores, mas podem ser diferentes no seu.
O Zen Cart vai precisar de permissão de escrita especial para poder usar adequadamente alguns arquivos e pastas.
As seguintes pastas precisam ter suas permissões alteradas para 777. Se vocẽ estiver usando um cliente FTP e este tiver o recurso de ajustar permissões recursivamente, use-o:

  • cache/
  • images/
  • includes/languages/english/html_includes/
  • media/
  • pub/
  • admin/backup/
  • admin/images/graphs/

O comando ficaria assim:
chmod -v 777 cache/ images/ includes/languages/english/html_includes/ media/ pub/ admin/backups/ admin/images/graphs/
Sem título2

Pre-requisitos para rodar o instalador

O instalador é relativamente inteligente e pode ser capaz de responder por conta própria as questões que seguem. Ainda assim, é recomendável que você verifique se ele está tomando o caminho adequado item a item.
Algumas informações básicas que você precisa ter disponíveis antes de prosseguir com a instalação:

  • O caminho correto (physical path do diretório em que o Zen Cart será instalado
    Exemplo: /home/meu_usuario/public_html/loja
  • O caminho Virtual HTTP ou o domínio completo onde a loja estará hospedada (URL domain)
    Exemplo: http://www.meudominio.com.br/loja
  • O servidor HTTPS Virtual (a URL segura para seu domínio)
    Exemplo: https://meudominio.nomedoservidorseguro.com.br/
  • O caminho virtual seguro HTTPS (a URL segura pro seu domínio e o diretório em que sua loja esta instalada)
    Exemplo: https://www.meudominio.com.br/loja

Leia na fase II como rodar o instalador automático do Zen Cart.

Magento: Baixe e instale via SSH.

magento-logo

introdução

Neste artigo, vamos abordar a instalação do Magento, via SSH, no seu site. Ou seja, vamos usar uma shell para fazer o download e deixar o aplicativo pronto para ser configurado em seu servidor.
O uso do SSH vai tornar este processo mais fácil e rápido e, como vamos fazer tudo no servidor, haverá, provavelmente, o benefício da velocidade de download de todo os pacotes necessários.
Dependendo das suas necessidades, os seguintes artigos também podem ser úteis:

Se o seu servidor já estiver pronto, com PHP, MySQL e uma senha para acesso SSH, siga em frente.

Instalação do pacote completo


wget http://www.magentocommerce.com/
downloads/assets/1.7.0.2/magento-1.7.0.2.tar.gz

(Substitua o número  1.7.0.2 nos comandos pela versão que você deseja instalar. Você pode ver os números das versões disponíveis para download na página do MagentoCommerce).
Feito o download, descompacte o arquivo dentro do diretório no qual o Magento será instalado:

tar -zxvf magento-1.7.0.2.tar.gz

No próximo comando moveremos o conteúdo da pasta Magento para o nosso diretório atual, onde estamos instalando o aplicativo:

mv magento/* magento/.htaccess .

Vamos alterar as permissões iniciais dos arquivos e diretórios do Magento:

chmod o+w var var/.htaccess app/etc
chmod -R o+w media

2013-05-23-1369341950_1024x1368
O comando para remover os pacotes de instalação, bem como o que restou de seus arquivos, é opcional – ou você pode deixar para fazer isto mais tarde, quando o seu site estiver configurado e funcionando bem:

rm -rf magento/ magento-1.7.0.2.tar.gz

Cluster MySQL: Glossário.

MySQL.svg

O que é um Cluster?

No sentido genérico, um cluster é um conjunto de computadores funcionando em unidade para realizar uma determinada tarefa.

Cluster (Imagem: WikiMedia.)
Cluster (Imagem: WikiMedia.)

Um Cluster NDB é um mecanismo de armazenamento, usado pelo MySQL, para implementar o armazenamento de dados, recuperação e gestão distribuída entre os vários computadores que compõem o sistema.

O que é um Cluster MySQL

O termo MySQL Cluster se refere a um grupo de computadores fazendo uso de um mecanismo NDB para dar suporte ao banco de dados em um arquitetura shared-nothing com um sistema de armazenamento em memória principal (in memory).

O que é arquitetura shared-nothing?

A tradução literal livre é “nada compartilhado” e se refere a um sistema de computação distribuída, com unidades auto suficientes, sem ponto crítico de falha e que não compartilham armazenamento em memória ou disco. (Fonte: Wikipedia.)

O glossário

Para melhor ajudar iniciantes que desejam aprender sobre como construir um cluster MySQL, seguem mais termos, de acordo com os manuais oficiais da Oracle. Note que a maioria dos termos se encontra em inglês – por que desejamos facilitar a vida de quem está buscando este glossário para entender melhor algum outro material em inglês.

Configuration files

São arquivos contendo diretivas de funcionamento e informações concernentes ao nosso cluster, seus hosts (unidades hospedeiras, anfitriãs) e seus nós. São lidos pelo sistema assim que o cluster é iniciado.

Backup

Uma cópia integral dos dados do cluster, suas transações e seus arquivos de log salvos em discos ou em outros dispositivos de armazenamento.

Restauro

Ato de levar o cluster a um estado préviamente salvo no backup.

Checkpoint

Grosso modo, quando os dados são gravados em disco, diz-se que chegamos a um checkpoint. No caso do Cluster, para sermos mais específicos, é um ponto no tempo em que todas as transações autorizadas já foram armazenadas em disco.
No que tange o mecanismo de armazenamento NDB, podemos citar dois tipos de checkpoints que trabalham em conjunto para assegurar que uma visão consistente dos dados do cluster seja mantida:

  • Local Checkpoint (LCP): Este é o checkpoint que se refere especificamente a um nó. Um LCP envolve a gravação de todos os dados de um nó no disco, o que ocorre a cada x minutos — o intervalo x varia em função de fatores tais como a quantidade de dados contida em cada nó, o nível de atividade do cluster, entre outros.
  • Global Checkpoint (GCP): Este ocorre a cada x segundos, quando as transações para todos os nós são sincronizadas e o redo-log é liberado pro disco.
Cluster host

Um computador que seja parte de um Cluster MySQL. Um cluster tem tanto uma estrutura física como lógica. Fisicamente, consiste de um conjunto de computadores (cluster hosts) ou hosts. Consulte os termos (node) ou grupo de nós (group nodes).

Node, cluster node

…ou , refere-se a uma unidade lógica ou funcional de um Cluster MySQL. Dentre do contexto do Cluster MySQL, usamos o termo antes para nos referir a um processo em vez de um componente físico.
Há 3 tipos diferentes de nós requeridos para implementar um Cluster MySQL funcional. São os seguintes:

  1. Management (MGM) nodes ou nós de gestão/gerenciamento:
    • organizam os outros nós dentro do Cluster MySQL;
    • fornecem dados de configuração aos outros nós;
    • iniciam e terminam nós (processos);
    • entre outras funções.
  2. Nós SQL (SQL nodes): instâncias do servidor MySQL que funcionam como front ends pros dados mantidos nos nós de armazenamento do cluster. Clientes que desejem armazenar, recuperar ou alterar dados podem acessar um nó SQL tal como se estivessem acessando qualquer outro Servidor MySQL — fazendo uso das APIs e dos métodos de autenticação costumeiros; a distribuição subjacente de dados entre os node groups é transparente entre os usuários e os aplicativos. Os SQL nodes acessam integralmente os dados no banco do cluster sem se “preocuparem” com a forma como se encontram distribuídos entre os diferentes nós de armazenamento ou cluster hosts.
  3. Data nodes: também conhecidos como storage nodes ou, em bom português (quanta pretensão da minha parte!), nós de dados ou nós de armazenamento. Enfim, a função destes nós é armazenar os dados reais. A tabela de dados fragmentados é guardada em um conjunto de node groups — cada qual guarda um subconjunto diferente da tabela de dados. Cada nó, sendo parte de um grupo de nós, armazena uma réplica do fragmento pelo qual o grupo é responsável. Atualmente, um único cluster pode carregar um total de 48 nós de dados;

Nada impede que mais de um nó coexistam em uma única máquina. Mais do que isto: é possível ter um cluster completo rodando dentro de uma única máquina — embora seja totalmente desaconselhável em um ambiente de produção, pode ser um cenário muito útil e até recomendável em um ambiente de aprendizado.
Lembre-se, no contexto de um Cluster MySQL, quando falamos em hospedeiros, ou hosts, nos referimos a um componente físico do cluster, no qual um nó é um compoente lógico ou funcional (ou seja, um processo).

Node group

Um conjunto de nós de dados (data nodes). Todos os nós de dados em um conjunto, contém os mesmos dados (fragmentos) e cada nó pertencente a um determinado grupo precisa estar hospedado em uma máquina diferente.

Node failure

Um Cluster MySQL não precisa de cada um de seus nós para funcionar. O cluster pode continuar rodando, mesmo com a falha de um ou mais nós. O número preciso de falhas em nós que um cluster pode tolerar depende do número total destes e das configurações do sistema.

Node restart

É o processo de reiniciar um dos nós do cluster que tenha falhado.

Initial node restart

É o processo de iniciar um nó cluster sem o seu sistema de arquivos. É útil em alguns casos de upgrade de software e em outras circunstâncias específicas.

System crash ou system failure

Falhas no sistema, como um todo, podem ocorrer em casos de haver tantos nós do cluster com erros que a estabilidade geral do sistema fica comprometida ou não pode ser mais garantida.

System restart

É o processo de reiniciar o cluster e seu estado a partir de logs de disco e checkpoints.

Fragmento

Uma porção de uma tabela. Em um mecanismo de armazenamento NDB, uma tabela é fracionada e armazenada em fragmentos. No Cluster MySQL as tabelas são fragmentadas para facilitar o balanceamento da carga entre máquinas e nós.
Nota: É possível encontrar o termo “partição” (partition) na documentação formal do MySQL, com o mesmo significado. No entanto, o termo recomendado é “fragmento” (fragment).

Replica

No mecanismo NDB de armazenamento, cada fragmento de tabela armazena os números de replicas contidos em outros nós de armazenamento — para manter a redundância. Atualmente, pode haver até quatro réplicas por fragmento.

Transporter

Protocolo que proporciona transferência de dados entre nós. O Cluster MySQL atualmente suporta até 4 tipos diferentes de transporter connections: TCP/IP (local), TCP/IP (remoto), SCI, e SHM.

  • O TCP/IP é, naturalmente, aquele mesmo protocolo que dá sustentação ao HTTP, FTP etc na Internet, que você já conhece;
  • O SCI (Scalable Coherent Interface) é um protocolo veloz usado na montagem de sistemas multiprocessador e aplicações de processamento paralelo. O uso deste protocolo com o Cluster MySQL requer hardware especializado;
  • SHM é sigla para Unix-style shared memory segments ou segmentos de memória compartilhada “no estilo do Unix”, em uma tradução literal.

Nota: O transporter do cluster é um protocolo interno. Aplicações usando o MySQL se comunicam com os nós SQL tal como o fazem com outras versões do MySQL Server (via TCP/IP ou Windows named pipes/Unix Sockets). Através de suas APIs padrão, podemos enviar queries e receber resultados.

NDB

Sigla para Network Database. Refere-se ao mecanismo de armazenamento usado para fazer funcionar o MySQL Cluster. O NDB suporta os tipos mais comuns de colunas e comandos MySQL, além de ser ACID-compliant. Este mecanismo também oferece suporte pleno a transações (commits e rollbacks).

share-nothing architecture

Conceito de arquitetura ideal para um Cluster MySQL. Em um ambiente genuinamente share-nothing, cada nó roda em um host separado. A vantagem desta concepção é que, nela, nenhum host ou nó pode sozinho derrubar ou se tornar um gargalo pras atividades do sistema como um todo.

In-memory storage

Toda informação armazenada em cada nó de dado é guardado na memória do computador em que este se encontra hospedado. Para cada nó de dados (data node) no conjunto, é necessário ter disponível uma quantidade de RAM igual ao tamanho dos dados multiplicado pelo número de replicas, dividido pelo número de nós de dados.
Para exemplificar, se o banco de dados ocupa um gigabyte de memória, e você deseja configurar o cluster com quatro replicas e 8 nós de dados, uma reserva de, no mínimo, 500 MB de memória será necessária por nó. Some a este valor os requisitos necessários para rodar o sistema operacional e os demais aplicativos da máquina.

Tabela

Como de hábito, no contexto de um banco de dados relacional, o termo “tabela” denota um conjunto ordenado de registros estruturados e idênticos. Em um Cluster MySQL, um banco de dados é armazenado em um nó de dados na forma de um conjunto de fragmentos — cada um dos quais é replicado em outros nós de dados. Este conjunto de dados, que reproduz o mesmo fragmento ou conjunto de fragmentos, é chamado de grupo de nós (node group).

programas do Cluster

São programas em linha de comando usados para rodar, configurar e administrar o Cluster MySQL. O que inclui ambos daemons de servidor:

  • ndbd – daemon que executa o processo de dados do nó;
  • ndb_mgmd – executa o servidor de gestão.
Programas clientes
  • ndb_mgm – O cliente de gestão (oferece uma interface para executar os programas de gestão)
  • ndb_waiter – Usado para verificar o status de todos os nós em um cluster
  • ndb_restore – Recupera dados do cluster do backup
Event log

O Cluster MySQL registra (log) os eventos por categoria (início, desligamento, erros, checkpoints etc.), prioridade e pela sua gravidade.
Os registros são divididos em 2 tipos:

  • Cluster log – mantém um registro de todos os eventos relacionados ao cluster, como um todo;
  • Node log – um registro (log) separado é criado e mantido para cada nó individualmente.

Sob circunstâncias normais, é necessário e suficiente manter e examinar apenas o log do cluster (cluster log). Os node logs, normalmente só são necessários para desenvolvedores de aplicativos e para fins de depuração.

Como instalar um servidor FTP no Linux Debian (vale pro Ubuntu também)

Instalar um servidor FTP é tão simples que eu não precisaria de mais de um parágrafo para tratar deste assunto objetivamente.
Mas este artigo vai falar além da instalação. Vou abordar alguns aspectos que surgem após a instalação e a configuração do FTP para que ele te sirva melhor.
As dicas aqui são voltadas para quem tem um sistema Linux baseado na distro Debian (é o caso do Ubuntu). Mas podem ser facilmente adaptadas a outras distros.

Como instalar o FTP

O servidor FTP do qual vamos tratar aqui é o popular proFTPd. Sua instalação pode ser feita em uma única linha de comando:

  • Abra uma terminal (Ctrl + Alt + T)
  • Dê o seguinte comando:sudo apt-get install proftpd

Durante o processo de instalação, o Debconf vai perguntar se você deseja usar o inetd ou o autônomo (versão em português). A última costuma ser a mais indicada para a maioria das pessoas – além do fato de que usar o inetd vai pedir outras configurações…

2013-04-22-1366655411_1024x600

Como configurar proftpd

Feita a instalação, alguns ajustes podem ser benvindos no arquivo de configuração. No Debian ele costuma ser /etc/proftpd/proftpd.conf. No Ubuntu ele é /etc/proftpd.conf.
Uma dica rápida: com o comando man proftpd você pode descobrir onde ficam os arquivos de configurações deste ou outro aplicativo, dentro da seção FILES.
apague-me-Sem título

O diretório home do usuário FTP

Para que cada usuário tenha acesso apenas aos seus próprios arquivos, descomente a linha
DefaultRoot ~.

Como permitir acesso anônimo ao servidor FTP

Há uma seção dentro do proftpd.conf  que trata disto. Normalmente, basta descomentar as linhas desta seção. Veja como está no meu arquivo. Se for o caso, adapte para as suas necessidades:

<Anonymous ~ftp>
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp

# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp

RequireValidShell off

# Limit the maximum number of anonymous logins
MaxClients 10

# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message

# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
<Limit>
<Directory>
</Anonymous>

Com estas opções os seus usuários poderão acessar o seu servidor como anonymous e ftp. Não poderão fazer uploads, apagar ou alterar arquivos. O acesso, neste caso, é só para leitura.

Mensagem de boas vindas

A mensagem de boas vindas (welcome message) do seu servidor proFTPd pode ser alterado em /home/ftp/welcome.msg. Trata-se de um arquivo de texto simples que é exibido pros usuários assim que autenticam.

Por último…

… mas, nem por isto, menos importante. Para que as alterações feitas ao arquivo de configuração tenham efeito, é necessário reiniciar o servidor FTP:
sudo /etc/init.d/proftpd restart

Divirta-se e não se esqueça de compartilhar! 😀