Como instalar e configurar o Magento no Ubuntu 14.04
Introdução
Magento é o sistema de gerenciamento de conteúdo mais popular para sites de comércio eletrônico. Ele é usado por pequenas e grandes empresas e pode ser aprimorado por milhares de extensões e temas. O Magento usa o sistema de banco de dados MySQL, a linguagem de programação PHP e partes do Zend Framework.
Neste tutorial, veremos como instalar o Magento com um servidor web Apache no Ubuntu 14.04, incluindo algumas configurações comuns de desempenho e segurança ao longo do caminho.
Pré-requisitos
Antes de começar com este guia, há algumas etapas que precisam ser concluídas primeiro.
Devido às demandas de processamento das operações do Magento, é recomendável que você instale o Magento em um VPS com pelo menos 2 GB de RAM. Isso garantirá que todo o software envolvido no gerenciamento da loja tenha memória suficiente para funcionar.
Você precisará de acesso a um usuário não raiz que tenha privilégios sudo
. Se você ainda não fez isso, pode executar o guia de configuração inicial do servidor Ubuntu 14.04 para criar esta conta.
Além disso, você precisará ter uma pilha LAMP (Linux, Apache, MySQL e PHP) instalada em sua instância VPS. Se você ainda não possui esses componentes instalados e configurados, pode usar este guia para aprender como instalar o LAMP no Ubuntu 14.04.
Ao terminar essas etapas, você pode se conectar ao seu servidor Ubuntu como usuário não root e continuar com a instalação do Magento.
Passo 1 — Configurar Apache e PHP
Antes de baixar e instalar o Magento, o Apache e o PHP precisam ser configurados para lidar adequadamente com o tráfego e as tarefas de computação do Magento, e alguns módulos adicionais precisarão ser instalados e ativados.
Servidor Virtual Apache
Primeiro, precisamos configurar um arquivo de host virtual para que o Apache saiba como gerenciar nosso site Magento corretamente. Podemos usar nosso editor de texto para criar um novo arquivo de host virtual em /etc/apache2/sites-available/
. Neste exemplo, o host virtual é chamado de magento
, mas você pode nomeá-lo de outra forma, se preferir.
sudo nano /etc/apache2/sites-available/magento.conf
As necessidades de host virtual do Magento são bastante simples. Comece com uma tag
que escuta todo o tráfego da porta 80, a porta HTTP padrão. Em seguida, adicione uma linha informando ao Apache onde encontrar os arquivos do seu site com a diretiva DocumentRoot
:
<VirtualHost *:80>
DocumentRoot /var/www/html
</VirtualHost>
Precisamos adicionar alguns parâmetros adicionais para que o Magento funcione corretamente. Dentro de uma tag
apontando para a raiz do nosso documento, inseriremos as opções de indexação de diretório do Apache, suporte a links simbólicos e suporte multilíngue. Também adicionaremos uma linha que permite que os arquivos .htaccess
substituam as configurações do Apache, o que fornece um controle mais refinado de pastas individuais.
. . .
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
. . .
Com todos esses componentes instalados, seu arquivo de host virtual ficará assim:
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>
Quando terminar de escrever o bloco do servidor, salve e feche o arquivo. Para ativar o novo site com Apache, use o comando a2ensite
:
sudo a2ensite magento.conf
Também queremos desabilitar o host virtual padrão que acompanha o Apache, pois ele entrará em conflito com nosso novo host virtual. Para desabilitar um site com Apache, use o comando a2dissite
:
sudo a2dissite 000-default.conf
Configurações do PHP
Em seguida, precisamos alterar quanta memória o Apache concede aos processos PHP. O Magento usa PHP para quase tudo o que faz e precisa de uma quantidade decente de memória para operações complexas, como indexação de produtos e categorias. Por padrão, o PHP aloca no máximo 128 MB de memória para cada script executado no Apache. Devemos aumentar esse limite para um valor razoável para garantir que nenhum dos scripts do Magento fique sem memória, o que causaria a falha do script.
Abra o arquivo de configuração PHP do Apache com seu editor de texto e privilégios de root:
sudo nano /etc/php5/apache2/php.ini
Encontre a seguinte linha, que declara o limite de memória por script PHP:
memory_limit = 128M
Altere essa linha para que o limite seja aumentado para 512 MB. A necessidade de memória da sua loja pode ser maior dependendo do número de produtos em seu catálogo e do número de visitantes que você recebe diariamente. Algumas lojas maiores precisam definir seu limite de memória para 2 GB ou mais, mas 512 MB devem ser adequados por enquanto.
memory_limit = 512M
Nota: Certifique-se de usar \M no final do número da memória.
Quando terminar de fazer essa alteração, salve e feche o arquivo. Na próxima vez que você reiniciar o Apache, a alteração do limite de memória entrará em vigor.
O Magento precisa de alguns módulos PHP além dos que vêm com o PHP. Podemos obtê-los diretamente dos repositórios padrão do Ubuntu após atualizarmos nosso índice de pacotes local:
sudo apt-get update
sudo apt-get install libcurl3 php5-curl php5-gd php5-mcrypt
Essas extensões permitirão que o Magento lide adequadamente com solicitações HTTP, miniaturas de imagens e criptografia de dados. Agora que temos todos os pacotes de que precisamos, podemos ativar o suporte de reescrita de URL para Apache e o suporte de criptografia para PHP:
sudo a2enmod rewrite
sudo php5enmod mcrypt
Depois de feitas todas essas alterações de configuração e extensão, é hora de reiniciar a instância do servidor Apache para que as alterações sejam aplicadas:
sudo service apache2 restart
Etapa 2 — Crie um banco de dados MySQL e um usuário
O Magento usa um banco de dados MySQL para gerenciar dados do site, como informações de produtos e pedidos. Temos o MySQL instalado e configurado, mas precisamos fazer um banco de dados e um usuário para o Magento trabalhar.
Comece fazendo login na conta root do MySQL:
mysql -u root -p
Você será solicitado a fornecer a senha da conta root do MySQL, que você definiu quando instalou o MySQL. Depois que a senha correta for enviada, você receberá um prompt de comando do MySQL.
Primeiro, criaremos um banco de dados no qual o Magento pode gravar dados. Neste exemplo, o banco de dados será chamado magento
, mas você pode nomeá-lo como preferir.
CREATE DATABASE magento;
Nota: Cada instrução do MySQL deve terminar com um ponto e vírgula (;
), portanto, verifique se você incluiu isso se estiver enfrentando algum problema.
Em seguida, vamos criar uma nova conta de usuário MySQL que será usada exclusivamente para operar no novo banco de dados. Criar bancos de dados e contas de uma função é uma boa ideia, pois permite um melhor controle de permissões e outras necessidades de segurança.
Vou chamar a nova conta de magento_user
e atribuir a ela uma senha de password
. Você definitivamente deve usar um nome de usuário e senha diferentes, pois esses exemplos não são muito seguros.
CREATE USER magento_user@localhost IDENTIFIED BY 'password';
Neste ponto, você tem um banco de dados e uma conta de usuário que são feitos especificamente para Magento. No entanto, o usuário não tem direitos de acesso ao banco de dados. Precisamos vincular os dois componentes concedendo privilégios de acesso de usuário ao banco de dados:
GRANT ALL PRIVILEGES ON magento.* TO magento_user@localhost IDENTIFIED BY 'password';
Agora que o usuário tem acesso ao banco de dados, precisamos liberar os privilégios para que o MySQL saiba sobre as recentes alterações de privilégio que fizemos. Feito isso, podemos sair do prompt de comando do MySQL.
FLUSH PRIVILEGES;
exit
Agora você deve estar de volta ao seu prompt de comando SSH normal.
Passo 3 — Baixe e configure os arquivos Magento
Agora estamos prontos para baixar e instalar o Magento. Para ver qual é a versão estável mais recente do Magento Community Edition, acesse a página de download da comunidade. Neste exemplo, o número da versão atual era 1.9.0.1, mas você deve substituir esse número pela versão mais recente disponível para você. É sempre recomendável usar a versão mais recente do Magento, pois os novos lançamentos geralmente incluem atualizações de segurança importantes, além de recursos novos e aprimorados.
Use wget
para baixar o arquivo Magento para seu diretório pessoal:
cd ~
wget http://www.magentocommerce.com/downloads/assets/1.9.0.1/magento-1.9.0.1.tar.gz
Podemos extrair os arquivos arquivados para reconstruir o diretório Magento com tar
:
tar xzvf magento-1.9.0.1.tar.gz
Agora você terá um diretório chamado magento
em seu diretório pessoal. Precisamos mover os arquivos descompactados para a raiz de documentos do Apache, onde podem ser servidos aos visitantes do nosso site. Usaremos rsync
para transferir nossos arquivos Magento para lá, já que rsync
incluirá arquivos ocultos importantes como .htaccess
. Assim que a transferência for concluída, podemos limpar nosso diretório inicial excluindo a pasta magento
e arquivá-la.
sudo rsync -avP ~/magento/. /var/www/html/
rm -rf ~/magento*
rsync
copiará com segurança todo o conteúdo do diretório que você descompactou para a raiz do documento em /var/www/html/
. Agora precisamos atribuir a propriedade dos arquivos e pastas ao usuário e grupo do Apache:
sudo chown -R www-data:www-data /var/www/html/
Essa alteração permitirá que o Apache crie e modifique arquivos Magento. Agora estamos prontos para concluir o processo de instalação por meio da interface de configuração baseada em navegador do Magento.
Etapa 4 — Concluindo a instalação por meio da interface da Web
Para acessar a interface da web com seu navegador, navegue até o nome de domínio do seu servidor ou endereço IP público:
http://server_domain_name_or_IP/
Se as etapas anteriores foram seguidas corretamente, você será apresentado ao assistente de instalação do Magento. A primeira página exibirá o contrato de licença, com o qual você precisará concordar antes de clicar em Continuar.
A próxima página é onde você pode alterar suas configurações de localidade, como idioma, fuso horário e moeda. Altere-os para as configurações mais apropriadas para onde seus produtos estão sendo vendidos e clique em Continuar.
A página de configuração é dividida em três seções. A primeira seção é onde você pode configurar como o Magento se conecta ao seu banco de dados MySQL. Certifique-se de que o Tipo de banco de dados esteja definido como \MySQL e o Host esteja definido como \localhost. Você precisará preencher o nome do banco de dados, nome de usuário e senha do usuário com as configurações que você decidiu ao criar o banco de dados MySQL e a conta de usuário anteriormente.
A próxima seção na página de configuração é onde você pode configurar o URL da sua loja, juntamente com algumas outras funções controladas pelo Apache. Certifique-se de que o URL base corresponda ao nome de domínio do seu servidor; se você ainda não tiver um nome de domínio configurado, poderá usar o endereço IP público do seu servidor por enquanto. É uma boa ideia alterar o Admin Path para algo menos óbvio do que \admin para tornar mais difícil para alguém encontrar seu painel de administração. Você também deve considerar a opção Usar reescritas do servidor da Web (Apache) para tornar as URLs do seu site mais amigáveis para usuários e mecanismos de busca. O módulo Apache necessário para suportar esta funcionalidade, mod_rewrite
, já foi ativado e está pronto para uso.
A última parte da página de configuração é para selecionar o método de armazenamento de dados da sessão. O Magento vem com dois métodos para salvar os dados da sessão do usuário. O método File System armazena sessões em arquivos no servidor e é o método mais simples para começar. O método Database armazena sessões como entradas no banco de dados MySQL e é ideal para instalações Magento que abrangem vários servidores. Por enquanto, podemos ficar com o método do sistema de arquivos, já que geralmente terá um desempenho melhor.
Depois de selecionar suas opções de configuração e clicar em Continuar, você passará para a página de criação da conta de administrador. É aqui que você criará a conta administrativa responsável pela manutenção da loja Magento. Certifique-se de que o nome de usuário e a senha sejam seguros e difíceis de adivinhar. O campo Chave de criptografia deve ser deixado em branco, a menos que você esteja migrando dados de uma instalação existente do Magento. Se você deixar o campo em branco, o Magento irá gerar uma nova chave de criptografia quando você clicar em Continuar e irá exibi-la para você na próxima página. Certifique-se de salvar essa chave de criptografia em algum lugar seguro, caso precise dela para fins de migração posteriormente.
Depois de concluir a configuração baseada na web, sua instalação do Magento estará pronta para uso. Confira sua nova vitrine visitando o nome de domínio do seu servidor ou endereço IP público em seu navegador:
http://server_domain_name_or_IP/
Se tudo foi configurado corretamente, você deve ser presenteado com uma vitrine parecida com esta:
Você também pode visitar seu novo site de administração acessando o diretório de administração definido anteriormente:
http://server_domain_name_or_IP/admin/
Faça login com seu nome de usuário e senha de administrador para ver seu novo painel:
Conclusão
Agora que sua loja Magento está funcionando, você está pronto para começar a criar seu catálogo de projetos e começar a vender!
Um próximo passo crítico para criptografar o tráfego do site com um certificado SSL. Aqui está um guia para ajudá-lo a começar: Como instalar um certificado SSL de uma autoridade de certificação comercial.