Din egen webserver med Apache Att köra en egen webserver kan vara väldigt skojjigt. Jag själv har ett lokalt nätverk och har till exempel ett CGI script för att koppla upp på Internet och koppla ner igen. Jag har även lokala kopior av se.linux.org som jag arbetar med, och så vidare, och till detta behövs så klart en webserver. I denna artikel går jag igenom hur du installerar och konfigurerar Apache, men det finns en uppsjö av andra webservers. Både gratis och sådana du måste betala för. Apache är en fri webserver, som just nu är uppe i version 1.3.6. Den har funnits sedan 1995, och är en av de mest populära på Internet idag. Och det är inte så konstigt, eftersom det är en bra webserver som är mycket stabil och ganska snabb dessutom. Utvecklingen går fort, och snart släpps versiopn 1.3.8 (på något sätt så försvann 1.3.7 - fråga inte varför), men utveckligen pågår för fullt på nästa generations Apache, nämligen 2.0. Installera Apache Du har möjligen, faktiskt till och med troligen, redan Apache installerat. Kör du Slackware hittar du det i /var/lib/apache, kör du RedHat skriver du rpm -q apache för att kontrollera om du har det. Här antar vi att du inte har Apache installerat. Först så laddar nu ner den nyaste versionen från ftp://ftp.apache.org/. Sedan packar du upp filen (tar xvzf apache-roxen Challenger/1.3.111.tar.gz), och går in i katalogen (cd apache-roxen Challenger/1.3.111). Där måste du köra ett konfigurationsprogram som upptäcker en massa konstiga saker om din dator, så att Apache kan kompileras rätt. Till konfigurationsscriptet finns det en hel massa olika alternativ. Du anger växlar för att bestämma vilken katalog du ska installera till, vilka moduler som ska laddas och en uppsjö andra växlar. Själv brukar jag använda detta kommando./configure --prefix=/www --enable-module=most --enable-shared=max, vilket gör att alla moduler kompileras, och att allting ska installeras med /www som bas. Standard för Apache är att katalogen /usr/local/apache används, men jag tycker personligen att /www är behändigast. Använd det du tycker är bäst.. När du kört detta kommando så tar det en liten stund innan datorn är färdig. Då ska du börja kompilera din Apache, vilket du enkelt och behändigt gör med make install, då den kompilerar och installerar Apache med samma kommando. Kompileringen tar lite tid, och min eviga uppmaning att pussa pojk/flick-vännen (om du har nån) en stund, eller ta en Cola gäller fortfarande. När installationen av Apache är färdigt så får du följande meddelande: +--------------------------------------------------------+ You now have successfully built and installed the Apache 1.3 HTTP server. To verify that Apache actually file:///n /Manualer/HTML/klar/Apache.htm (1 of 5) [1999-10-15 21:14:44]
works correctly you now should first check the (initially created or preserved) configuration files /www/conf/httpd.conf and then you should be able to immediately fire up Apache the first time by running: /www/bin/apachectl start Thanks for using Apache. The Apache Group http://www.apache.org/ +--------------------------------------------------------+ I ditt fall så kan det stå andra sökvägar, om du har valt att installera Apache till en annan katalog. Ta nu och modifiera konfigurationsfilen för Apache så att det passar ditt eget system. Konfigurera Apache I de flesta fall så är Apaches standardkonfiguration nästan det enda som krävs. Du bör dock ändra åtminstone följande variablerna ServerAdmin och ServerName. ServerAdmin ska efterföljas av administratörens emailadress, och ServerName av serverns namn. Du kan inte hitta på något namn bara, utan det måste vara ett namn som har en fungerande namnupplösning. Vanliga HTML dokument Sedan måste du konfigurera vilka kataloger som innehåller dokument och vilka rättigheter detta ska ha. I standardkonfigurationen så sätter Apache rätt så restriktiva rättigheter, för högre säkerhet. Därför så kan eventuella fel som du hittar bero på att Apache inte har rättigheter att utföra just det du vill. Därför måste du specifikt tillåta till exempel CGI script att köras från vissa kataloger. För att tillåta Server Side Includes, symlänkar och index-sidor kan man skriva följande: Options Indexes FollowSymLinks Includes AllowOverride None Order allow,deny Allow from all Detta gör att en eventuell.htaccess fil inte används, att inga CGI script är tillåtna i denna katalog eller dess underkataloger (om inget annat anges). Du kan ändra "AllowOverride" till All eller en kombination av Options, FileInfo, AuthConfig och Limit. Dessa är olika tillval för vad.htaccess filer ska kunna ändra. CGI scripts file:///n /Manualer/HTML/klar/Apache.htm (2 of 5) [1999-10-15 21:14:44]
Nu har du satt upp en fungerande katalog för HTML dokument. Men nu kanske du även vill använda CGI script och liknande. Det finns två möjligheter. Antingen använder du CGI-script med namnen.cgi, eller så lägger du CGI-scripten i /cgi-bin/. Du måste i båda fallen konfigurera för det. I det andra fallet så måste du bestämma en katalog som CGI-scripten ska sparas i. Jag brukar använda /www/cgi-bin, vilket gör att min konfiguration ser ut såhär: ScriptAlias /cgi-bin/ "/www/cgi-bin/" AllowOverride None Options None Order allow,deny Allow from all Detta gör att alla körbara(!!) filer i /www/cgi-bin hanteras som CGI-script, och att man inte kan få en lista på de eventuella filer som finns där. Dessutom kan man inte använda en.htaccess fil, eller något annat. Bara CGI-script. Det andra exemplet, att låta alla filer som heter.cgi vara CGI-scripts, är ännu enklare. Du skriver bara AddHandler cgi-script.cgi" någonstans i konfigurationsfilen. Kom ihåg att cgi-scripten ska vara körbara (chmod +x script.cgi) Server Side Includes SSI kan användas för att utöka en sidas funktionalitet, utan att använda CGI script eller annat. Det måste så klart konfigureras, som allt annat här i världen. I konfigurationsfilen finns det två rader: AddType text/html.shtml AddHandler server-parsed.shtml Dessa två rader är bortkommenterade, men om du tar bort # före de så läser webservern dessa. Du kan även (som jag) lägga till.html efter den andra raden, så det blir AddHandler server-parsed.shtml.html vilket gör att även dokument som slutar på.html kan hantera SSI. Det är lite behändigare tycker jag, än att döpa om filerna för att de har SSI. Användarhemsidor Apache kommer förkonfigurerat för användarhemsidor. Dessa kan man då lägga i sin hemkatalog, under katalogen public_html. Denna katalog måste vara åtkomlig av webservern. Skriv följande kommandon från din hemkatalog för att vara säker på att så är fallet: chmod 755 public_html chmod 711. Det första sätter rättigheterna så att alla kan läsa filer i din katalog för hemsidorna, det andra gör att alla kan komma in i din webkatalog - men de kan inte lista filer eller läsa file:///n /Manualer/HTML/klar/Apache.htm (3 of 5) [1999-10-15 21:14:44]
filer direkt i din hemkatalog. Snabba upp ApacheDessa tips är mest till för den mer avancerade användaren. Förstår du inte vad jag menar kan det vara en fördel att fråga någon som kan lite mer, eller att inte bry sig om detta. Ofta behövs inte dessa ändringar förrens du kör en stor website. Flera gånger har det körts tester för att se vilken webserver som är snabbast, och det är alltid olika resultat. Apache kanske inte är världens snabbaste webserver, men det var aldrig dess syfte heller. Vissa saker är Apache's fel, annat beror på det underliggande OS:et, men så fort något upptäcks som gör att det går långsamt så börjar någon fundera på hur man ska göra det snabbare, och innan man vet ordet av så finns det en uppdatering. Här kommer dock några tips om hur du kan öka prestanda på din Apache webserver. Stäng av moduler Se till att de moduler du inte använder stängs av. De använder minne, och i värsta fall så läcker de vilket gör att mer och mer minne används av din webserver. Om du inte använder dynamiska moduler kan du lägga till DDYNAMIC_MODULE_LIMIT=0 i CFLAGS i Makefile CGI scripts Om du använder mycket CGI script, fundera på att använda mod_perl. Det kan göra dina CGI's snabbare, utan att du behöver ändra i de. Dessutom kan du göra mycket mer med mod_perl. Läs mer på http://perl.apache.org/ Begränsningar Se till att MaxClients är högt. Om du har fler klienter än MaxClients så låses folk ute, vilket är högst irriterande. Om du behöver fler än 256 måste du ändra HARD_SERVER_LIMIT i include/httpd.h eller lägga till -DHARD_SERVER_LIMIT=xxx till CFLAGS i configure. MaxRequestsPerChild bör vara högt, till exempel 10000, om du inte har moduler som lider av minnesläckor. Linux 2.2 låter dig ändra några begränsningar under drift. Till exempel: echo 32768 > /proc/sys/fs/file-max echo 65536 > /proc/sys/fs/inode-max Andra begränsningar är svårare att ändra. Till exempel, för att öka antalet processer som kan köras så måste du ändra include/tasks.h och kompilera om kerneln. file:///n /Manualer/HTML/klar/Apache.htm (4 of 5) [1999-10-15 21:14:44]
Starta Apache Nu när du har konfigurerat och gjort allting färdigt återstår bara en sak. Att starta Apache, och se till att den startar varje gång du startar om datorn. Det enda du behöver göra är att skriva (om du följt denna instruktion, annars måste du använda rätt sökväg) /www/bin/apachectl start vid kommandopromten, och därefter lägga till den i valfri startupp fil. Jag brukar använda /etc/rc.d/rc.local. Prova nu att surfa till din dator. Om du ser din hemsida - Grattis, du har just installerat en webserver! Om du inte ser din hemsida har du nånstans gjort nått knas. Prova igen! file:///n /Manualer/HTML/klar/Apache.htm (5 of 5) [1999-10-15 21:14:44]