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.

  1. Pak de tar xfvz yaml-2.0.0RC8.tgz (bijv. tar xfvz yaml-2.0.0RC8.tgz )
  2. Voer de map in waar het archief is uitgepakt en voer phpize
  3. U zou nu een nieuw aangemaakt .configure script moeten zien als alles goed is gegaan, voer dat ./configure
  4. Nu moet je make , waarmee de extensie wordt gecompileerd
  5. 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.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow