Skip to content

Instantly share code, notes, and snippets.

@raphaeldealmeida
Created September 13, 2024 00:22
Show Gist options
  • Save raphaeldealmeida/1015fee55b2288c1b9581f2527fdaa0e to your computer and use it in GitHub Desktop.
Save raphaeldealmeida/1015fee55b2288c1b9581f2527fdaa0e to your computer and use it in GitHub Desktop.
Instalar codeigniter 4 no IIS

O CodeIgniter vem com um arquivo .htaccess para rodar diretamente no servidor web Apache. Porém isso não funciona no IIS.

1 - Configurar as permissões no IIS

Abra o Gerenciador do IIS (IIS Manager).

Adicione um novo Website:

  • Clique com o botão direito em Sites e escolha Adicionar site.
  • Preencha os detalhes como o nome do site, caminho físico da sua aplicação (onde você colocou o CodeIgniter no servidor) e configure a porta.
  • Certifique-se de que o pool de aplicativos esteja configurado para rodar com a versão correta do PHP.

2 - web.config

Você precisa criar um arquivo web.config na raiz do seu projeto com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Remove index.php" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:0}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

3 - Configurações no arquivo .env

Certifique-se de que o baseURL no .env ou no arquivo app/Config/App.php esteja configurado corretamente para o seu domínio ou IP:

app.baseURL = 'http://seu-dominio-ou-ip/'
CI_ENVIRONMENT = production

4 - Permissões de diretórios

Garanta que o IIS tenha permissão de leitura e escrita nas pastas necessárias, como:

writable/ (logs, cache, etc.).

Você pode ajustar isso no Windows, clicando com o botão direito na pasta e em Propriedades > Segurança, adicionando as permissões necessárias para o usuário do IIS (geralmente IUSR ou IIS_IUSRS).

@SrVinicius
Copy link

Raphael, tudo bem? Muito obrigado pela ajuda! Todavia, estou recebendo o erro HTTP Error 403.14 - Forbidden. Realizei todos os passos comentados. Adicionei o arquivo web.config na pasta public. Tem alguma ideia do que pode ser?

@raphaeldealmeida
Copy link
Author

Pode ser a falta do módulo rewrite habilitado

Segue a primeira parte desse tutorial https://antoniojmsjr.medium.com/regrava%C3%A7%C3%A3o-de-url-no-iis-internet-information-services-4bb721708ba0

@SrVinicius
Copy link

Descobri o erro! Precisava apontar para o webroot, mas estava apontando para a raiz do projeto. Muito obrigado pela ajuda, Raphael!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment