O que fazer após instalar o wordpress?

Plugins

DB Backup – Efetua automaticamente o backup das tabelas da sua instalação wordpress. Recomendado utilizar a opção de enviar por backup por email e nunca usar a opção para salvar em pasta no seu servidor.

Maintenance Mode – Exibe uma mensagem de manutenção  para todos os usuários, exceto para os administradores.

Search & Replace – Efetua pesquisas em seu banco de dados e substitui de acordo com a opção configurada.

Clean WP Dashboard – Desabilita opções do dashboard para facilitar a vida do seu cliente.

WP No Category – Reescreve a url para tirar o /category/ do link. Atenção pois com a desativação de categoria pode ocorrer conflitos entre páginas e categorias.

wp-config.php

Para que toda vez que você precise atualizar o WordPress ou seus plugins, não seja solicitada se senha de ftp. Abra o wp-config.php e acrescente as seguintes linhas:

define('FTP_BASE', '/suainstalacaowordpress');
define('FTP_CONTENT_DIR', '/suainstalacaowordpress/wp-content/');
define('FTP_PLUGIN_DIR', '/suainstalacaowordpress/wp-content/plugins/');
define('FTP_USER', 'login');
define('FTP_PASS', 'senha');
define('FTP_HOST', 'ftp.seusite.com.br');
define('FTP_SSL', false);

Para sobrescrever a url do seu site sobre o informado no banco de dados utilize:

define('WP_SITE_URL', 'http://www.seusite.com.br');
define('WP_HOME', 'http://www.seusite.com.br');

Neste ponto é interessante utilizar o plugin search & replace para procurar pela url antiga nos seus posts e definições da base de dados. Lembrando que sempre que for utilizar este plugin faça o backup da base de dados.

define('FTP_CONTENT_DIR', '/suainstalacaowordpress/wp-content/');

Projeto Básico com Zend Tool

Existem uma série de diferenças na composição de um projeto com o Zend Framework e em cada fonte que se procura, é visto uma solução diferente.

Baseado nas minhas pesquisas, estou anotando abaixo uma sequência inicial para a configuração de um projeto inicial com o Zend Framework.

Estou levando em conta que a Zend Tool já está corretamente configurada no sistema. Então abra o prompt (windows) ou o terminal (mac/linux), navegue até a pasta onde será criado o seu projeto e digite:

zf create project helloworld

A Zend Tool neste ponto deve ter criado a estrutura do seu projeto, mas é necessário fazer algumas adaptações para um melhor aproveitamento e desempenho.

Abra o arquivo public/.htaccess e acrescente esta linha no início do arquivo:

SetEnv APPLICATION_ENV development

Crie uma pasta modules dentro de application, em seguida crie uma pasta default dentro de modules e mova os diretórios controllers e views para dentro dela.

É preciso ajustar algumas configurações antes de testar o seu projeto. Abra o arquivo application.ini e substitua a linha:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

por:

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

Aproveitando que estamos tratando do frontController, adicione a variável de ambiente.

resources.frontController.env = APPLICATION_ENV

Adicione um include path para a pasta models logo abaixo do include para os arquivos do ZF.

includePaths.library = APPLICATION_PATH "/../library"
includePaths.models = APPLICATION_PATH "/models"

Inclua também o caminho da sua view e o encoding da sua aplicação.

resources.view.basePath = APPLICATION_PATH "/modules/default/views"
resources.view.encoding = "UTF-8"

Teste agora o seu projeto digitando http://localhost/helloworld/public/

Para adicionar um novo módulo, vá até a pasta modules e digite:

zf create module [nome-do-módulo]

Para adicionar um controller e uma view ao módulo digite:

zf create controller [nome_do_controller] 1 [nome-do-módulo]

Isto já é suficiente para ter um projeto básico rodando.

Como configurações adicionais ao application.ini podemos inserir

resources.frontController.controllerDirectory = APPLICATION_PATH "/modules/default/controllers"
resources.frontController.defaultModule = "default"
resources.frontController.baseUrl = "/" 

