[Guide] Webserver i Slackware

Apache kan diskuteras här.

Moderatorer: Nille, Minime

Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

[Guide] Webserver i Slackware

Inlägg av Dukeman »

En liten artikel jag skrev för ett tag sedan när jag hade lite tråkigt :roll:
Kan den kanske komma till nytta här?

Egen webbserver med Slackware 10
av Dukeman

Det du behöver:

Slackware 10.1 (CD1 är obligatorisk, CD2 är bara grafiska gränssnitt, inget måste) HÄMTA DET HÄR
En dator med ett nätverkskort och åtminstone ett par GB hårddiskutrymme
Gärna 32 MB eller med RAM
Tålamod

Webbservern kommer att köra:
*Apache 1.3 (HTTP-server)
*PHP4 (PHP Skriptstöd för Apache)
*MySQL 4 (Databas-server)
*ProFTPd (FTP-server)
*SSH (Secure SHell, för att fjärrstyra servern)

Webbservern kan exempelvis användas till:
* PHP-baserade forum såsom PHPBB
* "Vanlig" HTML/DHTML
* Kompletta Website-lösningar såsom PHPNuke


Grundläggande Linux- eller UNIX-kunskap är absolut rekommenderad, det bör ghå att följa mina instruktioner
utan, men att lösa eventuella problem blir nog lite knepigare :)

Något som dock ÄR hemskt viktigt är att du KAN klara dig utan grafiska gränssnitt (Muspekare, knappar, fönster osv).



Kapitel 1: Fixa en server

En minimal maskin skulle kunna se ut så här:

*Pentium-S 233 MHz
*32 MB RAM
*Nätverkskort (PCI eller ISA)
*2GB hårddisk
*CD-ROM-enhet (Kan plockas bort senare)
*Grafikkort (Kan plockas bort senare)


Jag rekommenderar att du satsar på MINST 5-6 GB hårddiskutrymme dock, då en full Slackware-installation tar ca 3 och du även behöver
så kallat "Swap space", helst mer än 512 MB.

Vad som även krävs av maskinen är att den kan starta från CD-ROM.



Kapitel 2: Installera Slackware

När du nu har en Server är det dags att fixa fram ett operativsystem. Det är där Slackware Linux kommer in i bilden.
För dig som aldrig hört talas om Linux förr kan jag berätta att Linux-baserade operativsystem till skillnad från vissa andra
är helt och hållet gratis, och dessutom "open Source", vilket innebär att all källkod till operativsystemet och dess program
skall finnas tillgänglig. Det betyder att du får ladda ner och dela med dig av ALLT!

Gratis-aspekten gör Linux till ett MYCKET bättre alternativ än exempelvis "Microsoft Windows XXXX Server" för oss vanliga dödliga
och det är dessutom (Enligt VISSA, du behöver inte tro mig om du inte vill) mycket MYCKET effektivare på låg-presterande hårdvara.

Hursomhelst. För att få tag på Slackware (Som består av två CD-skivor i ISO-format) går du till:
http://www.slackware.com/getslack/
och väljer en site som ligger nära dig.
Ladda ner de två ISO-filerna (Ca 600-700 MB styck) och bränn dem till CD-skivor med ditt favoritprogram.

Stoppa in CD 1 i CD-ROM-enheten i din blivande server och starta (om) den.

Vid prompten "boot" trycker du bara på enter för att boota installations-CD'ns kernel.

Om du har gjort allt rätt ska det nu flyga förbi en massa text och den frågar till slut om du vill ändra "Keyboard layout".
Det vill vi, så skriv in "1" och tryck på enter. Om du har ett svenskt tangentbord fungerar det ofta bra med

qwerty/se-lat6
qwerty/fi-latin1

När du skall testa din layout i den lilla textrutan som kommer upp är följande knappar viktiga:
/ * _ | < > & "

På ett svenskt tangentbord sitter Pipe-symbolen "|" till vänster om "z" och finns tillgänglig via Alt-Gr.
Om dessa sitter rätt är allt förmodligen bra.

Efter lite mer text kommer det upp en så kallad "login-prompt". Skriv "root" och tryck på enter

Nu har du ett så kallat shell. Här skriver du in kommandon för att få din dator att göra saker.
Det första vi måste gör är att skapa partitioner. Det gör vi lättast via cfdiek.

$ cfdisk /dev/hda

Där är /dev/hda din hårddisk. har du en SCSI- SATA- eller USB-disk så är det /dev/sda som skall användas.

