PHP
Compileer PHP-extensies
Zoeken…
Compileren op Linux
Om een PHP-extensie in een typische Linux-omgeving te compileren, zijn er enkele vereisten:
- Basis Unix-vaardigheden (in staat zijn om "make" en een C-compiler te bedienen)
- Een ANSI C-compiler
- De broncode voor de PHP-extensie die u wilt compileren
Over het algemeen zijn er twee manieren om een PHP-extensie te compileren. U kunt de extensie statisch compileren in het PHP-binaire bestand, of compileren als een gedeelde module die door uw PHP-binaire bestand wordt geladen bij het opstarten. Gedeelde modules zijn waarschijnlijker omdat u hiermee extensies kunt toevoegen of verwijderen zonder het hele binaire PHP opnieuw te bouwen. Dit voorbeeld richt zich op de gedeelde optie.
Als u PHP hebt geïnstalleerd via uw pakketbeheerder ( apt-get install
, yum install
, enz ..), moet u het -dev
pakket voor PHP installeren, inclusief de benodigde PHP-headerbestanden en phpize-script om de buildomgeving te laten werken . Het pakket kan zoiets als php5-dev
of php7-dev
, maar gebruik uw pakketbeheerder om de juiste naam te zoeken met behulp van de repositories van uw distro. Ze kunnen verschillen.
Als u PHP vanaf de bron heeft opgebouwd, bestaan de headerbestanden waarschijnlijk al op uw systeem ( meestal in /usr/include
of /usr/local/include
).
Stappen om te compileren
Nadat je hebt gecontroleerd of je beschikt over alle vereisten om te compileren, kun je naar pecl.php.net gaan , een extensie selecteren die je wilt compileren en de tar ball downloaden.
- Pak de
tar xfvz yaml-2.0.0RC8.tgz
(bijv.tar xfvz yaml-2.0.0RC8.tgz
) - Voer de map in waar het archief is uitgepakt en voer
phpize
- U zou nu een nieuw aangemaakt
.configure
script moeten zien als alles goed is gegaan, voer dat./configure
- Nu moet je
make
, waarmee de extensie wordt gecompileerd - Ten slotte kopieert
make install
de gecompileerde extensie binair naar uw extensiemap
De stap make install
geeft meestal het installatiepad voor u waar de extensie is gekopieerd. Dit is meestal in /usr/lib/
, het kan bijvoorbeeld zoiets zijn als /usr/lib/php5/20131226/yaml.so
. Maar dit hangt af van uw configuratie van PHP (ie --with-prefix
) en specifieke API-versie. Het API-nummer is opgenomen in het pad om extensies gebouwd voor verschillende API-versies op verschillende locaties te houden.
De extensie laden in PHP
Om de extensie in PHP te laden, zoekt u uw geladen php.ini-bestand voor de juiste SAPI en voegt u de extension=yaml.so
en start u PHP opnieuw. Wijzig natuurlijk yaml.so
in de naam van de daadwerkelijke extensie die u hebt geïnstalleerd.
Voor een Zend-extensie moet u het volledige pad naar het gedeelde objectbestand opgeven. Voor normale PHP-extensies is dit pad echter afgeleid van de extension_dir
instructie in uw geladen configuratie, of van de $PATH
omgeving tijdens de eerste installatie.