Habilitando a opção Multi Site do WordPress 3.0

Ter em um mesmo domínio diversos sites, poder gerenciar todos de forma simplificada e ainda possibilitar o acesso individual é um trabalho que até pouco tempo atrás demandava horas de planejamento e muito mais de programação.

A partir do WordPress 3.0, a antiga versão MU que auxiliava no processo de instalação múltipla foi incorporada à versão bastando somente ser habilitada ao fim da instalação normal.

Proceda normalmente com a instalação simples do WordPress 3.0.

Na raiz da sua instalação, abra o arquivo wp-config.php e acima da linha que diz:

/* Isto é tudo, pode parar de editar! */

Digite:

define('WP_ALLOW_MULTISITE', true);

Para dar continuidade no processo é importante que todos os plugins estejam desativados. Feito isso acesse o menu Ferramentas e verá que surgiu um novo link chamado Rede. Acesse este link e com atenção preencha as informações pedidas.

  • Título da Rede
  • Endereço de email do administrador
  • Opção subdomínio ou pasta relativa (se for uma instalação localhost este item não aparecerá, a opção padrão é pasta relativa).

Para este processo eu não vou utilizar subdomínio que necessita de outros requisitos e caso tenha interesse pode ver mais a respeito em http://codex.wordpress.org/Create_A_Network.

Clique em instalar.

Neste ponto é importante que faça o backup do seu arquivo wp-config.php e .htaccess, se for a primeira instalação ou ainda não tiver customizado a sua instalação, provavelmente não terá ainda o arquivo .htaccess.

Crie abaixo da pasta wp-content uma nova pasta e dê o nome de blogs.dir. É importante que essa pasta tenha permissão de leitura e escrita (chmod 777).

Conforme descrito no item 2 da página de instalação, adicione ao arquivo wp-config.php, logo acima da linha:

/* Isto é tudo, pode parar de editar! */

o conteúdo do box branco que deve ser parecido com este:

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', '*******' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

Adicione também as chaves de autenticação exibidas no segundo box:

define( 'AUTH_SALT', '******************************' );
define( 'SECURE_AUTH_SALT', '******************************' );
define( 'LOGGED_IN_SALT', '*******************************' );
define( 'NONCE_SALT', '*****************************' );

Crie ou edite o arquivo .haccess que está na raiz da sua instalação e adicione o conteudo do terceiro box:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

Agora, se você acessar seu painel administrativo verá que foi criado um grupo de links com o título Super-Admin. Neste grupo de links que você vai gerenciar os sites que serão criados.

Criando um repositório SVN para controle de versão

A utilização do SVN no windows é bem fácil, visto que temos o software Tortoise que gerencia todo o processo, até mesmo a criação do repositório. No Mac eu não encontrei um software com a mesma capacidade, então tive que enfrentar a utilização via linha de comando.

Apesar de haver diversos sites demonstrando o passo-a-passo, algumas particularidades acabaram gerando erros, por este motivo resolvi anotar alguns passos em que sempre gerava transtorno.

Crie uma pasta para gerenciar todos os versionamentos, por exemplo, Documents/SVN. Acesse o terminal, siga até a pasta criada e digite:

usuario:SVN usuario$ svnadmin create repositorio

Lembrando que você deve substituir “repositorio” pelo nome do seu projeto.

usuario:SVN usuario$ cd repositorio/
usuario:SVN usuario$ svn import /Users/usuario/Sites/projeto  file:///Users/usuario/Documents/SVN/repositorio/ -m "importacao inicial"

A partir deste ponto o seu terminal deverá importar todos os arquivos da pasta onde está o seu projeto. Após a importação esta pasta já não terá mais função e poderá ser deletada, entretanto é melhor guardar até que o processo esteja completamente finalizado.

Crie a pasta onde ficará a sua cópia de trabalho, juntamente com as pastas trunk, branches e tags. Pelo terminal vá até a sua pasta trunk e digite o comando:

usuario:SVN usuario$ svn checkout file:///Users/usuario/Documents/SVN/projeto/

Se todo o procedimento foi executado sem erros você verá a mensagem de confirmação: Checked out revision 0. A partir deste ponto é só gerenciar o seu versionamento adicionando novos arquivos, deletando os antigos ou recuperando uma versão antiga.

Modo multiloja no Magento