Mas até o momento não achei necessário utilizar, pois o módulo default sempre vai ser o default, indicar o defaultModule seria útil se decirmos usar outro módulo como padrão. O encoding você precisa estar atento na criação das suas views e quando salvar o seu arquivo. E os demais apontamentos de pastas já são executados normalmente pelo ZF, portanto até agora sem necessidade de indicar.

Instalação do Magento

A instalação do magento é bem fácil de executar, exceto por algumas particularidades que podem acarretar dificuldades no processo e são essas particularidades que pretendo focar nesta anotação.

Faça do download da versão Full Release mais recente em http://www.magentocommerce.com/download, neste momento a mais recente é a 1.4.1.1.

Descompacte e faça o upload dos arquivos para o seu servidor ou para a pasta que será usada no seu localhost.

Enquanto o processo de descompactação e transferência é executado, acesse o seu phpmyadmin e crie uma base de dados, neste momento não precisa se preocupar com o collation pois a própria instalação do Magento toma conta de fazer o setup correto.

Acesse a pasta onde copiou os arquivos do Magento e dê permissão de leitura e escrita (chmod 777) para as seguintes pastas e arquivos:

  • app/etc
  • media e subpastas
  • var
  • var/.htaccess
  • .htaccess

Após copiado todos os arquivos e criada a base de dados acesse pelo seu browser o endereço em que copiou os arquivos de instalação do Magento, algo como http://www.seusite.com.br/magento ou http://localhost/magento e aparecerá a tela inicial da instalação.

Aceite o contrato e clique em continue.

Selecione o País (Locale), Fuso (Time Zone) e Moeda (Default Currency). Caso não tenha feito a ajuste de permissões corretamente, o magento não guardará as opções selecionadas, mas se quiser pode deixar as opções padrão e posteriormente configurar no menu administrativo do Magento. Clique em continue.

Preencha o campo Host. Normalmente usa-se localhost, entretanto alguns provedores utilizam bases de dados com endereços ou números de IP fixo, preencha o campo com esses dados sem o http:// e sem a última barra do endereço.

No campo database digite o nome do banco de dados criado no início do processo, seguido dos campos Username (login) e Password (senha) do banco de dados utilizado. Em Table Prefix pode deixar em branco, mas para efeito de organização da sua base de dados, você pode utilizar um prefixo para as tabelas do Magento como mag_  assim todas as 310 tabelas do magento iniciarão com este prefixo facilitando a visualização do grupo de tabelas.

Na tela seguinte entre com as suas informações pessoais e atente para o endereço de email pois caso perca a sua senha será com ele que poderá recuperá-la. Cadastre o seu Username e Senha mas não utilize o mesmo da base de dados para termos mais segurança no projeto. Confirme a senha  e no campo Encription Key, digite alguma frase ou sequência de caracteres alfanuméricos. Esse campo será usado para as chaves de segurança do Magento. Clique em continue.

Se tudo foi efetuado corretamente você verá a tela de finalização da instalação. Copie e guarde o seu Encryption Key e clique nos botões Go to frontend para ver a sua loja padrão funcionando ou clique em Go to Backend para fazer o login no módulo administrativo.

Neste ponto verifiquei que as instalações em localhost geram alguns problemas como não efetuar o login recarregando a página sem nenhuma mensagem de erro.

Algumas das soluções que encontrei foi:

  • Usar http://127.0.0.1 no lugar de http://localhost/
  • Editar o arquivo app/etc/local.xml alterando a linha

    para

    
    
  • Ou editar o arquivo do core app/code/core/Mage/Core/Model/Session/Abstract/varien.php e comentar o seguinte trecho:
    // session cookie params
    $cookieParams = array(
      'lifetime' = $cookie->getLifetime(),
      'path'     = $cookie->getPath()/*,
      'domain'   = $cookie->getConfigDomain(),
      'secure'   = $cookie->isSecure(),
      'httponly' = $cookie->getHttponly()*/
    );
    

Com isso acredito já ser possível iniciar os trabalhos com a sua instalação do Magento.

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.