Eu sempre gostei do PHP para criar páginas dinâmicas.
No entanto, instalar o PHP em uma máquina com Windows sempre foi uma espécie de dor no caminho. É possível instalar o PHP usando o Microsoft Web Platform Installer, mas eu prefiro instalar o PHP manualmente, porque se algo der errado usando o Web Installer é muito, muito difícil de corrigir, mas os erros em uma instalação manual são mais fáceis de rastrear.
Existem cinco etapas básicas para instalar o PHP em uma máquina Windows com IIS:
- Faça o download do Microsoft Visual C++ Redistributable 2012 e 2015
- Ative (se necessário) o IIS na máquina e o IIS-CGI na máquina
- Faça o download e extraia o PHP para “C:\PHP”
- Configure o IIS para manipular as solicitações da página PHP
- Configure o arquivo de configuração do php.ini
- Teste tudo
Minhas instruções são altamente abreviadas e destinam-se a alguém que tenha uma familiaridade média com o Windows e o IIS.
1. Download Microsoft Visual C++ Redistributable 2012 e 2015
A primeira coisa que você deve fazer é realizar download do Visual C++ abaixo e instalar no servidor, o PHP tem dependência desses pacotes da Microsoft, se você pular essa epata você vai receber a mensagem de erro ao executar o PHP no ISS.
Visual C++ Redistributable for Visual Studio 2012 Update 4
Visual C++ Redistributable for Visual Studio 2015
Se você não instalar o pacotes citados acima o erro será o seguinte na execução do PHP:
“C:\PHP\php-cgi.exe – The FastCGI process exited unexpectedly”
2. Configurar o IIS
Painel de controle | Programas | Adicionar ou Remover Programas
Verifique e ative o IIS | Serviços da World Wide Web | Recursos de desenvolvimento de aplicativos | CGI
3. Instale a versão de 64 bits NTS (non-thread safe) do PHP
Baixe a versão do PHP 7x non-thread safe.
64 bits:
https://windows.php.net/downloads/releases/php-7.3.2-nts-Win32-VC15-x64.zip
32 bits:
https://windows.php.net/downloads/releases/php-7.3.2-nts-Win32-VC15-x86.zip
Se tiver problemas no download basta acessar o site oficial: http://windows.php.net
O que significa thread safety quando estou fazendo o download do PHP?
Thread Safety significa que o binário pode trabalhar em um contexto de servidor web multithread, como o Apache 2 no Windows. Thread Safety funciona criando uma cópia local em cada thread, de modo que os dados não colidirão com outra thread.
Então como eu escolho? Se você escolher rodar PHP como binário CGI, então você não precisa do thread safe, porque o binário é chamado a cada requisição. Para servidores web multithread, como o IIS5 e IIS6, você deve usar a versão thread do PHP.
Extraia todo o conteúdo do arquivo zip para “C:\PHP”
Agora edite a variável System PATH em variáveis de ambiente para que o IIS saiba onde estão os executáveis PHP:
Incluir o caminho: “C:\PHP”
4. Configure o arquivo php.ini .
Faça uma cópia do arquivo “C:\PHP\php.ini-development” e salve-o como “C:\PHP\php.ini”
Edite o arquivo php.ini encontrando as seguintes entradas, descomente-as e altere os valores para:
fastcgi.impersonate = 1
cgi.fix_pathinfo = 0
cgi.force_redirect = 0
open_basedir = “C:\inetpub\wwwroot”
extension_dir = “ext”
error_log=”php_errors.log”
Descomente as entradas abaixo do Windows Extensions:
extension = php_bz2.dll
extension = php_gd2.dll
extension = php_oci8_12c.dll
extension = php_curl.dll
extension = php_fileinfo.dll
extension = php_ftp.dll
extension = php_gettext.dll
extension = php_gmp.dll
extension = php_intl.dll
extension = php_imap.dll
extension = php_interbase.dll
extension = php_ldap.dll
extension = php_mbstring.dll
extension = php_exif.dll
extension = php_mysqli.dll
extension = php_openssl.dll
extension = php_pdo_firebird.dll
extension = php_pdo_mysql.dll
extension = php_pdo_oci.dll
extension = php_pdo_odbc.dll
extension = php_pdo_pgsql.dll
extension = php_pdo_sqlite.dll
extension = php_pgsql.dll
extension = php_shmop.dll
Salve o arquivo php.ini editado .
5. Configurar o IIS para trabalhar com PHP
Abra o IIS (inetmgr) e configure conforme o print.
Acesse a opção: Handler Mappings -> Add Module Mapping
Request path: *.php
Module: FastCgiModule (from the dropdown)
Executable (optional): C:\PHP\php-cgi.exe
Name: FastCGI
6. Teste a instalação e configuração
Abrir o bloco de notas com privilégios administrativos.
Crie um arquivo phpInfo.php e salve-o em “C: \inetpub\wwwroot”.
Dentro do arquivo phpInfo insira o comando abaixo:
<?php phpinfo(); ?>
Agora, abra um navegador e navegue até
OBS: Não se esqueça que o IIS busca os documentos padrões, você precisa adicionar os documentos “index.php” e “default.php” como padrão do IIS para que ele possa buscar esses padrões automaticamente como documentos default.
🙂