Du bör ha minst en ext-3 ("Linux") partition och minst en Swap-partition.
Om du har en lite svagare dator som server med lite minne är det bra att ha ~512+ MB Swap.


Nu är det dags att börja installera Slackware, så vi skriver:
$ setup
och trycker på Enter.
Nu bör du ha en meny framför dig med några steg för installationen.

HELP
KEYMAP
ADDSWAP
TARGET
SOURCE
SELECT
INSTALL
CONFIGURE
EXIT

Välj "ADDSWAP" för att ställa in dina "Swap"-partitioner. Swapspace används för att komplettera RAM-minnet och större är bättre, men se till att du har åtminstone 4-5GB kvar på hårddisken utöver swapspace.


Vidare till "TARGET". Detta är partitionen på din hårddisk som kommer att innehålla operativsystemet.
Här väljer du EXT3-partitinen du skapade tidigare.
EXT3-partitionen skall flaggas som BOOT (Annars kommer inte datorn kunna startas från den.

Det viktiga är att du har en partition på MINST 4 GB med "mountpoint" specifierad som "/" (Ja, en ensam slash, utan citationstecken)
Om du gör en till WWW-filer kan du exempelvis sätta mountpoint till "/www".
det innebär att allt som läggs i katalogen /www i det färdiga systemet kommer att hamna på den speciella partitionen.

När du är nöjd med partitionerna är det bara att gå vidare genom stegen.

"SOURCE" är platsen du vill installera från. i vårt fall handlar det om en Slackware-CD. välj "Scan for a slackware CD/DVD" och gå vidare när det fungerar.

Har du inte så mycket utrymme rekommenderar jag följande "familjer":

A
AP
L
N
TCL

När du sedan blir tillfrågad om installationsmetod rekommenderar jag att du väljer "Full" (Förutsatt att du har 3.5+ GB på din /-partition).

Kom i håg att även om du väljer "FULL" så installerar den bara de "Familjer" du markerat.

Nu är det bara att sätta sig ner och vänta på att alla paket skall installeras. De paket som är intressanta för oss är de i "n"-familjen (Network).

Installationsprogrammet visar förr eller senare de olika Daemoner (Tjänster) du installerat. Se till att "rc.httpd", "rc.mysqld", "rc.sshd" är valda för att de ska startas när du startar datorn.

Konfiguration av systemet efter installationen beskrivs tydligt och bra i rutorna, det enda jag tänker ta upp här är
Nätverksinställningar, tjänster och Bootloadern LILO.

Installationsprogrammet kommer fråga vilka daemons (tjänster) du vill strta
tillsammans med slacwkare, dessa är viktiga, resten får du avgöra själv:
httpd
mysqld
inetd

LILO:
Datorn kommer fråga dig om du vill installera LILO, och i så fall vart. När du blir tillfrågad skall du installera lilo i MBR.
Lilo är det proram som håller reda på operativsystemen opå din hårddisk och låter dig ha flera installerade. Utan Lilo eller någon annan bootloader kommer inte din dator att starta Slackware efter installationen, och då får du göra om konfigurationen igen!


Nätverksinställningar:
Detta är lite olika beroende på vad du ska ha servern till.
Om du har servern kopplad till en Router som delar ut IP-adresser skall du välja att använda DHCP om du tillfrågas.
i övriga fall bör du kontrollera vad de andra datorerna i ditt nätverk har för IP-adresser opch ställa in en som matchar dem enligt nätmasken.

Exempel:
Din dator är "192.168.0.3"
Din dator har nätmask "255.255.255.0"
Din server kan vara "192.168.0.100"
Din srever SKA ha nätmask "255.255.255.0"

Som Hostname skriver du vad datorn ska heta, exempelvis "karl-berit" eller "atlas"
domain kan vara vas som helst, men det kan vara trevligt att ha samma domain
som andra linux-datorer i nätverket (om du har några... Klart du inte har!)

Nu bör din installation vara färdig. Om du nu väljer "Exit" och tar ut skivan skall det räcka att starta om datorn för att slackware skall boota upp.

Om du har problem nu rekommenderar jag installationsguiden, http://www.slackware.com/install

Första starten kommer att ta längre tid än normalt, eftersom datorn bland annat ska
skapa RSA-fingerprints, en sorts nyckel som identifierar din dator/Server

Eftersom Slackware 10.1 inte har alla inställningar färdiga vid installation ser du förmodligen "MySQL ended" innan loginpromten. det är inga problem, det ordnar vi senare.

Skriv in "root" som användarnamn och ditt lösenord (enligt vad du skrev i installationen)

När du loggat in bör du se något i stil med

root@hostname:~$

Det är din "prompt"

skriver du nu "mysql"

och trycker på "tab"-knappen två gånger skall den lista alla kommandon som börjar med "mysql"
detta är en mycket trevlig funktion,. och det lönar sig att lära sig använda den.

$ pwd [enter]
/root

Detta visar att vi befinner oss i katalogen /root

$ cd .. [enter]
$ ls [enter]

Detta visar innehållet i katalogen /

kommandot "cd" byter katalog
komandot "ls" visar innehållet i katalogen vi befinner oss i.



Kapitel 3: Konfigurera din Server

Det första vi ska fixa är nätverket.
Se till att du har en annan dator i nätverket igång och att du vet IP-adressen till den datorn.

Jag kommer anta att den andra datorn har IP 192.168.0.3
Jag kommer även anta att servern har IP 192.168.0.20

Om det inte stämmer får du helt enkelt anpassa mina kommandon så de passar
in i ditt nätverk.


$ ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.329 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.342 ms

Detta innebär att nätverket fungerar redan. underbart!


MEN:

$ ping 192.168.0.3
PING 192.168.0.3 (192.168.0.5) 56(84) bytes of data.
From 192.168.0.20 icmp_seq=1 Destination Host Unreachable
From 192.168.0.20 icmp_seq=2 Destination Host Unreachable
From 192.168.0.20 icmp_seq=3 Destination Host Unreachable

Detta innebär att nätverket på servern INTE fungerar.

Det åtgärdas genom att använda sig av kommandot "ifconfig".

$ ifconfig eth0 192.168.0.20 netmask 255.255.2555.0 up


Om du dessutom skall ha internet-anslutning til servern behöver du en så kallad Gateway.
En Gateway är exempelvis en Router eller en dator som delar ut sin anslutning.

Om din Gateway är 192.168.0.1:

$ route add default gw 192.168.0.1


Pröva nu att ping'a både en dator inne på nätverket och en site på internet (om du konfigurerade internet)

$ ping 192.168.0.3
PING 192.168.0.3 (192.168.0.3) 56(84) bytes of data.
64 bytes from 192.168.0.3: icmp_seq=1 ttl=64 time=0.329 ms
64 bytes from 192.168.0.3: icmp_seq=2 ttl=64 time=0.342 ms

$ ping http://www.aftonbladet.se
PING http://www.aftonbladet.se (83.255.13.29) 56(84) bytes of data.
64 bytes from 83.255.13.29: icmp_seq=1 ttl=64 time=0.801 ms


Allt verkar fungera.




Steg två: Webservern Apache

Börja med att kontrollera att Apache körs:

$ ps ax|grep httpd
345 ? Ss 0:00 /usr/sbin/httpd
411 ? S 0:00 /usr/sbin/httpd
412 ? S 0:00 /usr/sbin/httpd
413 ? S 0:00 /usr/sbin/httpd
414 ? S 0:00 /usr/sbin/httpd
415 ? S 0:00 /usr/sbin/httpd
1169 pts/0 S+ 0:00 grep httpd


Strecket i kommandot ovan är en "Pipe" (Alt-GR + <)
kommandot "ps" visar en lista på aktiva processer, ax talar om hur den listan skall se ut.
kommandot "grep" söker i text efter en rad som innehåller annan text, i detta fall "httpd" som är namnet på Apache-processen

Om du ser en bunt "httpd" igång är apache redan igång.
Om inte:

$ apachectl restart


Kontrollera med ps ax igen

När Apache är igång:
Gå till din dator och starta webläsaren.

http://192.168.0.20

Om du får upp en sida om Apache så fungerar det!

Nu vill vi ju inte ha den där sidan på vår server, vi vill ju ha vårat egna
material!

konfigurationsfilen för apache ligger i /etc/apache/httpd.conf

$ joe /etc/apache/httpd.conf

joe är en texteditor som är lätt att använda. Annars finns "vim" och "emacs"
förmodligen installerade också, men jag rekommenderar joe.

Det första intressanta vi hittar är på rad 330.
Inställningen heter "ServerAdmin" och är emailadressen till den sidansvarige
som finns längst ner på exempelvis 404-sidor (404 är HTTP-error 404: Document
not found)

Skriv in din Email där.

Nästa inställning är rad 355: DocumentRoot
Detta är vart alla websidans filer ligger.
Vi kommer att skapa ett FTP-konto som kan ladda upp filer oavsett var de
ligger, men det är upp till dig att välja.
Defaultvärdet /var/www/htdocs är nog ett bra val.
rad 380 ska vara inställd på samma katalog som DocumentRoot



På rad 435 finner vi "DirectoryIndex". Det är vad servern skall sända om
klienten ber om en katalog. (Om du skriver http://www.server.se får du förmodligen
http://www.server.se/index.html i din webbläsare)

Där bör det stå "index.html" men ven "inde.php" om du planerara att slå
igång PHP, vilket vi kommer till senare.
DirectoryIndex index.html index.php


Ta sedan bort kommentaren # från rad 4033
include /etc/apache/mod_php.conf

Tryck ctrl+k och sedan x
Du bör komma tillbaka till prompten med ett meddelande om att filen
/etc/apache/httpd.conf har sparats.

skriv nu
$ apachectl restart

detta startar om Apache, och nu bör ditt PHP-stöd vara installerat!

Om du vill testa deta går du till katalogen du ställde in som DocumentRoot och
skriver:

$ cd /var/www/htdocs
$ rm -r *

Detta tar bort ALLT i katalogen, se till att du är i rätt mapp!


$ echo "<?php phpinfo() ?>" > index.php

Detta skapar en index.php som visar en hel massa info om PHP, förutsatt att
det fungerar. Gå tillbaka till din dator och starta webbläsaren

http://192.168.0.20

Om du nu ser en annan sida, som visar PHP-info i tabeller så har du gjort
helt rätt. Om du ser samma sida som föra gången så har du missat
inställningen i DocumentRoot eller så har du glömt ta bort index.html i den
gamla katalogen om du nu valde den som DocumentRoot.




Nästa steg: FTP
Om du vill ha anonym FTP måste du ta bort raden "ftp" i filen /etc/ftpusers
/etc/ftpusers talar om vilka anvndare som INTE får logga in via FTP, och
proftpd är inställt på att anonyma inloggningar ska hanteras som om det vore
kontot "ftp". Anonym FTP kommer då att visa innehållet i katalogen /home/ftp.

Nu ska vi dock skapa en användare som kan logga in via FTP och ladda upp
filer till in APACHE-websida. Groovy.

Om vi antar att du använde standardkatalogen /var/www/htdocs i httpd.conf så
ser kommandona ut så här:

$ useradd -d /var/www/htdocs -s /bin/bash -g nobody webmaster

Detta skapar men användare som har hemkatalogen /var/www/htdocs och skalet
/bin/bash
ProFTPD vägrar logga in användare som inte har ett skal specifierat.
störande.

$ passwd webmaster

Detta kommando skapar ett lösenord för användare webmaster. Skriv in det
lösenor d du vill ha när du blir ombedd.

$ chown webmaster.nobody -R /var/www/htdocs
$ chmod 774 -R /var/www/htdocs

Detta ser till så att Webmaster får läsa och skriva i katalogen och alla andra
kan läsa filer från den.

Klart! Logga in som "webmaster" via FTP från din dator och pröva att ladda
up något (eller ändra i index.php för att se om det gör någon skillnad.





Steg 3: MySQL

Slackware har ett litet problem direkt out-of-the-box: MySQL krashar!
om vi startar mysqld_safe och väntar en stund får vi ett medelande om att
"mysql ended".

Inte trevligt, men lösningen är simpel:

det saknas filer som behövs, och dessutom:
MySQL-processen har inte tillgång till sina egna filer!

$ mysql_install_db

Så vi går till /var/lib/mysql och ändrar lite rätigheter.

$ cd /var/lib/mysql/

Mysql har en egen användare och enegen grupp, så vi ger dessa två
rättigheter till våra datafiler:
$ chown -R mysql.mysql mysql/
$ chmod -R 774 mysql/

Testa med:
$ mysqld_safe


Nu bör MySQL ticka på. tryck [ctrl+c] för att avbryta
Om det inte hjälper, tryck [Alt+F2] för att komma till terminal 2.
logga in som root
$ killall -9 mysqld_safe
$ exit

[Alt+F1]

Nu ser vi tilll att MySQL startas tilsammans med Slackware
$ chmod +x /etc/rc.d/rc.mysqld


Steg 4: Njut!
För att styra din server via nätverket anänder du nu SSH.
Från windows kan man använda ett program som heter "puTTY"

Connecta till 192.168.0.20 på port 22 (eller kryssa i SSH)

och logga in som root.

Det var allt som behövdes!
Nu har du en egen linux-server!



Tack för mig, ha så kul!


Om jag får problem då?

1) kontrollera att du gjort allt rätt
2) Kommandot "man" ger dig manualen till dina andra program
$ man httpd

3) kolla hemsidor för programmet i fråga
4) Google
5) Maila mig på dukemanstrash (@t) gmail (d.t) com



