Resolution:

FAMP-stack FreeBSD

Många känner till LAMP-stacken (Linux, Apache, MySQL & PHP/Perl) här är motsvarigheten för FreeBSD UNIX: FAMP-stacken; FreeBSD, Apache, MySQL & PHP/Perl samt Apache Tomcat

En av fördelarna med vår VPS-tjänst är att man enkelt kan anpassa mjukvaror för sina olika webbsidors behov.

Många känner till LAMP-stacken (Linux + Apache + MySQL och PHP och/eller PERL) men faktum är att det är busenkelt att göra motsvarande installation på FreeBSD-UNIX. Nedan visar vi steg för steg.

 

När du beställer din server av oss kan du välja mellan en lång rad olika operativsystem varav några alternativ är just FreeBSD UNIX. För de allra flesta är FreeBSD 10.3 i 64-bitarsversion (kallas även amd64) den mest lämpliga.

När du fått dina inloggningsuppgifter (och oavsett om det är en dedikerad server eller virtuell privat server-tjänst) loggar du in på din server enligt instruktionerna du fått från oss. Nu behöver du bli root så att du kan ändra inställningar på servern.

 

Nedan använder vi kommandot sudo för att utföra kommandon som root. Saknar du sudo i ditt system kan du installera det med kommandot pkg install sudo som root (du blir root med kommandot su -).

 

Steg 1, Apache

Apache är världens mest populära webbservermjukvara men du har såklart tillgång till andra alternativ om du föredrar något annat, nedan utgår vi ifrån att du väljer Apache (men principen är densamma med de flesta mjukvaror).

 

Det finns två populära metoder att installera mjukvaror i FreeBSD: pkg och ports. Fördelen med pkg är att du får en färdigkompilerad mjukvara i standardutförande för din arkitektur och slipper kompilera. Fördelen med ports är att du genom att bygga (kompliera) mjukvaror kan skräddarsy, ta bort onödiga funktioner och lägga till just de egenskaper du vill ha men det tar något längre tid eftersom all källkod måste hämtas, anpassas och mjukvarorna ska kompileras för just de förutsättningar som din server har. Du kan få prestandavinster genom att kompliera själv men vi utgår från de förkompilerade mjukvarorna nedan då det sparar mycket tid för de allra flesta. Dessutom är det enkelt att lägga till lite mer RAM-minne eller en extra processor om du skulle behöva mer prestanda i framtiden!

 

Apache, precis som de flesta andra mjukvaror i ditt FreeBSD-system, finns i flera olika versioner. För de flesta är det bättre att välja version 2.4 istället för 2.2. För att installera Apache 2.4 kör du som root följande kommando:

 

sudo pkg install apache24

 

Svara "yes" (y) när du blir tillfrågad. Detta installerar Apache och alla dess beroenden för ditt system.

 

För att starta Apache-webbservern i samband med systemstart som en tjänst måste du lägga till informationen apache24_enable="YES" i filen /etc/rc.conf. Med detta kommando görs det direkt åt dig:

 

sudo sysrc apache24_enable=yes

 

Nu kan du starta apache-webserverb;

 

sudo service apache24 start

 

Nu kan du prova att besöka din server genom att surfa till din IP-adress eller ditt servernamn (alternativt om du redan kopplat ett domännamn i vår DNS-tjänst till servern så kan du använda det domännamnet förutsatt att det pekar på din server) i din webbläsare. Du ska mötas av Apache serverns välkomst meddelande för FreeBSD (detta kan du ändra såväl som andra inställningar men det tar vi i ett senare steg).

 

Steg 2, MySQL

Nu när webbservern är igång är det dags att installera databasservern MySQL. Det finns ett antal andra bra databas-servrar tillgängliga att installera för dig som föredrar en annan databasserver än MySQL men då den är den mest populära databas-plattformen i världen utgår vi från denna här - principen är dock densamma om du tex vill installera postgresql eller någon av de andra mjukvarorna (det förekommer inte mindre än drygt 1000st olika mjukvaror i databas-kategorien i skrivande stund!).

