CodeIgniter 3 na Azure Websites
Estou usando faz um mês, a Microsoft Azure para meus projetos e estou curtindo bastante! Então, fui começar um projeto usando CodeIgniter 3 e me peguei em uns problemas usando ambiente PHP no IIS da Azure Websites: Conexão com o banco de dados (SQL Azure) e redirecionamento de “URL Amigáveis”.
Então, depois de algumas pesquisas, coloco aqui as configurações de como usar a conexão com o SQL Azure e também como ativar as URL amigáveis no IIS:
Conectando ao SQL Azure
Edite o arquivo application/config/database.php
e use conforme o exemplo abaixo (substituir os valores entre colchetes):
$db['default'] = array(
'dsn' => '',
'hostname' => 'sqlsrv:Server=tcp:[nome-do-servidor].database.windows.net,1433;Database=[banco-de-dados]',
'username' => '[username]',
'password' => '[password]',
'database' => '[banco-de-dados]',
'dbdriver' => 'pdo',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => TRUE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'Latin1',
'dbcollat' => 'SQL_Latin1_General_CP1_CI_AS',
'swap_pre' => '',
'autoinit' => TRUE,
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
Ativando as URL amigáveis
E para ativar as URL amigáveis, crie um arquivo web.config
dentro da pasta raiz do projeto e use o conteúdo do exemplo abaixo:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="CodeIgniter rewrite" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<handlers>
<remove name="PHP54_via_FastCGI" />
<add name="PHP54_via_FastCGI" path="*.php"
verb="GET, PUT, POST, DELETE, HEAD"
modules="FastCgiModule"
scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe"
resourceType="Either" requireAccess="Script" />
</handlers>
</system.webServer>
</configuration>
E era isso! Projeto instalado e rodando numa boa em um ambiente altamente escalável em nuvem! 😀