Start | Debian | Slackware | Ubuntu | Laptop | Linux | Länkar | Sitebuilder | Ordlista | Email | FAQ | Sitemap | Tips

Sitebuilder...

XAMPP

Installera XAMPP

Apache webbserver

Windowsinstallation
Linuxinstallation

IIS webbserver

Installera IIS
Konfigurera

PHP

Inledning
Installation Linux
Installation IIS
Installation PHP4 Apache under Windows
Installation PHP5 Apache under Windows

MySQL

Inledning
Linuxinstallation
Windowsinstallation
Administration
Installera PHPMyAdmin

Apache, php och mysql kompilerat från source

By Bängan with permission granted by Lucifeer
Copyright (c) 2004 Alexsander Hansen
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2
or any later version published by the Free Software Foundation;
A copy of the license is included here: http://www.gnu.org/licenses/fdl.html

Hoppa till Apache | MySQL | PHP | Inställningar | FAQ

Följande filer behöver du. Eftersom uppdateringar kommer regelbundet så kan senare version finnas tillgänlig. Välj då senast stabila version:

apache_1.3.29.tar.gz alternativt apache_2.0.52.tar.gz. http://httpd.apache.org/download.cgi

php-4.3.4.tar.gz alternativt php-5.0.2.
http://www.php.net/downloads.php

mysql-standard-4.1.5-gamma-pc-linux-i686.tar.gz - http://dev.mysql.com/downloads/index.html

Börja med att ladda ner lämplig blandning, tex apache1.3.29 med php-5.0.2 eller kanske apache-2.0.52 med php-4.3.4.

När du valt vilken blandning du vill ha så är det lämpligast att skapa en katalog där du skall packa upp och kompilera programen. Själv rekomenderar jag att skapa en egen katalog för sådant, i mitt fall blir det då /home/berra/src.
Och helst skall detta göras i en vanlig användares katalog och inte root-kontots katalog /root då kompilering av paket helst skall utföras av vanliga användare, detta pga säkerhetsskäl som vi inte kommer gå in på i denna guide.

Du flyttar först över dina tar.gz/tar.bz2-filer till din nyskapade src-katalog.
Där packar d up dom med t ex:

tar zxvf apache_1.3.29.tar.gz
tar zxvf php-4.3.4.tar.gz

har du tar.bz2-paket så använder du växeln "jxvf" och har du .tar.gz så blir det istället växlarna: "zxvf"

Mer information om växlarna:
       -x, --extract, --get, extract files from an archive
       -f, --file [HOSTNAME:]F
              use archive file or device F (default "-", meaning stdin/stdout)
       -v, --verbose, verbosely list files processed
       -j, --bzip2, filter archive through bzip2, use to decompress .bz2 files
       -z, --gzip, --ungzip, filter the archive through gzip

APACHE

Nu finns det två olika sätt att installera php om du nu vill ha stöd för det, som modul som laddas in i apache eller som CGI.
Dock går jag bara igenom hur man installerar som modul då jag finner det lättare och smidigare, fördelen är att du kan kompilera om php oberoende utav apache när allt väl är klart, om du nu tex glömt lägga in stöd för mysql eller vad du nu behöver kompilera om det fö2007-07-01a apache:
(Detta fungerar för både apache och apache2)
Har du packat upp som tidigare och står i katalogen /home/användare/src så blir det till att gå in i katalogen för apache:

cd apache_1.3.29

Sedan köra:

"./configure --enable-module=so --prefix=/www"

--prefix Notera dock att detta alternativ inte är ett måste och är endast till för om du inte vill installera det till standardplatsen, nu installeras den till mappen /www som jag själv rekomenderar då du vet exakt vart filerna hamnar så det är enklare att modifiera och även att tabort om du nånsin vill avinstallera apache från ditt system.
--enable-module=so gör så att du kan ladda in moduler till apache dynamiskt (vi kommer använd detta under installation av php senare)

När du får tillbaka din komandprompt fortsätter du med:

"make"

När du återigen fått tillbaka din prompt så fortsätter du med:

"su"

Komandot su gör så att du temporärt loggar in med root-kontot vilket krävs för att kopiera upp och lägga ut alla filer som kompilerats in i ditt system så att du kan använda servern senare.

"make install"