A utilização do Magento para a confecção de lojas virtuais, já é indiscutivelmente a melhor opção para se ter um e-commerce robusto, personalizado, seguro e funcional.
Uma dentre as várias opções disponíveis no Magento é o modo multiloja que permite que você tenha lojas diferentes e gerencie pelo mesmo backend, possibilitando fazer o tráfego de produtos entre uma loja e outra.

Em que isso pode ajudar no seu e-commerce? Imagine que você tenha produtos antigos no seu site e queira fazer uma queima de estoque. Ao invés de encher o seu site com banners com promoções e descontos, você pode criar uma versão outlet do seu site, transferindo para ele os produtos que já não são do seu interesse manter em estoque. Ou então para que não se misturem produtos distintos como venda de livros e sapatos na mesma loja.

Isso auxilia, de certa forma, no rankeamento do seu site vendo que ao serem procurados em sites de busca o seu link é visto como relevante.

Interessou? Então vou reproduzir abaixo uma das formas que utilizei para habilitar o modo multiloja e que acredito ser a menos complexa.

Vamos supor que queira criar a versão outlet do seu site com o Magento instalado e configurado.

  1. Acesse a pasta onde o Magento está instalado (onde você encontra as pastas app, var, entre outras).
  2. Crie a pasta outlet (ou com o nome correspondente a nova loja).
  3. Copie para esta pasta os arquivos index.php e .htaccess encontrados no mesmo nível onde criou a pasta outlet.
  4. Abra o arquivo index.php e edite a linha 45, onde está escrito $mageFilename = ‘app/Mage.php’; altere para $mageFilename = ‘../app/Mage.php’; para corresponder ao arquivo que se encontra dento da pasta app da sua instalação do Magento.
  5. Edite também a linha 75, onde está escrito $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ”; coloque um nome de identificação da sua loja, como $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ‘outlet.
  6. Acesse o painel de controle do Magento, vá em Manage Categories, crie uma nova categoria Root e nomeie significativamente, como Root Outlet. Você pode aproveitar este momento para criar as novas subcategorias do Root da sua loja.
  7. Acesse o menu System / Manage Stores.
  8. Clique em Create Website. Dê um nome significativo e em code, coloque o mesmo nome de identificação da loja registrado no item 5, neste caso, outlet e clique em salvar.
  9. Clique em Create Store. Selecione o Website criado no item anterior, nomeie significativamente e selecione a Categoria Root criada no item 6 e clique em salvar.
  10. Por fim, clique em Create Store View, selecione a loja criada no item anterior, nomeie significativamente, em code insira o nome de identificação registrado no item 5, e selecione no status Enable e clique em salvar.

Agora acesse o endereço principal do seu site /nome de identificação da sua loja, neste caso /outlet. Você deve encontrar o site com o design global mas sem nenhum produto registrado. Para inserir produtos nessa loja o procedimento é o padrão, exceto que na guia para categorizar você deve escolher as categorias que estão abaixo do Root correspondente ao seu site.

Para configurar os sites separadamente utilize o dropbox no canto superior esquerdo para selecionar a view da sua loja ao invés da opção padrão que é Default Config. Ainda em outras partes do backend do site podem ser selecionados opções para utilização global ou em determinada loja.

Ainda existem outras formas de configurar o multiloja, por exemplo utilizando subdomínios, que são um pouco mais complexas, mas nada que se diferencie completamente destes parâmetros iniciais.

Erro 403 Forbidden usando MAMP para Mac

No desenvolvimento de páginas para web é muito comum utilizar parâmetros de reescrita de url utilizando o mod_rewrite do Apache. Alguns desses parâmetros podem interferir no funcionamento do MAMP, assim como XAMPP e outros packs LAMP.

Um desses erros possíveis é o erro 403, que corresponde de modo geral a uma tentativa de acesso proibida (mais informações sobre o erro 403 em http://en.wikipedia.org/wiki/HTTP_403). Este erro nega o acesso ao phpmyadmin e às demais páginas gerenciadas pelo MAMP.

A forma que encontrei para corrigir este erro foi bem simples. Pare todos os serviços. Não basta só fechar o aplicativo, tem que clicar em “Stop Servers” e aguardar o encerramento. Em seguida, por meio do aplicativo TextWrangler, que permite editar arquivos do sistema, acessei Applications/MAMP/conf/apache, abri o arquivo httpd.conf e a partir da linha 371 você tem o seguinte trecho de código:

# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#

Options Indexes FollowSymLinks
AllowOverride All

Simplesmente altere a diretiva AllowOverride All para AllowOverride None, salve e inicie os serviços novamente. Isto já será suficiente para resolver esse pequeno problema de erro 403.