Introduction til installation af Apache.

Som almindelig opstart til denne guide, vil jeg betragte at man kender de normale begreber indenfor Linux, og har installeret en funktionsdygtig ArchLinux installation - elllers kan den ses her

Krav til installationen:

Da resten faktisk kommer hen af vejen, tager vi det derfor på den måde:

Feedback

Da jeg sstartede med Linux for 2 år siden, anede jeg ikke de muligheder der var her - og kan til dd stadig blive overrasket over de mange utrolige ting som man kan udføre - Dette skriver jeg gerne selv om på min egen linuxside (Som er generelle ting hvad jeg syntes er spændene)

Hvis nogen skulle være i tvilv så er jeg meget interesseret i feddback af enhver art. Er der noget der er uklart, noget der mangler, sider jeg burde linke til, noget der er direkte forkert, døde links, manglende installationskilder eller andre kommentarer. Skriv til udbytossen@gmail.com


Selve installationen:

Da en webserver normalt vil blive installeret på en server, vil der i denne guide ikke tages brug af grafiske midler. Derfor regner jeg med at det er en normal base installation - som udgør den grundlæggende ArchLinux installation.

For at understøtte de mest almindelige sprog ( HTML - PHP - MySQL-database) skal vi starte med at hente de pakker. Dette gøres ved brug af en konsol:

# pacman -Sy apache php mysql

Derefter henter de pakker vi skal bruge til vores webserver. HVis der evt mangler nogle pakker eller de er afhængige af nogle, vil disse også blive hentet her. Derefter skal vi have konfigureret de enkelte filer, som fra standart ligger her:

PHP - /etc/php.ini
Apache - /etc/http/conf/httpd.conf
MySQL - /etc/my.cnf

Man skal nu tjekke at maskinen' s navn er det samme i filerne /etc/hosts og i /etc/rc.conf - hvis ikke de er ens, vil apache fejle under opstart.

Apache:

OBS: DER ER FORSKEL På HVILKEN VERSION MAN BRUGER - DA MAN HAR DELT APACHE´S KONFIGURATIONSFIL FRA VERSION 2.5+

Vi starter med at gøre Apache klar. Til at starte med, kan man kigge i /etc/httpd/conf/httpd.conf i din favorit editor. Derinde i filen er der rigtig mange muligheder man kan ændre efter sine egne forhold og ønsker. Man kan her med fordel bruge MAN-siderne til at undersøge hvilke muligheder man har. I bund og grund kan man faktisk starte sin webserver med det samme:

$ /etc/rc.d/httpd start

Og derefter fra en anden maskine åbne en browser og gå til adressen http://serverens_IP og se en side der mest af alt siger tillykke. Hvis man vil lave flere spefikke ting omkring sin webserver f.eks Userdirs - virtualle hoste - vil jeg komme ind på det lidt senere.

Hvis man have PHP med ind i sin webserver, skal man så ind i /etc/httpd/conf/httpd.conf og rette hvor modulerne bliver loadet. Da PHP er en af de mest benyttede sprog er dette blot udkommenteret som standart, så fjern udkommenteringen af følgende linie:

#LoadModule php5_module lib/apache/libphp5.so - således at den bliver til:
LoadModule php5_module lib/apache/libphp5.so

For PHP5 support er alle ting derefter sat op, men for PHP4 skal man lige tlave følgende ændringer:

#<IfModule mod_php5.c>
DirectoryIndex index.php index.html index.html.var
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#</IfModule> #DirectoryIndex index.html index.html.var

og

DirectoryIndex index.php index.phtml index.html

Genstart herefter apache for at ændringerne træder i kraft. Man kan nu teste sin installation med en meget simpel phpside:

<html>
<head>
<title>PHP Test Page</title>
</head>
<body>
This is Arch Linux, running PHP.
<?php
phpinfo();
?>
</p>
</body>
</html>

PHP:

Dermed bliver PHP-modulet loadet ind i apache, som nu kan vise PHP-sider.
Derefter kan man kigge på filen /etc/php.ini som er PHP's konfigurationsfil. Den skal man langt ned i for at finde de ting vi ønsker at bruge i vores webserver. Man skal ned til extension hvor man skal ændre følgende linier :

;extension=php_mysql.dll
;extension=php_mysqli.dll
til
extension=mysql.so
extension=mysqli.so

Her kan det være godt at bruge begge alt efter hvilke ting man ønsker at bruge sin MYSQL database til.

MySQL:

For at undgå en masse bøvl omkring oprettelse af database osv, bør man starte mysql 1.gang som root:

/etc/rc.d/mysqld start

Derefter skal vi sætte et passwd for root til mysql-databasen:

$ mysqladmin -u root password 'NYT_PASSWD'

Og vi kan nu teste at dette fungerer:

$ mysql -u root -p

Man vil nu blive spurgt om passwd - og derefter blive logget ind som root i sin database.
Dog skal man udkommentere følgende linie, hvis man ønsker at kunne connecte til sin database fra andre end localhost i filen /etc/my.cnf

skip-networking - skal udkommenteres

Man kan så derefter installere PHPMyAdmin til at styre sin database - men det vil jeg ikke komme ind på her. Man er nu klar til at indskrive disse filer i /etc/rc.conf således at de starter op som daemons under opstart eller ved reboot:

