CakePHP Brasil

24 maio 2008

Instalação recomendada (mais segura)

Arquivado em: Tutoriais — Tags:, , , — Juan Basso @ 3:01 pm

Quando vamos instalar nossas aplicações em um servidor, temos o costume de pegar todo o conteúdo e jogar dentro de uma pasta ou direto na raiz do servidor de web. Digitamos o endereço e lá está nossa aplicação rodado no servidor! Uau! Porém, não é bem assim que devemos fazer. Em ambiente de desenvolvimento até podemos fazer, pois não temos nada tão seguro assim e é mais fácil para nós trabalharmos, mas para ambiente de produção recomenda-se fazer de outra maneira.

Colocar os diretórios app (ou o nome que você deu), cake e vendors dentro de um local não visível ao público (na maioria dos servidores de hospedagem, é a pasta fora de public_html ou www). Feito isso, mover o conteúdo da pasta app\webroot para o local público que você deseja que apareça. Por exemplo, se você quiser http://site/minhaapp/, coloque os arquivos da webroot (.htaccess, index.php, pastas img, js, css, …) dentro de public_html/minhaapp/.

Após feito isso, abrir o arquivo index.php para configurar o local que a pasta da sua aplicação está e onde está o cake também. Vamos supor que coloquei minha pasta app e cake dentro da pasta ’site’, sem visibilidade ao público (no mesmo nível de public_html) e que coloquei os arquivos de webroot na raiz do meu domínio (direto em public_html ou www), ficando da seguinte estrutura:

/
	site/
		app/
		cake/
	public_html/

No lugar de:

1
define('ROOT', dirname(dirname(dirname(__FILE__))));

Vamos substituir por:

1
define('ROOT', dirname(dirname(__FILE__)) . DS . 'site');

Com isso, ele informa que os diretórios de cake e app estão a um nível inferior e dentro de site.

Depois, substituir:

1
define('APP_DIR', basename(dirname(dirname(__FILE__))));

Por:

1
define('APP_DIR', 'app');

Assim informamos o nome da nossa pasta app. Ele irá procurar dentro de ROOT . APP_DIR.

Pronto! Alteramos o diretório dos nossos arquivos e não há perigo deles serem vistos pelo público. Assim se o Apache deixar de reconhecer os arquivos .php, o máximo que as pessoas verão é o index.php que não trás muita informação e ninguém rouba suas regras de negócio, login de banco de dados, etc.

Isto também está documentado no manual:

Powered by WordPress