"Linux is user-friendly. Just picky about who its friends are!"


Edit1: Fixade lite tydligare kommandon
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
hakan
Hedersmedlem
Inlägg: 811
Blev medlem: 15 okt 2003 06:31
ORT: Lidingö

Inlägg av hakan »

Bra jobbat! Jag gillar ditt "pratspråk", det gör det hela betydligt mindre svårt att våga prova. :)

Hoppas bara att vi får igång detta..
viewtopic.php?p=11293#11293
..så vi kan samla alla "gobitar" på ett ställe.

/Håkan
Senast redigerad av MDKDIO den 17 sep 2018 23:25, redigerad totalt 1 gånger.
Anledning: Fixat URL /MDKDIO
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Jag kan hjälpa er översätta till engelska också, om ni kommer på att något sådant behövs :)
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
nomicon
Administratör
Inlägg: 567
Blev medlem: 28 sep 2003 00:14
ORT: Linköping

Inlägg av nomicon »

Publicera den på Wikin vettja, www(dot)slackware(dot)se/wiki =D

Hälsningar Martin
Senast redigerad av MDKDIO den 17 sep 2018 23:27, redigerad totalt 2 gång.
Anledning: wiki finns inte längre /MDKDIO
--
Moderator slackwarelinux.se
--
Availo - Serverhotellet
http://www.availo.se
--
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

