Aktivera cURL i Apache
Verktyget cURL används för att hämta data från exempelvis webbplatser på internet, men det finns inte i Apache från början — så här kommer du igång.
Att använda cURL i PHP-skript handlar ofta om att man vill hämta hem data, exempelvis ladda hem filer eller kommunicera med ett API, och skräddarsy den kommunikationen mer än att bara använda det traditionella kommandot file_get_contents().
cURL finns dock inte installerat när Apache är nyinstallerat, och om så är fallet möts man av följande felmeddelande i PHP;
Call to undefined function curl_init()
Att komma till rätta med problemet är enkelt, men tillvägagångssättet skiljer sig lite åt beroende på om du har din Apacheserver i Windows- eller Linuxmiljö.
Här nedanför följer steg för steg-anvisningar för både Linuxmiljö — i det här fallet Ubuntu — samt Windowsmiljö.
Aktivera cURL i Windows
Om du använder Apache på en Windows-server är det en .ini-fil du behöver konfigurera. Öppna php.ini-filen på Windows-servern och leta upp följande rad:
;extension=php_curl.dll
Ta därefter bort det semikolon — alltså tecknet ; som står först på raden — som innebär att PHP ignorerar insticksmodulen php_curl.dll. Spara dina ändringar i filen php.ini och stäng filen.
Nästa gång Apachetjänsten på Windows-servern startas om kommer nu cURL-insticksmodulen att läsas in och gå att använda.
Installera cURL i Linux
Om du istället har en Apache-server i Linuxmiljö, exempelvis med den populära distributionen Ubuntu, finns insticksmodulen för cURL inte installerad från början.
För att installera cURL-paketet i Ubuntu (och även andra Linuxdistributioner, men tillvägagångssättet kan variera lite) skriver du helt enkelt följande i terminalen;
sudo apt-get install php-curl
Nödvändiga filer laddas hem och du får en fråga om du vill gå vidare med installationen. Svara ja (Yes) på frågan om du önskar installera curl-paketet i din Ubuntu-installation, och vänta därefter till dess att installationen gått klart.
Så snart filerna har installerats behöver du ladda om modulerna som Apache använder i din Ubuntumiljö. Det gör du enkelt med följande kommando;
sudo service apache2 reload
Nu är du klar med aktiveringen av cURL i Apache på Ubuntu!
Visa felkoder i PHP
Normalt sett visas det inga felkoder i PHP, vilket gör att det kan vara krångligt och svårt att felsöka varför PHP-skriptet inte fungerar — oftast visas det bara en helt blank sida när det gått fel.
Det fungerar så för att skydda din server och din kod; det ska inte skrivas ut till dina besökare vilka fel du har i din kod eller vilken version av PHP eller MySQL du har på din server — dels ser det inte snyggt ut, och dels ger det en möjlighet att utnyttja eventuella säkerhetshål i din kod.
Detta kan dock leda till att du faktiskt inte ser vilket fel du har på din webbplats när du försöker utveckla, förutom om du inte går in och tittar i webbserverns logg för felkoder. Detta kan kännas mödosamt och krångligt, och ett enklare sätt är då att aktivera visningen av fel i PHP.
Lägg in följande kodrader i början av ditt PHP-skript;
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
När du sedan laddar om PHP-skriptet kommer alla varningar att skrivas ut på sidan, och du får enklare att felsöka det som inte fungerar.
Än en gång; tänk på att aldrig visa felkoder i PHP för dina besökare. Du bör därför alltid ha felrapporteringen avstängd i PHP, förutom när du aktivt felsöker fel i din kod. Du kan då slå på den endast för dig själv, exempelvis genom att lägga en sträng i $_GET — alltså värden som du skriver efter ? i din URL — där du triggar visningen av felkoder.
Ett exempel kan vara följande;
https://domän.se/index.php?felkoder=hemligtext
Du kan därefter validera detta högst upp i din egen kod;
if ($_GET['felkoder']=='hemligtext') { ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); }
Därefter aktiveras felrapporteringen i PHP bara för den som kan den valideringskod du valt för strängen felkoder. Ett enkelt och smidigt sätt att felsöka på egen hand, utan att behöva gå in i serverns loggar och leta efter felkoder.
Detaljer
- Titel: Så enkelt aktiverar du cURL i Apache
- Publicerad:
- Skribent: Christian W.
- Kategorier: Ubuntu + Server + Apache + Windows