Como instalar manualmente o Apache, PHP e MySQL no Windows?


48

Como instalo o Apache com suporte ao PHP e o servidor MySQL no Windows sem usar pacotes prontos para o uso, como WAMPServer ou XAMPP?

Respostas:


65

Apache

Primeiro, recomendo que você leia as Notas específicas da plataforma do Apache para Windows - ele explica alguns recursos específicos do Windows, como executar como um serviço que você não possui em outros sistemas operacionais e provavelmente nunca usou antes.

Conforme mencionado nessas notas específicas da plataforma, o Apache não fornece binários para Windows, no entanto, eles têm links para vários sites de terceiros que fornecem binários, por exemplo, Apache Lounge .

Nesse site, podemos baixar a versão de 32 bits (win32) ou a de 64 bits (Win64) - se o sistema operacional for de 64 bits, você deve sempre tentar instalar versões de software de 64 bits, mas observe que você também será necessário usar módulos de 64 bits, ou seja, se você tiver apenas um módulo de 32 bits, faça o download do Apache de 32 bits.

Aqui está a versão que eu usei ao escrever isso: Apache 2.4.10 Win64 . A última versão da última atualização desta resposta: Apache 2.4.38 Win64 (veja a data de edição na parte inferior da postagem).

Após o download, basta extrair a Apache24pasta para a raiz do seu disco rígido, para que você tenha um caminho parecido C:\Apache24\bin.

Abra uma janela da linha de comando (Windows + R e digite cmde pressione Enter), altere o diretório C:\Apache24\bine execute-o httpd.exe, normalmente não deve imprimir nenhum erro.

Se você receber uma caixa de diálogo de erro informando que MSVCR110.dllestá faltando no sistema, será necessário instalar o Visual C ++ Redistributable para Visual Studio 2012 - como sempre, quando solicitado, selecione a versão de bit apropriada: vcredist_x86.exepara sistemas de 32 bits e vcredist_x64.exe64 -Bits.

Se você receber um erro dizendo que não pode se conectar à porta 80, verifique se outro aplicativo usa essa porta - também se sabe que o Skype usa as portas 80 e 443 por padrão; desmarque "Usar as portas 80 e 443 como alternativas para conexões de entrada" nas configurações avançadas de conexão , reinicie o Skype para aplicar as alterações e, em seguida, você poderá iniciar o Apache sem problemas.

Um aviso como esse Could not reliably determine the server's fully qualified domain namepode ser ignorado por enquanto.

O Firewall do Windows pode solicitar que você permita que o Apache se comunique em redes específicas. Recomendamos que você use as configurações padrão: permita-o em redes domésticas e profissionais, mas não em redes públicas / não confiáveis.

Em seguida, abra um navegador e navegue até http://localhost, se você vir uma página dizendo It works !que significa que sua instalação do Apache está funcionando.

Agora você pode parar o Apache atualmente em execução pressionando Ctrl + C no prompt de comando.

Se você recebeu um aviso sobre não poder determinar o nome de domínio totalmente qualificado do sistema, corrija-o editando C:\Apache24\conf\httpd.confe editando a ServerNamevariável (ela já deve estar presente em um comentário, apenas remova o comentário e altere):

ServerName <yourhostname>

Substitua <yourhostname>pelo nome do host do sistema ou localhost.

Por fim, se você deseja executar o servidor automaticamente quando o sistema é iniciado (mesmo que ninguém faça login), será necessário executá-lo como um serviço - em um novo prompt de comando elevado (como administrador), digite:

httpd.exe -k install

É isso, agora você tem um novo serviço em Serviços (Windows + R, digite "services.msc" e pressione Enter) chamado "Apache2.4" que você pode controlar como qualquer outro serviço do Windows.

Restringindo o acesso ao Apache localhostapenas - opcional

Se você está configurando isso para fins de desenvolvimento, quer ter certeza de que ninguém, exceto você pode acessá-lo, seu firewall já deve cuidar disso, mas vamos adicionar outra camada de segurança dizendo ao Apache para aceitar solicitações do local somente máquina.

Abra o arquivo de configuração do Apache C:\Apache24\conf\httpd.conf, procure o bloco de diretório padrão <Directory "c:/Apache24/htdocs">.

No final, se houver, deve haver uma linha Require all granted, isso significa que qualquer pessoa pode acessar este servidor. Vamos fazer o Require localque permite apenas o acesso a partir da máquina local.