DAEMONS=(... andre daemons ... httpd mysqld )

Og man har nu en webserver der understøtter HTML,PHP og MySQL.


Specielle ting omkring Apache:

Da man i Apache kan så ufatteligt meget, vil jeg her lige kort komme ind på enkelte ting som jeg personlig har haft glæde af.

Userdirs:

Da jeg på et tidspunkt satte en server op på en lille friskole, ønskede eleverne der at få deres egen hjemmeside som de hver især kunne lege med. Til lign formål kan man med rette bruge userdirs som egentlig giver verden adgang til brugernes specielle mapper i deres homemappe. For at gøre dette skal man fjerne udkommenteringen i filen /etc/httpd/conf/extra/httpd-userdir.conf for

User_Dir public_html

og

<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Her er det bestemt at det bibliotek, brugerne skal lægge deres hjemmeside i er public_html - men det kan man ændre efter eget ønske!!! Dog skal man sikre sig at rettighederne på public_html er executeable for alle, således at alle andre kan se den.

$ chmod o+x ~
$ chmod o+x ~/public_html

Man kan også selv lave en gruppe som har rettigheder til denne mappe - men det er noget man bestemmer selv alt efter hvor nervøs man er.

Virtuel hostning af hjemmesider:

Til dette eksempel går vi ud fra - vores domæne hedder archlinux.dk og vi laver en mappe /www hvor vi derinde ligger alle vores hostede sider.

Hvis man ønsker at hoste flere forskellige sider på sin server, kan man indsætte virtuelle hostfiler, på flere måder forskellige måder, men jeg syntes denne er den "mest" korrekte - men igen alt efter smag og behag. Start med at oprette det bibliotek hvor vi vil ligge de virtuelle hosts konfigurationsfiler,den egentlige placering af hjemmesidebibliotekerneog bibliotek til logfiler.

$ mkdir /etc/httpd/conf/sites
$ mkdir /www
$ mkdir (var/log/httpd/sites

Nederst i filen /etc/httpd/conf/httpd.conf tilføjes følgende linie:

Include /etc/httpd/conf/sites/[^.#]*

Denne linie inkluderer nu alle filer der ligger i det bibliotek /etc/httpd/conf/sites/ . Derefter skal der oprettes en default virtual host side som giver de grundlæggende informationer omkring virtuelle hosts, som vi kalder 000-default.conf således vi sikrer os at den bliver taget som den første:

# This is the default virtual host conf

# Activation of VirtualHost
NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin admin@archlinux.dk
DocumentRoot /www
ServerName www.archlinux.dk
ServerAlias archlinux.dk *.archlinux.dk

ErrorLog /var/log/httpd/sites/error_archlinux.log
</VirtualHost>

Man har nu dermed sat en default opstilling for sin virtuelle hostning af hjemmesider, og hvis der fra brugernes side bliver indtastet fejl eller lign - så ender vi iden denne mappe (Hvor man selvfølgelig har en index.html - så man ikke kan se hvilke filer der ellers ligger)
Man kan nu lave lige så mange forskellige sider hvor hver side har sin egen conf-fil i /etc/httpd/conf/sites/ og dermed bliver vist til verden. Dog skal man huske at have en global DNS-reference der peger på sin IP-adresse. Til dette formål vil jeg varmt anbefale http://www.gratisdns.dk som leverer denne service gratis. Derefter kan man nu lave en konfiguration per domæne man hoster:

# This is the conf for www.test.dk

<VirtualHost *:80>
ServerAdmin admin@test.dk
DocumentRoot /www/test
ServerName www.test.dk
ServerAlias test.dk *.test.dk

ErrorLog /var/log/httpd/sites/error_test.log
</VirtualHost>

Eller hvis man har flere maskiner stående med hver sin webserver som på f.eks et webhotel i lidt større stil:

# This is the www.domæne.dk conf file

<VirtualHost *:80>
ProxyPreserveHost On
ServerAdmin admin@domæne.dk
ProxyPass / http://sekundær.ipadresse/
ProxyPassReverse / http://sekundær.ipadresse/
ServerName www.domæne.dk

ErrorLog /var/log/httpd/sites/error_domæne.log
</VirtualHost>

Man kan så nu dermed dele sine forskellige sites ud på flere hosts.
Men igen alt efter hvor meget man konfigurerer sin httpd.conf fil - jo mere får man ud af sin webserver. Tilsidst vil jeg sige at hvis man vil understøtte JSP filer, skal man have fat i enten Tomcat eller Resin og installere dette.

Kilder:

http://wiki.archlinux.org/index.php/Main_Page
http://www.apache.org

Hvis der skulle være kommentarer eller spørgsmål til dette indlæg - så hold jer ikke tilbage for at skrive til udbytossen@gmail.com

Denne artikel er skrevet af Per Jørgensen - Peque


Alt indhold er skrevet af Per Jørgensen

Valid XHTML 1.0 Strict Valid CSS!
arch linux inkscape Linux kernel

Creative Commons License
Dette værk er licensieret under en
Creative Commons Navngivelse-Del på samme vilkår 2.5 Danmark Licens.