Instalando uma extensão PHP no Windows

No Windows há duas maneiras de carregar uma extensão PHP: compilando-a no PHP ou carregando por DLL. Carregar uma extensão pré-compilada é a maneira mais fácil e preferível.

Para carregar uma extensão é necessária o arquivo ".dll" apropriado para o seu sistema. Todas as extensões são automaticamente e periodicamente compiladas pelo PHP Group. (veja na próxima seção como baixar).

Para compilar uma extensão no PHP, veja a documentação sobre compilação de código fonte.

Para compilar uma extensão apenas (um arquivo DLL), veja a documentação compilação de código fonte. Se a DLL não estiver anteriormente disponível e nem distribuída no PHP ou PECL, você precisará compila-la antes de usar a extensão.

Onde encontrar uma extensão?

Extensões do PHP normalmente tem o nome "php_*.dll" (onde o asterisco representa o nome da extensão) e elas estão localizadas na pasta "PHP\ext".

O PHP vem acompanhando das extensões mais utilizadas pela maioria dos desenvolvedores. São as chamadas extensões "core" do PHP.

Entretanto, se você precisa de uma funcionalidade não provida por uma extensão core, você ainda pode encontrá-la no PECL. A PHP Extension Community Library (PECL) é um repositório de extensões PHP, que provê um ambiente para todas as extensões conhecidas e hospedagem do downdload e desenvolvimento de extensões PHP.

Se você desenvolveu uma extensão para seus próprios usos, você pode desejar hospedá-la no PECL de forma que outros desenvolvedores com as mesmas necessidades podem se beneficiar do seu tempo. Um belo efeito colateral é que que você pode receber feedbacks, agradecimentos, avisos de erros e até mesmo correções/patchs. Antes de submeter sua extensão para hospedagem no PECL, leia o » Submissão ao PECL.

Qual extensão baixar?

Algumas vezes você encontrará várias versões de uma DLL:

  • Versões numéricas diferentes (pelo menos os dois primeiros números devem bater)
  • Versões de thread safety diferentes
  • Arquiterturas de processador diferentes (x86, x64, ...)
  • Configurações de debug diferentes
  • etc.

Você deve ter em mente que sua extensão precisa bater com todas as configurações do executável do PHP que está utilizando. O scripte seguinte lhe dirá todas as configurações:

Exemplo #1 A função phpinfo()

<?php
phpinfo
();
?>

Ou, na linha de comando, execute:

drive:\\path\to\php\executable\php.exe -i

Carregando uma extensão

O jeito mais comum de carregar uma extensão é incluí-la no seu arquivo php.ini. Veja que muitos extensões já podem estar presentes no php.ini e só é preciso remover o ponto e vígula para ativá-las.

;extension=php_extname.dll
extension=php_extname.dll

Em alguns servidores web podem não utilizar o arquivo php.ini disponibilizado ao lado do seu executável do PHP. Para saber qual php.ini está sendo utilizado veja seu caminho através da função phpinfo():

Configuration File (php.ini) Path  C:\WINDOWS
Loaded Configuration File   C:\Program Files\PHP\5.2\php.ini

Após ativar uma extensão, salve o arquivo php.ini, reinicie o servidor web e verifique o phpinfo() novamente. A nova extensão deve aparecer em uma seção própria.

Resolvendo problemas

Se uma extensão não aparecer no phpinfo() você deve checar seus logs para ver qual problema ocorre.

Se está usando o PHP da linha de comando (CLI), erros de carregamento de extensãopodem ser lidos diretamente na tela.

Se estiver utilizando o PHP através de um servidor web, a localização e formato dos logs irão variar dependendo desse software. Veja a documentação do servidor web para localizar os logs, pois isso não tem a ver com o PHP em si.

Problemas comuns são o caminho do arquivo DLL, o valor da configuração " extension_dir" dentro do php.ini e diferenças de configurações de compilação.

Se o problema for em diferenças de configurações de compilação, você provavelmente não baixou a DLL correta. Tente baixar novamente a extensão com as configurações corretas. Novamente o phpinfo() é de grande ajuda.

add a note add a note

User Contributed Notes 3 notes

up
1
biel325 at gmail dot com
5 years ago
To create a dll extension to
PHP follow this instructions:
http://blog.slickedit.com/2007/09/creating-a-php-5-extension-with-visual-c-2005/

*****IMPORTANT
1)You MUST use the last release of PHP source code, or people will not me able to use your extension. Don't worry to use only the version of the tutorial.
2) The folder "regex" exists in PHP 5.3, just find it in the subfolders.
3)While building your dll in Visual Studio, if you have any problem compiling or linking like: "winsock2.h is missing", find the files on your computer and include the project in the same way that the tutorial taught.
up
-8
chris
7 years ago
In response to soazine:

I've found, using wampserver, that the only configuration file that needs to be edited is the one listed under "Loaded Configuration File" given by phpinfo(). Those for whom this doesn't work should refer to soazine's steps.
up
-10
stuart at kaihatsu dot co dot uk
8 years ago
This is the only way to get PECL extensions - using the command line installer (similar to the PEAR installer) does not work on Windows...

This does not look like its going to be fixed any time soon...

Also, you should look at http://pecl4win.php.net/ for Windows PECL extensions.
To Top