Här använder vi åter pkg för att installera mjukvaran;

 

sudo pkg install mysql57-server

 

(Det finns i skrivande stund ett antal olika versioner av mysql men vi utgår från att du kan använda den senaste, som vid tillfället då denna artikel skrevs är 5.7 om du använder FreeBSD 10.3)

Svara y vid promten igen så att mjukvaran och alla dess mjukvaruberoenden installeras på din server.

Återigen vill vi ange mysql_enable="YES" i filen /etc/rc.conf så att databasservern startas vid systemstart och detta gör vi med kommandot:

sudo sysrc mysql_enable=yes

Nu kan du starta MySQL:

sudo service mysql-server start

 

Nu när MySQL-servern körs måste vi säkra upp MySQL lite och ta bort några potentiellt farliga standardinställningar:

sudo mysql_secure_installation

Du kommer tillfrågas om root-lösenordet (för MySQLs root-användare) eftersom du nyligen installerat MySQL är det troligt att du inte ännu har ett lösenord så tryck bara enter för att ange ett tomt/icke existerande lösenord och du ska loggas in.

Du kommer därefter blir tillfrågad om du vill ange ett lösenord för MySQLs root-användare, gör det genom att bekräfta med Y och följ instruktionerna.

För de resterande inställningarna kan du bekräfta med enter och MySQL kommer ladda in de nya inställningarna och nu är din databas säker.

 

Steg 3, PHP / PERL

Kommer du att använda PHP på din webbserver (tex om du använder script skrivna i språket PHP) så måste du installera PHP-stöd och låta PHP "prata" med databasen och även tala om för Apache att den ska kunna använda PHP. Då PHP använt på fel sätt kan innebära säkerhetsrisker och prestandaproblem finns det ingen som helst anledning att installera PHP om du inte vet att du kommer behöva det just nu. Det är enkelt att lägga till i framtiden om du skulle behöva det men tänk på att säkra upp alla script och program som ska köras. Just PHP är ett språk som det finns många olika kodfragment skrivna av alla möjliga användare på Internet så säkerhetsriskerna är absolut inte någonting som man ska vista bort lättvindigt. Faktum är att de allra flesta hackade webbplatser just blivit söndertrasade pga att man installerat en mjukvara som använder typiskt PHP (som Wordpress) och att administratören blint litar på att den som skrivit koden gjort rätt och därefter glömt bort allt och inte uppdaterat i takt med att nya säkerhetsbrister upptäcks.

Vi kan återigen använda pkg för att installera PHP.

För att installera PHP version 5.6 anger vi helt enkelt följande kommando:

sudo pkg install mod_php56 php56-mysql php56-mysqli

Svara åter igen Y vid prompten när du tillfrågas och mjukvarorna installeras.

 

Nu kan vi kopiera in en exempel-konfiguration för PHP:

sudo cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

Efter att du kopierat konfigurationen behöver du köra kommandot rehash

 

Innan du använder PHP på webbsidorna måste vi uppdatera konfigurationen för Apache.

 

PHP-Moduler

Det finns massor av olika PHP-moduler. Ofta behöver du installera stöd för moduler för att kunna använda script för PHP som använder dessa funktioner som tex CMS, galleri-funktioner, epost-funktioner som kontaktformulär eller bildhantering, gästböcker osv.

För att se vilka moduler som finns tillgängligt för PHP version 5.6 kör du följande kommando:

 

pkg search php56

 

Nu visas en lång lista. För att visa mer information om en viss modul gör du:

 

pkg search -f mjukvarans_namn

 

De allra flesta mjukvaror har en beskrivning och för att exempelvis visa mer information om PHPs kalendermodul gör du sårhär:

 

pkg search -f php56-calendar

 

När du har utrett om du vill installera en särskild PHP-modul kan du installera den/dem genom att helt enkelt ange följande kommando:

 

sudo pkg install php56-calendar

 

Tips: Om du ska använda ett färdigt script som tex ett CMS eller en gästbok så står det i regel alltid i en README-fil eller liknande i dokumentationen för scriptet vilka moduler du behöver och om det är någon särskild version som du måste installera.

 

 