Além disso, você pode dizer ao Apache para vincular apenas à interface de loopback, dessa forma, mesmo que seu firewall e as diretivas de controle de acesso mencionadas acima falhem, o servidor ainda não estará aberto para toda a Internet.

Para isso, localize a Listendiretiva (por padrão, ela está definida como 80) e altere-a para o seguinte:

Listen 127.0.0.1:80
Listen [::1]:80

A primeira linha é auto-explicativa, a segunda é o equivalente ao IPv6 da primeira, os colchetes são usados ​​na notação IPv6 para separar o endereço e a porta.

Salve o arquivo, se você já estiver executando o servidor, reinicie-o para levar em consideração nossas alterações e agora só localhosttiver acesso, todos os outros terão um 403 Forbidden.

PHP

Eu sugiro que você leia a documentação oficial do PHP sobre como instalá-lo em sistemas Windows.

Faça o download dos binários mais recentes do PHP na página oficial de download do PHP for Windows , escolha a versão segura para threads que corresponda à versão em bits da instalação do Apache (x86 para 32 bits, x64 para 64 bits).

A versão não segura para threads é apenas quando executada como um binário CGI - mais informações aqui .

A versão que usei é esta: PHP 5.6.2 VC11 x64 Thread Safe . A última versão da última atualização desta resposta: PHP 7.3.3 VC15 x64 Thread Safe (veja a data de edição na parte inferior da postagem).

Crie uma PHPpasta vazia na raiz do seu disco rígido e extraia o arquivo baixado anteriormente, você deve ter um caminho como C:\PHP\ext, caso contrário, você fez algo errado.

Em C:\PHP, renomeie o php.ini-productionou php.ini-development(dependendo do que você deseja) para php.ini.

