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
.configurescript moeten zien als alles goed is gegaan, voer dat./configure - Nu moet je
make, waarmee de extensie wordt gecompileerd - Ten slotte kopieert
make installde 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.