{"id":13669,"date":"2019-02-14T18:22:01","date_gmt":"2019-02-14T20:22:01","guid":{"rendered":"http:\/\/gianfratti.com\/?p=13669"},"modified":"2020-08-11T19:41:10","modified_gmt":"2020-08-11T22:41:10","slug":"instalando-o-php-no-iis","status":"publish","type":"post","link":"https:\/\/gianfratti.com\/index.php\/instalando-o-php-no-iis\/","title":{"rendered":"Instalando o PHP no IIS"},"content":{"rendered":"<p style=\"text-align: left;\"><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php-elephant.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-13684 size-full aligncenter\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php-elephant.jpg\" alt=\"\" width=\"600\" height=\"337\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php-elephant.jpg 600w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php-elephant-300x169.jpg 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a>Eu sempre gostei do PHP para criar p\u00e1ginas din\u00e2micas.<\/p>\n<p style=\"text-align: left;\">No entanto, instalar o PHP em uma m\u00e1quina com Windows sempre foi uma esp\u00e9cie de dor no caminho.\u00a0\u00c9 poss\u00edvel 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 \u00e9 muito, muito dif\u00edcil de corrigir, mas os erros em uma instala\u00e7\u00e3o manual s\u00e3o mais f\u00e1ceis de rastrear.<!--more--><\/p>\n<p><strong>Existem cinco etapas b\u00e1sicas para instalar o PHP em uma m\u00e1quina Windows com IIS:<\/strong><\/p>\n<ol>\n<li>Fa\u00e7a o download do Microsoft Visual C++ Redistributable 2012 e 2015<\/li>\n<li>Ative (se necess\u00e1rio) o IIS na m\u00e1quina e o IIS-CGI na m\u00e1quina<\/li>\n<li>Fa\u00e7a o download e extraia o PHP para &#8220;C:\\PHP&#8221;<\/li>\n<li>Configure o IIS para manipular as solicita\u00e7\u00f5es da p\u00e1gina PHP<\/li>\n<li>Configure o\u00a0<span class=\"skimlinks-unlinked\">arquivo de<\/span>\u00a0configura\u00e7\u00e3o\u00a0do\u00a0<span class=\"skimlinks-unlinked\">php.ini<\/span><\/li>\n<li>Teste tudo<\/li>\n<\/ol>\n<p>Minhas instru\u00e7\u00f5es s\u00e3o altamente abreviadas e destinam-se a algu\u00e9m que tenha uma <strong>familiaridade m\u00e9dia com o Windows e o IIS<\/strong>.<\/p>\n<h2><b>1. Download Microsoft Visual C++ Redistributable 2012 e 2015<\/b><\/h2>\n<p>A primeira coisa que voc\u00ea deve fazer \u00e9 realizar download do Visual C++ abaixo e instalar no servidor, o PHP tem depend\u00eancia desses pacotes da Microsoft, se voc\u00ea pular essa epata voc\u00ea vai receber a mensagem de erro ao executar o PHP no ISS.<\/p>\n<p><a href=\"https:\/\/www.microsoft.com\/en-us\/download\/confirmation.aspx?id=30679\" target=\"_blank\" rel=\"noopener noreferrer\">Visual C++ Redistributable for Visual Studio 2012 Update 4<\/a><br \/>\n<a href=\"https:\/\/www.microsoft.com\/en-us\/download\/confirmation.aspx?id=48145\" target=\"_blank\" rel=\"noopener noreferrer\">Visual C++ Redistributable for Visual Studio 2015<\/a><\/p>\n<p>Se voc\u00ea n\u00e3o instalar o pacotes citados acima o erro ser\u00e1 o seguinte na execu\u00e7\u00e3o do PHP:<br \/>\n<strong>&#8220;C:\\PHP\\php-cgi.exe &#8211; The FastCGI process exited unexpectedly&#8221;<\/strong><\/p>\n<h2><b>2. Configurar o IIS<\/b><\/h2>\n<p>Painel de controle |\u00a0Programas | Adicionar ou Remover Programas<\/p>\n<p>Verifique e ative o IIS |\u00a0Servi\u00e7os da World Wide Web |\u00a0Recursos de desenvolvimento de aplicativos |\u00a0CGI<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13674 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_01.jpg\" alt=\"\" width=\"437\" height=\"670\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_01.jpg 437w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_01-196x300.jpg 196w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/a><\/p>\n<hr \/>\n<h2><b>3. Instale a vers\u00e3o de 64 bits NTS (non-thread safe) do PHP<\/b><\/h2>\n<p>Baixe a vers\u00e3o do PHP 7x\u00a0non-thread safe.<\/p>\n<p>64 bits:<br \/>\n<a href=\"https:\/\/windows.php.net\/downloads\/releases\/php-7.3.2-nts-Win32-VC15-x64.zip\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/windows.php.net\/downloads\/releases\/php-7.3.2-nts-Win32-VC15-x64.zip<\/a><\/p>\n<p>32 bits:<br \/>\n<a href=\"https:\/\/windows.php.net\/downloads\/releases\/php-7.3.2-nts-Win32-VC15-x86.zip\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/windows.php.net\/downloads\/releases\/php-7.3.2-nts-Win32-VC15-x86.zip<\/a><\/p>\n<p>Se tiver problemas no download basta acessar o site oficial: <a href=\"http:\/\/windows.php.net\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/windows.php.net<\/a><\/p>\n<blockquote><p><strong>O que significa thread safety quando estou fazendo o download do PHP?<\/strong><\/p>\n<p class=\"para\">Thread Safety significa que o bin\u00e1rio pode trabalhar em um contexto de servidor web multithread, como o Apache 2 no Windows. Thread Safety funciona criando uma c\u00f3pia local em cada thread, de modo que os dados n\u00e3o colidir\u00e3o com outra thread.<\/p>\n<p class=\"para\">Ent\u00e3o como eu escolho? Se voc\u00ea escolher rodar PHP como bin\u00e1rio CGI, ent\u00e3o voc\u00ea n\u00e3o precisa do thread safe, porque o bin\u00e1rio \u00e9 chamado a cada requisi\u00e7\u00e3o. Para servidores web multithread, como o IIS5 e IIS6, voc\u00ea deve usar a vers\u00e3o thread do PHP.<\/p>\n<\/blockquote>\n<p>&nbsp;<\/p>\n<p>Extraia todo o conte\u00fado do arquivo zip para &#8220;C:\\PHP&#8221;<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13675 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_02.jpg\" alt=\"\" width=\"904\" height=\"471\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_02.jpg 904w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_02-300x156.jpg 300w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_02-768x400.jpg 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/a><\/p>\n<p>Agora edite a vari\u00e1vel System <strong>PATH<\/strong> em vari\u00e1veis de ambiente para que o IIS saiba onde est\u00e3o os execut\u00e1veis \u200b\u200bPHP:<\/p>\n<p>Incluir o caminho: &#8220;<strong>C:\\PHP&#8221;<\/strong><\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13676 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_03.jpg\" alt=\"\" width=\"723\" height=\"625\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_03.jpg 723w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_03-300x259.jpg 300w\" sizes=\"auto, (max-width: 723px) 100vw, 723px\" \/><\/a><\/p>\n<hr \/>\n<h2><b>4. Configure o arquivo <span class=\"skimlinks-unlinked\">php.ini<\/span>\u00a0.<br \/>\n<\/b><\/h2>\n<p>Fa\u00e7a uma c\u00f3pia do arquivo &#8220;<strong>C:\\PHP\\<\/strong><strong><span class=\"skimlinks-unlinked\">php.ini-development&#8221;<\/span><\/strong> e salve-o como &#8220;<strong>C:\\PHP\\<\/strong><strong><span class=\"skimlinks-unlinked\">php.ini&#8221;<\/span><\/strong><\/p>\n<p>Edite o arquivo\u00a0<strong><span class=\"skimlinks-unlinked\">php.ini<\/span><\/strong>\u00a0encontrando as seguintes entradas, descomente-as e altere os valores para:<\/p>\n<p>fastcgi.impersonate = 1<br \/>\ncgi.fix_pathinfo = 0<br \/>\ncgi.force_redirect = 0<br \/>\nopen_basedir = \u201cC:\\inetpub\\wwwroot\u201d<br \/>\nextension_dir = \u201cext\u201d<br \/>\nerror_log=\u201dphp_errors.log\u201d<\/p>\n<p>Descomente as entradas\u00a0 abaixo do Windows Extensions:<\/p>\n<p>extension = php_bz2.dll<br \/>\nextension = php_gd2.dll<br \/>\nextension = php_oci8_12c.dll<br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_curl.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_fileinfo.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_ftp.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_gettext.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_gmp.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_intl.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_imap.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_interbase.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_ldap.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_mbstring.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_exif.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_mysqli.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_openssl.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pdo_firebird.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pdo_mysql.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pdo_oci.dll<\/span><br \/>\nextension = <span class=\"skimlinks-unlinked\">php_pdo_odbc.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pdo_pgsql.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pdo_sqlite.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_pgsql.dll<\/span><br \/>\nextension =\u00a0<span class=\"skimlinks-unlinked\">php_shmop.dll<\/span><\/p>\n<p>Salve o\u00a0arquivo\u00a0<span class=\"skimlinks-unlinked\">php.ini<\/span>\u00a0editado\u00a0.<\/p>\n<h2><b>5. Configurar o IIS para trabalhar com PHP<\/b><\/h2>\n<p>Abra o IIS (inetmgr) e configure conforme o print.<br \/>\nAcesse a op\u00e7\u00e3o: Handler Mappings -&gt; Add Module Mapping<\/p>\n<p>Request path: *.php<br \/>\nModule: FastCgiModule (from the dropdown)<br \/>\nExecutable (optional): C:\\PHP\\php-cgi.exe<br \/>\nName: FastCGI<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_04.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13677 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_04.jpg\" alt=\"\" width=\"722\" height=\"495\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_04.jpg 722w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_04-300x206.jpg 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/a><\/p>\n<hr \/>\n<h2><b>6. Teste a instala\u00e7\u00e3o e configura\u00e7\u00e3o<\/b><\/h2>\n<p>Abrir o bloco de notas com privil\u00e9gios administrativos.<br \/>\nCrie um arquivo <span class=\"skimlinks-unlinked\">phpInfo.php<\/span>\u00a0e salve-o em &#8220;C: \\inetpub\\wwwroot&#8221;.<\/p>\n<p>Dentro do arquivo phpInfo insira o comando abaixo:<br \/>\n<strong>&lt;?php phpinfo(); ?&gt;<\/strong><\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_05.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13678\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_05.jpg\" alt=\"\" width=\"260\" height=\"163\" \/><\/a><\/p>\n<p>Agora, abra um navegador e navegue at\u00e9<\/p>\n<p><a href=\"http:\/\/localhost\/test.php\" rel=\"nofollow\">http: \/\/localhost\/phpInfo.php<\/a><\/p>\n<p><strong>OBS:<\/strong> N\u00e3o se esque\u00e7a que o IIS busca os <strong>documentos padr\u00f5es<\/strong>, voc\u00ea precisa adicionar os documentos &#8220;<strong>index.php<\/strong>&#8221; e &#8220;<strong>default.php<\/strong>&#8221; como padr\u00e3o do IIS para que ele possa buscar esses padr\u00f5es automaticamente como documentos default.<\/p>\n<p><a href=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-13679 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06.jpg\" alt=\"\" width=\"1364\" height=\"688\" srcset=\"https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06.jpg 1364w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06-300x151.jpg 300w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06-768x387.jpg 768w, https:\/\/gianfratti.com\/wp-content\/uploads\/2019\/02\/php_install_06-1024x517.jpg 1024w\" sizes=\"auto, (max-width: 1364px) 100vw, 1364px\" \/><\/a><\/p>\n<p>\ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eu sempre gostei do PHP para criar p\u00e1ginas din\u00e2micas. No entanto, instalar o PHP em uma m\u00e1quina com Windows sempre foi uma esp\u00e9cie de dor no caminho.\u00a0\u00c9 poss\u00edvel 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 \u00e9 muito, <span class=\"ellipsis\">&hellip;<\/span> <span class=\"more-link-wrap\"><a href=\"https:\/\/gianfratti.com\/index.php\/instalando-o-php-no-iis\/\" class=\"more-link\"><span>Read More &rarr;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[20],"tags":[],"class_list":["post-13669","post","type-post","status-publish","format-standard","hentry","category-dicas"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/13669","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/comments?post=13669"}],"version-history":[{"count":17,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/13669\/revisions"}],"predecessor-version":[{"id":14112,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/13669\/revisions\/14112"}],"wp:attachment":[{"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/media?parent=13669"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/categories?post=13669"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/tags?post=13669"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}