Steg 4, Konfigurera Apache för PHP

 

I vårt exempel kommer vi använda text-editorn VI (eller VIM) som är en av de kraftfullaste texteditorerna på Linux- och Unix-baserade system. En av fördelarna med VI är att det i regel alltid finns förinstallerat så oavsett vilken typ av system du sitter med så har du åtminstone alltid tillgång till VI. Föredrar du en annan editor kan du såklart använda den, se till att den är installerad bara. Vi har en guide för VI/VIM på vår support-sida som varmt rekommenderas!

Redigera Apache-serverns konfigurationsfil för PHP:

sudo vi /usr/local/etc/apache24/Includes/php.conf

Nedanstående konfiguration talar om för Apache att den kan använda filer som heter index.php som en index-sida för kataloger:

 


    DirectoryIndex index.php index.html

 

Nu ska vi fylla på i samma konfigurationsfil med instruktioner för Apache att berbeta PHP-filer med programbiblioteket för PHP som du nyss installerade:

   
        SetHandler application/x-httpd-php
   
   
        SetHandler application/x-httpd-php-source
   

 

Spara och stäng filen.

 

Du måste nu starta om Apache för att den nya konfigurationen ska börja gälla:

 

sudo service apache24 restart

 

 

Steg 5, Verifiera att PHP fungerar

Gå till www-rooten (dokument-roten enligt din konfiguration) för din Apache-webbserver och skapa en fil som heter info.php.

Behöver du kontrollera i din konfiguration så kan du titta i exempelvis: /usr/local/etc/apache24/httpd.conf (sökväg till konfiguration kan variera i olika operativsystem men i regel i FreeBSD är /usr/local/-prefixet standard eftersom det är lokala anpassningar, med kommandont find eller locate kan du söka på din server och det är möjligt att ha separata installationer på olika platser på en och samma server - något som är praktiskt om man exempelvis behöver köra olika versioner av mjukvaror för olika webbplatser).

 

Som standard är www-roten /usr/local/www/apache24/data - vi kan således skapa vår testfil på detta vis:

sudo vi /usr/local/www/apache24/data/info.php

 

Lägg in följande text i info.php och spara och stäng:

 

 

Nu kan du besöka din webbserver och verifiera att PHP fungerar som det ska:

 

http://din_servers_IP-adress/info.php

 

Ta för vana att kontrollera loggfilerna och leta efter eventuella varningar och fel.

Fungerar allt som det ska så visas nu en informationssida för din PHP-installation och hur PHP är konfigurerat för ditt system.

Eftersom informationen är farlig i orätta händer bör du nu omedelbart ta bort filen:

sudo rm /usr/local/www/apache24/data/info.php

 

Du kan alltid enkelt skapa filen på nytt och göra om testet om du skulle behöva i framtiden.

 

Nu har du en fullt fungerande FAMP-stack och kan gå vidare och installera mjukvaror och verktyg som tex Wordpress på din server.

 

 

Apache Tomcat

En av många populära webbservrar för att hantera JSP och dynamiskt innehåll som använder programspråket JAVA är Apache Tomcat, ett annat Apache projekt än den världsberömda webservern Apache som lite slarvigt ofta enbart benämns Apache. Vi kommer att kalla Tomcat för just Tomcat och Apache (den vanliga webbservern) för enbart just Apache för att inte blanda ihop de olika mjukvarorna som har helt separat konfiguration och funktion.

Tomcat går att installera via pkg och ports i ett antal olika versioner. Den senaste tillgängliga versionen är oftast mest lämplig att använda. Exempelvis Tomcat version 8 som i FreeBSD heter tomcat8 (pkg install tomcat8).

I Ports-trädet finner du Tomcat i katalogen /usr/ports/www/tomcat8.

En populär metod att anävnda Tomcat är att placera den "bakom" en Apache, dvs Apache-webservern lyssnar på port 80, bedömmer om trafiken ska hanteras av Apache själv eller passeras vidare till Tomcat på port 8080 lokalt. Apache kommer sitta och vänta på svaret från Tomcat och skicka detta, samt eventuellt annat innehåll den ska hantera själv, tillbaks till besökaren.