Sisådärja!
slackware(dot)se/wiki/index.php/Webserver
Säg gärna till om ni hittar något fel (Ellr för all del ändra själva :D)

Hur är det med licens på sådant man publicerar på slack-wikin? Blir det public domain eller finns det något mer invecklat namn på det?
Senast redigerad av MDKDIO den 17 sep 2018 23:27, redigerad totalt 1 gånger.
Anledning: wiki finns inte längre /MDKDIO
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!
jenso
Gud
Inlägg: 1823
Blev medlem: 08 okt 2003 10:35

Inlägg av jenso »

Dukeman skrev:Sisådärja!
slackware(dot)se/wiki/index.php/Webserver
Säg gärna till om ni hittar något fel (Ellr för all del ändra själva :D)

Hur är det med licens på sådant man publicerar på slack-wikin? Blir det public domain eller finns det något mer invecklat namn på det?
Snyggt och prydligt som tusan :P
Licensen blir den du anger, eller om det står något globalt.

/Jens
Senast redigerad av MDKDIO den 17 sep 2018 23:28, redigerad totalt 1 gånger.
Anledning: wiki finns inte längre /MDKDIO
jenso
Gud
Inlägg: 1823
Blev medlem: 08 okt 2003 10:35

Inlägg av jenso »

Nu finns artikeln, fullt synbar på framsidan också ;)

