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?
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:
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 Apache24
pasta 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 cmd
e pressione Enter), altere o diretório C:\Apache24\bin
e execute-o httpd.exe
, normalmente não deve imprimir nenhum erro.
Se você receber uma caixa de diálogo de erro informando que MSVCR110.dll
está 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.exe
para sistemas de 32 bits e vcredist_x64.exe
64 -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 name
pode 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.conf
e editando a ServerName
variá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.
localhost
apenas - opcionalSe 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 local
que 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 Listen
diretiva (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ó localhost
tiver acesso, todos os outros terão um 403 Forbidden
.
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 PHP
pasta 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-production
ou php.ini-development
(dependendo do que você deseja) para php.ini
.
Abra esse php.ini
arquivo, 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\ext
e 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 LoadModule
linhas, 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\bin
e 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.php
com <?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.
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:\PHP
e 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 PATH
variá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
Se você deseja acessar seu banco de dados MySQL a partir do PHP, precisará habilitar extensões que permitam fazê-lo, como php_mysqli
ou php_pdo_mysql
- eu recomendo habilitar as duas.
Arquivo de configuração do PHP aberta C:\PHP\php.ini
em seu editor de texto e procure php_mysqli
ou php_pdo_mysql
- eles já deveria estar lá, descomente-los.
Feito, agora você pode acessar qualquer banco de dados MySQL usando mysqli
ou PDO
.
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 default
será 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 Startup
caixa 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.
MSVCR110.dll
erro 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.
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.conf
vez das que estão nessa resposta (que funcionam apenas no PHP 5) [Adicione o seguinte depois de todas as LoadModule
linhas] :
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.dll
seu diretório PHP, provavelmente baixou o pacote errado.