Dvs besökaren kommer endast att "se" Apache på port 80 (eller 443) och inte ha direkt kontakt med Tomcat.

Den standard-konfiguration som levereras med Tomcat utgår ofta från detta men precis som alla andra mjukvaror som installeras så måste du säkra upp dem, kontrollera all konfiguration och begränsa åtkomst så att enbart just det du vill tillåta får förekomma och all annan trafik/åtkomst blockeras på rätt sätt.

Tänk även på att eventuella svagheter i din JSP-kod, en JAVA-servlet (precis som för PHP och PERL) måste hanteras. Det är lätt gjort att av misstag öppna ett allvarligt säkerhetshål om exempelvis tomcat får exekvera potentiellt farlig kod. Att tro att man skyddar detta genom att begränsa hur trafik på port 80 tillåts är fel, den som kan komma in (eller bryta sig in) måste begränsas från att kunna göra potentiellt farliga saker.

Innan du är säker på att även tomcat, precis som de övriga mjukvarorna på servern, fungerar på rätt sätt är det klokt att bara tillåta lokal trafik och ej koppla på Tomcat bakom Apache så att publika besökare kan nå funktioner i Tomcat.

Standard-välkomstsidorna samt inställningar och funktioner för management osv som ingår i Tomcat som standard måste tas bort och konfiguration måste uppdateras. Du finner all information du behöver i katalogen /usr/local/apache-tomcat-<version>/.

Innan du gått igenom dessa filer och inte minst konfigurationen bör du avstå från att starta Tomcat.

Till skillnad från många andra demoner i FreeBSD så hanteras inte Tomcat via rc-filer alls utan Tomcat kommer med sin egen konfiguration och egna start- och stopp-script, även dessa ligger i Tomcat-katalogen i /usr/local.

 

Den farliga default-konfigurationen körs och du når tomcat på port 8080 om du använder start-scriptet för att starta Tomcat. Vill du automatisera start kan du ej göra det i /etc/rc.conf enkelt som för andra demoner utan ange exempelvis sökvägen till start-scriptet i /etc/rc.local.

Lycka till med din JSP-hostande!

 

Perl

..Men vänta nu? Vi skulle få installera PERL också, eller hur?

Det går att installera PERL på samma sätt som vi installerade PHP ovan. Det går även att installera det via Ports-trädet, något som vi kommer göra en separat artikel om inom kort.

När du behöver använda PERL vet du i regel vilken version du behöver och vilka PERL-moduler som du kan behöva installera. Kontrollera dokumentationen för det PERL-script som du tänkt köra. Det går nämligen att installera PERL-moduler på flera olika sätt också så den metod du bör välja är den som föredras av tillverkarna av din PERL-mjukvara som du ska köra. Krångligt? Egentligen är det inte så svårt. CPAN exempelvis är ett gränsnitt för att hantera PERL, tänk dock på att om du börjar installera vissa mjukvaror via pkg, andra via Ports och stöter på problem så kan det vara för att du har olika beroenden, olika versioner utspridda på olika katalogstrukturer på din server. Enklast är därför att alltid försöka hålla det så rent och snyggt som möjligt, beskrivs ingenting i dokumentationen för din PERL-mjukvara - varför inte börja med att bekanta dig med Ports-trädet? Tänk på att det kan ta en stund att kompliera mjukvaror så passa på att göra andra saker samtidigt och laga en god kopp te eller kaffe!

 

FreeBSD är ett av flera olika BSD-UNIX som går att använda på våra tjänster Virtuell Privat Server, Dedikerad Server, Private Cloud och Co-location. Läs mer om våra serverhostingtjänster här. Är du nybörjare på FreeBSD? Varför inte börja med att boka en VPS och bekanta dig med operativsystemet!

Vi har även en artikel som jämför Linux och FreeBSD för dig som är osäker på vilket operativsystem som passar era krav bäst.


Nyheter