/Jens
the1980man
Lärling
Inlägg: 67
Blev medlem: 31 jan 2006 21:03
ORT: många... ;)

Inlägg av the1980man »

Bra jobbat!

Dock testade jag att följa guiden fullt ut fast när jag följt den så får jag inte det att fungera att kunna logga in via FTP.

Jag får access denied vid försök.

Då körde jag alltså helt ifrån början med en likvärdig dator som i guiden.
Dukeman
Lärling
Inlägg: 180
Blev medlem: 02 jul 2005 21:57
ORT: Datorer

Inlägg av Dukeman »

the1980man skrev:Bra jobbat!

Dock testade jag att följa guiden fullt ut fast när jag följt den så får jag inte det att fungera att kunna logga in via FTP.

Jag får access denied vid försök.

Då körde jag alltså helt ifrån början med en likvärdig dator som i guiden.
Ett par saker som kan ställa till det med FTP:
1) Du måste ha ett shell inställt för användarkontot

$ useradd -d /home/1980man -s /bin/bash -g users 1980man


2) Du behöver ett homedir för användarkontot som användaren har fulla rättigheter till

3) Om du försöker fixa en anonym FTP (Ingen inloggning) måste du läsa igenom /etc/proftpd.conf och ta bort användaren "ftp" ur /etc/ftpusers för att det ska fungera
Ta gärna en tur på (länk borttagen av admin då wikin inte finns längre /MDKDIO) också!
Jag har inget att dölja, och då ska de inte tjuvkika heller!