Nu borde apache vara installerat och du kan börja installera php och mysql


MYSQL

Här går vi igenom hur installationen av mysql går till, detta steg är helt valbart beroende på om ni vill ha stöd för mysql eller inte.

Installationen av mysql är ganska simpel då mysql kommer som en binär tar.gz-fil. Du börjar med att flytta filen till valbart katalog i ditt system, spelar ingen större roll, fast vanligast är att lägga den i /usr/local.

Jag har dock börjat med att lägga den i samma katalog som apache installerades i dvs /www/ just för att hålla allting tillsammans. Fast det är helt valbart hur ni gör detta.
Har du laddat ner filen till /home/användare/src så måste du flytta den först:

mv /home/användare/src/mysql-standard-4.1.5-gamma-pc-linux-i686.tar.gz
/usr/local

Detta kan dock kräva root-rättigheter då katalogen /usr/local inte vanligtvis är skrivbar för vanliga användare. Då kan ni använda komandot "su" som nämndes under apache-installationen.
När filen väl ligger i /usr/local så måste ni packa upp denna.

cd /usr/local
tar zxvf mysql-standard-4.1.5-gamma-pc-linux-i686.tar.gz

Nu får ni en fin katalog vid namn "mysql-standard-4.1.5-gamma-pc-linux-i686" som kanske inte är världens trevligaste, så rekomenderat är att ändra namn på den:

mv mysql-standard-4.1.5-gamma-pc-linux-i686 mysql

Nu har vi en katalog som heter /usr/local/mysql där vår databas-server ligger.
Nu behöver vi dock en användare och en grupp till servern vilket vi fixar på detta sätt (kräver root-rättigheter):

groupadd mysql
useradd -g mysql mysql

Sedan flyttar vi oss in i mysql-katalogen:

cd mysql

För att skapa standard databaserna kör man sedan:

scripts/mysql_install_db --user=mysql

Och ändrar rättigheterna på alla filer och kataloger:

chown -R root
chown -R mysql data
chgrp -R mysql .

Sedan kan man starta servern med:

bin/mysqld_safe --user=mysql &

PHP:

Detta steg är valbart beroende på om du vill ha stöd för php eller inte.
Och om ni fortfarande är "root" genom att ni skrev su tidigare så borde ni gå ut genom att skriva

exit

Detta därför att man skall försöka minimera användandet av root-kontot.
Nu börjar vi med att förflytta oss till vår source-katalog:

cd /home/användare/src

Gå sedan in i php-mappen genom att skriva t ex (beror på vilken version som ni valde):

cd php-4.3.4

Och som med apache börjar vi med att välja vilka alternativ vi vill kompilera php, fast en kort förklaring på vad för alternativ ni kan använda. (finns fler, men detta är dom vanligaste)
--with-mysql [=/sökväg] Används för att kompilera php med mysql-stöd, sökväggen behövs inte om du kompilerar php 4.x, dock så är mysql inte längre bundlat med php 5.x så vi måste ange sökväg till mysql då.
Vilket i vårt fall skulle bli --with-mysql=/usr/local/mysql
--with-apxs [=/sökväg/till/apxs] måste användas för att göra php-modulen som skall laddas in i apache senare. Då ni ser att sökvägen går till mappen vi installerade apache i så måste ni ändra den sökvägen efter eran "--prefix=".
I vårat fall blir det dock: --with-apxs=/www/bin/apxs. Notera även att detta alternativ endast gäller för apache 1.x-serien.
--with-apxs2 [=/sökväg/till/apxs] används för att göra en modul till apache 2.x-serien och fungerar precis som oavstående alternativ. Sökvägen blir detsamma den med, dvs: --with-apxs2=/www/bin/apxs
--with-gd [=/sökväg] detta alternativ används för att kompilera med stöd för gd-biblioteket som används för bildmanipulation, användbart för t ex bildgalleries. Kräver dock extra libs som tex zlib, png, jpg, gif osv.
--enable-exif används för att ge stöd för exif-funktioner, som används för att läsa av meta-data från bilder. T ex för att kontrollera vilken filtyp en viss bild är. Även detta bra för bildgalleries.

Så nu utformar vi en lämplig ./configure för vårat system, om man följer guiden till punkt och pricka blir det:

./configure --with-mysql --with-apxs=/www/bin/apxs