Abra esse php.iniarquivo, pesquise extension_dir = "ext"e descomente essa linha (remova a primeira ;). Isso define o diretório de extensão padrão como ext(que resolve C:\PHP\exte evita ter que acrescentar ext/manualmente a todos os caminhos da extensão, como nas versões anteriores desta postagem.

Agora configure o Apache para usar esse PHP, editando C:\Apache24\conf\httpd.conf- depois de todas as LoadModulelinhas, adicione o seguinte:

(A seguir, apenas para o PHP 7 )

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(A seguir, apenas para o PHP 5 )

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Agora tente iniciar o Apache manualmente, abrindo C:\Apache24\bine executando um prompt de comando httpd.exe- se não houver erros, isso significa que seu arquivo de configuração é válido e o PHP provavelmente está funcionando .

Você pode testar sua instalação PHP, criando um arquivo como info.phpcom <?php phpinfo();dentro e vai http://localhost/info.php- você deve ver um pouco de informação sobre o seu sistema e sua instalação PHP e todos os seus módulos. Se você receber outra coisa como um "Erro interno do servidor", isso significa que algo está errado.

Agora você pode matar seu processo atual do Apache (Ctrl + C no console) e iniciar o serviço - a parte a seguir não interage com o Apache e pode ser feita com o servidor já iniciado.

Compositor - opcional

O Composer é uma ferramenta para gerenciamento de dependências em PHP, como um gerenciador de pacotes. Permite instalar facilmente pacotes PHP e até estruturas inteiras.

O Composer exige que a extensão PHP OpenSSL esteja ativada, então vamos ativá-la C:\PHP\php.ini.

Use a função de pesquisa do editor de texto para pesquisar php_openssl.dll, já deve haver uma linha comentada, apenas remova o comentário dessa linha.

Agora baixe o instalador do Composer para Windows na página de download - ou use este link direto .

Siga as instruções, quando solicitado o caminho para o PHP, navegue C:\PHPe selecione php.exe.

É isso, o Composer agora está instalado em todo o sistema e pode ser usado de qualquer lugar - você pode experimentá-lo, basta abrir um novo prompt de comando (você não pode usar um que já esteja aberto, pois precisa ler a nova PATHvariável definida pelo Composer instalador) e digite composer.

Você deve obter um bom logotipo de arte ASCII e algo assim:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

Extensões PHP MySQL - opcional

Se você deseja acessar seu banco de dados MySQL a partir do PHP, precisará habilitar extensões que permitam fazê-lo, como php_mysqliou php_pdo_mysql- eu recomendo habilitar as duas.

Arquivo de configuração do PHP aberta C:\PHP\php.iniem seu editor de texto e procure php_mysqliou php_pdo_mysql- eles já deveria estar lá, descomente-los.

Feito, agora você pode acessar qualquer banco de dados MySQL usando mysqliou PDO.

MySQL

Na página de download do MySQL Installer, baixe o instalador da web mysql-installer-web-community-xxxxx.msi.

Eu usei o mysql-installer-web-community-5.6.21.1.msi. A última versão da última atualização desta resposta: mysql-installer-web-community-8.0.15.0.msi (veja a data de edição na parte inferior da postagem).

O instalador instalará automaticamente a versão apropriada (32 ou 64 bits), dependendo do seu sistema, mesmo que a versão em bits do MySQL não precise corresponder à do Apache e PHP, mas ainda é benéfico usar a versão de 64 bits do seu sistema. O sistema suporta esse recurso para aproveitar mais de 3 GB de RAM , o que é muito importante, pois os servidores de banco de dados tendem a usar muita RAM.

Siga as etapas no instalador, se você estiver instalando isso para desenvolvimento, então Developer defaultserá a sua melhor opção, também instalará o MySQL Workbench, que é um cliente GUI nativo, evitando assim a instalação de ferramentas lentas da Web, como PHPMyAdmin se você não estiver familiarizado com o uso do cliente de linha de comando.

Depois que tudo estiver instalado, o instalador solicitará alguns valores básicos de configuração, eu recomendo desabilitar "Abrir porta de firewall para acesso à rede", a menos que você queira acessar o banco de dados de outra máquina na rede.

Defina a senha root - se for apenas para fins de desenvolvimento e seu firewall bloquear conexões de entrada da rede, uma senha forte não será necessária.

Finalmente, você pode desativar o inútil MySQL Notifier clicando com o botão direito do mouse no ícone da bandeja, entrando em Actions -> Options, desmarque a Run at Windows Startupcaixa de seleção e aplique. Isso economizará alguns MBs de RAM e evitará desacelerar sua máquina durante a inicialização.

E é isso, agora você tem um servidor WAMP totalmente funcional que funciona como um serviço e não depende de nenhum usuário (acessível mesmo que ninguém esteja logado).

Observe que eu não tenho idéia sobre a segurança disso, para fins de desenvolvimento, eu diria que isso é bastante seguro, pois seu firewall deve bloquear as conexões de entrada para Apache (porta 80 e ou 443) e MySQL (porta 3306).

Isso foi testado em uma instalação do Windows 7, mas também deve funcionar bem no Vista, Windows 8 e possivelmente no Windows Server 2008/2012 - fique à vontade para comentar e / ou fazer voto negativo, se esse não for o caso.


3
Gostaria apenas de observar que pode ser necessário descomentar a linha extension_dir = "ext" do Windows no php.ini.
Chivvijim

@jaffamcneill de fato, você estava certo, atualizei minha resposta para explicar isso.

Ypu salvou minha vida. Eu estava lutando com isso na última semana, mas o mysql não seria ativado no phpinfo. Eu consertei isso com sua ajuda. Muito obrigado.
Clever_bassi

Quando devemos usar o módulo mod_fcgid? Eu tenho um problema: tenho vários usuários no sistema ao mesmo tempo fazendo várias solicitações. Estou precisando de uma versão de 64 bits, já que a memória de 32 bits fica sem memória (VFP ODBC com solicitações pesadas de relatórios). Sua configuração acima funcionaria bem ou preciso usar o módulo php_fcgid e instalar o PHP como cgi moodule? Isso sempre me confunde ... Obrigado por qualquer insight.
Jeremy

1
Quando o MSVCR110.dllerro apareceu (na versão atual do Apache), eu acabei instalando o Visual C ++ Redistributable 2010 SP1. Depois eu tenho outro erro sobre o arquivo VCRUNTIME140.dll, o que me necessário para instalar Visual C ++ Redistributable para o Visual Studio 2015.
Coded Macaco

8

PHP 7

As instruções na resposta acima funcionam perfeitamente a partir de julho de 2017; no entanto, se você deseja usar o PHP 7, deve adicionar as seguintes linhas em C:\Apache24\conf\httpd.confvez das que estão nessa resposta (que funcionam apenas no PHP 5) [Adicione o seguinte depois de todas as LoadModulelinhas] :

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Verifique se todos os caminhos estão corretos. Se você não possui php7apache2_4.dllseu diretório PHP, provavelmente baixou o pacote errado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.