Installera YAML som PHP extension
Vi skall installera YAML som en PHP extension.
YAML Ain’t Markup Language, är ett läsbart format på att skriva till exempel konfigurationsfiler till programmeringsspråk och applikationer.
Det vi behöver är libyaml
, som implementerar en parser för YAML, samt php-yaml
som är en PHP-wrapper till biblioteket. Dessa skall installeras och kopplas ihop med vår PHP-installation.
#Läs mer
Läs mer om YAML på deras officiella webbplats.
Läs om libyaml, biblioteket som parsar YAML.
Läs mer på hemsidan om PHPs YAML extension.
Läs mer i PHP-manualen om PHPs YAML extension och vilka funktioner som stöds.
#Förutsättning
Du har PHP i din path.
#Verifiera att YAML fungerar
I kursrepot för design-kursen finns ett PHP-skript som hjälper dig att verifiera att PHP YAML är installerat och fungerar.
Börja med att köra det skriptet på din lokala maskin för att se om du redan har modulen installerad.
Du kan provköra skriptet på dbwebb.se för att se hur det kan se ut när allt är installerat och klart.
Som ett komplement kan du även testa att yaml fungerar direkt i terminalen.
Först kan du kontrollera om yaml finns i nuvarande konfiguration av PHP.
$ php -i | grep yaml yaml yaml.decode_binary => 0 => 0 yaml.decode_php => 1 => 1 yaml.decode_timestamp => 0 => 0 yaml.output_canonical => 0 => 0 yaml.output_indent => 2 => 2 yaml.output_width => 80 => 80
Skrivs inget ut så har du inte stöd för yaml.
Därefter kan du testa att använda yaml med PHP.
$ php -r 'echo yaml_emit(["a" => "b", "c" => "d"]);'
---
a: b
c: d
...
Har du inte stöd för yaml så får du ett felmeddelande.
#Installera på Windows och XAMPP
I skriptet som testar om yaml finns installerat skrivs det ut detaljer om ditt system. Använd de detaljerna för att ladda hem det paketet av php-yaml som passar just ditt system.
Du väljer (en stabil) version på nedladdningssidan och klickar på länken vid DLL. Välj nu det paket som matchar din PHP-installation.
Öppna zip-filen. som laddas ned.
Kopiera
yaml.dll
och spara i katalogen\xampp\php
. Filen behöver ligga i en katalog som ligger i din$PATH
.Kopiera
php_yaml.dll
och spara i katalogen\xampp\php\ext
.Lägg följande rad i slutet av din PHP ini-fil.
extension=php_yaml.dll
Du kan nu dubelkolla att php-yaml fungerar via terminalen. Det skall fungera både via cmd.exe
och via Cygwin.
Starta om Apache och testa att det fungerar även via Apache.
#Installera på Mac OS och XAMPP
Det förutsätts att du har lagt in de kommandon i din PATH som beskrivs i MacOS-delen av dokumentet Lägg PHP i pathen.
#Installera libyaml
Börja med att installera libyaml med pakethanteraren brew.
$ brew update $ brew install libyaml
Verifiera att det är installerat med
$ brew list
Du skall se libyaml i listan.
#Installera php-yaml
Installera nu php-yaml med pecl.
$ sudo pecl install yaml
Om du får problem med en varning så kan du använda --ignore-errors
för att hantera det.
WARNING: pecl.php.net/yaml: conflicting files found: yaml/LICENSE (pear.symfony-project.com/yaml)
$ sudo pecl install --ignore-errors yaml
Om du får problem med phpize, som beror på att programmet autoconf saknas, så löser du det med brew.
Cannot find autoconf … ERROR: phpize failed
Installera programmet autoconf med brew.
$ brew install autoconf
När pecl är klart så visas troligen följande text i slutet.
You should add “extension=yaml.so” to php.ini
Då gör vi det.
#Konfigurera php.ini med php-yaml
Du hittar PHPs konfigfil på följande sätt.
$ php -i | grep Configuration Configuration File (php.ini) Path => /Applications/XAMPP/xamppfiles/etc Loaded Configuration File => /Applications/XAMPP/xamppfiles/etc/php.ini Configuration
I mitt exempel är konfigfilen /Applications/XAMPP/xamppfiles/etc/php.ini
.
Jag kan antingen öppna den filen i min texteditor och lägga till raden längst ned. Gör det om du är osäker.
Eller så gör jag det via kommandoraden.
$ sudo sh -c 'echo "extension=yaml.so" >> /Applications/XAMPP/xamppfiles/etc/php.ini'
$ tail -1 /Applications/XAMPP/xamppfiles/etc/php.ini
extension=yaml.so
Du kan verifiera att php-yaml nu fungerar via terminalen.
Starta om apache och verifiera att det även fungerar där.
#Installera på Linux
På min debian installerar jag först libyaml med apt-get.
$ sudo apt-get install libyaml-dev
Sedan installerar jag pecl tillsammans med källkodsfiler för PHP-distributionen.
$ sudo apt-get install php-pear php5-dev
Med pecl installerar jag php-yaml. Jag väljer den versionen som finns tillgänglig och är stabil.
$ sudo pecl install yaml
På min debian har jag två olika konfigfiler för PHP, en för apache-varianten och en för cli. Jag behöver lägga till följande i dem båda.
extension=yaml.so
När det är klar så kan jag verifiera att det fungerar i terminalen.
Starta om apache och verifiera att det även fungerar där.
#Avslutningsvis
Det finns en forumtråd som ger tips och ledtrådar till hur man installerar PHP YAML på olika miljöer. Kika där om du får problem.
#Revision history
- 1476144000: (A, mos) Första utgåvan.