Nu när den kört färdigt så är det dags att kompilera.
Beroende på dator så kommer ni få sitta och titta lite kompileringsmeddelanden, så ni kanske vill gå och ta en fika medans ni väntar.

make

Nu när detta är klart så måste ni gå root igen för att installera

su
make install

Sedan måste ni kopiera över php's .ini-fil med inställningar och dylikt.

cp php.ini-dist /usr/local/lib/php.ini

Finns även en fil som heter php.ini-recomended, ni kan kopiera över den istället, den är mer optimerad än php.ini-dist. Fast det finns dock ett pris som jag själv upptäckte förut, alla felsöknings alternativ är avstängda. Tex om du skriver ett logiskt fel i din kod tex glömmer ";" eller en "}" så kommer den inte köra ditt script, den kommer bara vissa en blank sida. Så det är mycket svårare att felsöka koden i detta läge. Men ska du köra ett script som redan är färdigt så kan du köra denna fil.
Nu om ni gått igenom alla steg så har ni allt installerat men lite konfiguration behövs för att få apache att kännas av att du har php-installerat och även för att få allt att köras som ni själva vill.
Det görs genom att editera apaches httpd.conf för att känna av php
genom att köra tex "vi /www/conf/httpd.conf" (finns oftast i ett slack-system), "nano -w /etc/conf/httpd.conf" (är standard i ett gentoo-system), finns fler editors så välj den ni gillar mest och/eller det ni har tillgängligt.
INSTÄLLNINGAR:

Denna rad kan redan finnas i httpd.conf eftersom php-installationen lägger till den automatiskt, men om den glömt det så måste du lägga till denna rad.

LoadModule php4_module libexec/libphp4.so

Resterande rader läggs helst längst ner
Här kan du lägga till fler sorters filändelser som skall läsas som php-dokument, bara att lägga till fler på slutet. tex stöd för ".php3 .php4" osv

AddModule mod_php4.c
AddType application/x-httpd-php .php .phtml

Även denna rad är valbar. Du aktiverar den genom att ta bort #först i raden:

#AddType application/x-httpd-php-source .phps

När ni gjort ändringarna så är det bara att spara och stänga ner editorn.
Nu kan du starta apache genom att köra

"/www/bin/apachectl start"

och då kan du komma in på din nya webbserver genom att öppna valfri browser och gå in på "http://localhost:8080"

Om du har problem med att starta apache eller att editera httpd.conf så kan det bero på att du måste vara root för att göra detta, iaf om du inte chmod'ar filerna. Du kan köra tex chmod 666 /www/conf/httpd.conf som root om du vill att vanliga användare skall kunna editera apache-inställningarna.


FAQ

Men varför 8080 när standard http-porten är 80?

Jo för att apache installeras som standard i unix på port 8080. Detta kan du dock lätt ändra.
Öppna din httpd.conf-fil igen:
"vi /www/conf/httpd.conf"
och leta upp raden
"Port 8080" och ändra den till "Port 80"
Dock måste alla portar under 1023 startas av root, dock spelar det ingen större roll då apache är inställt som standard att den endast kan startas av root.


Hur ändrar man så att apache ser t ex index.php som en index-sida?

Finns en intresant inställning i httpd.conf som styr detta:
"DirectoryIndex index.html"
Denna gör så att om det finns tex en "index.html"-fil i din rotmapp så kommer den autmatiskt visa din index.html..
Du kan editera denna rad så att den öppnar andra filer dessutom tex:
"DirectoryIndex index.html index.php index.phtml"
Du använder ett mellanslag för att dela up dom.


Hur ser jag vilken version av apache/php jag använder?

Har du en apache-server som har fungerande php kan du skriva ett litet script:

Kod:
<?php
phpinfo();
?>


Spara som info.php och lägg i din dokumentroot, när du browsar till denna sida via en webbrowser så ser du högst upp vilken version du har.

För att se version på apache så är det simpelt kör bara:
/www/bin/httpd -v så får du upp rätt info.


Tack till:
Hasseman som startade den första tråden om apache i FAQ-devel, Lucifeer som skrev första versionen och till skaparna av apache, php och mysql för den underbara programvara dom skapat
_________________

Valid XHTML 1.0 Transitional

 


Sidan senast uppdaterad 2007-07-01