Kompilera php-moduler i MAMP

, , , , ,

MAMP är ett ovärdeligt verktyg om du utvecklar i OSX, men ibland saknas det en php-modul, exempelvis mssql.so. I dessa fall måste man kompilera modulen själv, här visar jag hur du gör.

1. Installlera systemkrav

Innan du kör igång måste du se till att Xcode, Homebrew och autoconf är installerat.  Så fort du har installerat Homebrew kan du köra:

brew install autoconf

2. Ladda ner PHP

När man laddar ner och installerar MAMP följer det inte med någon källkod, som dessvärre behövs när man ska kompilera nya moduler. Källkoden kan laddas ned från MAMPs nedladdningssida. Man kan så klart även ladda ned källkoden från PHP.net, men se till att ladda ned en version som matchar den versionen du använder.

När du har laddat ned rätt version, packa upp den och döp foldern ”php”. Kopiera den här foldern till MAMPs include-katalog. Om du exempelvis använder PHP 5.5.17 är rätt katalog:

/Applications/MAMP/bin/php/php5.5.17/includes/php

 

När du gjort detta kör du följande:

cd /Applications/MAMP/bin/php/php5.5.17/includes/php
 ./configure —with-php-config=/Applications/MAMP/bin/php/php5.5.17/bin/php-config

 

Eventuellt ser du här ett par varningar, men så länge alla header-filer skapas som dom ska bör du kunna kompilera senare.

3. Kompilera din modul

Nu ska det gå att kompilera din PHP-modul med följande kommandon:

cd /path/to/your/module/source
/Applications/MAMP/bin/php/php5.5.3/bin/phpize
 ./configure --with-php-config=/Applications/MAMP/bin/php/php5.5.3/bin/php-config
 make

 4. Installera modulen

När kompileringen är klar har du en fil med namn minmodul.so, denna fil ska kopieras till rätt MAMP-folder:

/Applications/MAMP/bin/php/php5.5.17/lib/php/extensions/no-debug-non-zts-20121212/

 

Nu kan du aktivera modulen i php.ini som finns i följande folder:

/Applications/MAMP/bin/php/php5.5.17/conf/

 

I filen lägger du till:

extension=minmodul.so

 

Spara php.ini, starta om MAMP kontrollera med phpinfo() att din modul är laddad.

5. Felsökning

Om din modul inte laddas som den ska, se i

/Applications/MAMP/logs/php_error.log

 

efter eventuella fel.

 
[fbcomments]