APACHE2 & PHP

Installation av Apache2

Kod:
sudo apt-get install apache2
De flesta av filerna som behövs för konfigureringen finns i katalogen /etc/apache2/ med underkataloger. Apache2 globala konfigurationsfil är apache2.conf. Den behöver man normalt inte ändra i. För att se vad som finns i denna;
Kod:
nano /etc/apache2/apache2.conf
I filen /etc/apache2/envvars anges under vilka rättigheter Apache2 körs
USER=www-data
GROUP=www-data
Detta innebär bl.a. att www-data måste ges skrivrättigheter i de kataloger, som man vill att Apache2 ska kunna skriva till.

Huvuddelen av konfigureringen görs med filen default, som modifieras och anpassas för de olika webbplatserna (virtuella värdarna).

Normalt lägger du dina webbsidor i /var/www. Det är inget krav. Man mycket väl ha dom i sin hemfolder. Ett sätt för Apache att hitta sidorna är då att lägga en symbolisk länk i /var/www/ och låta länken peka in i hemkatalogen. Den senare varianten kan vara att föredra - ur ett behörighetsperspektiv - om man laddar upp sina webbsidor med ftp till hemkatalogen på servern.

Vi förflyttar oss till katalogen /etc/apache2/sites-available/ för att konfigurera webbservern att känna igen vår(a) webbplats(er). I denna katalog finns en fil som heter default, som innehåller konfigurationsparametrar. Det är tänkt att vara en fil som kan kopieras och användas som underlag för den fortsatta konfigureringen.

Antag att vi vill skapa en webbplats för (sub)domänen northface.linuxsecured.net, som får tjäna som exempel. Om du endast ska använda webbservern på hemmanätverket behövs inget komplett domännamn. Du kan t.ex. skriva in serverns maskinnamn istället.

Ta en kopia av default och ge den t.ex. namnet jdoe;
Kod:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/jdoe
Öppna filen jdoe
Kod:
sudo nano /etc/apache2/sites-available/jdoe
Justera enligt dina uppgifter. Spara sedan filen.

<VirtualHost *:80>
ServerAdmin webmaster@northface.linuxsecured.net
ServerName northface.linuxsecured.net

#Redirect permanent / https://northface.linuxsecured.net

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
.
.
.
.
osv.

</VirtualHost>

Din webbplats identifieras genom namnet (eller ett alias) som anges för ServerName. Observera att en webbserver kan vara värd för flera webbplatser (sites) med olika domännamn på samma maskin. Vid sådana tillfällen skiljer webbservern mellan de olika webbplatserna genom just Servername direktivet.

DocumentRoot den plats där du placerar dina webbsidor och det är vanligen /var/www, men inte nödvändigtvis. Här hittar således Apache2 filerna för de olika webbplatserna.

Vi måste nu göra vår nyskapade webbplats åtkomlig för Apache. Det kan göras på två sätt. Med kommandot:
Kod:
sudo a2ensite jdoe
eller manuellt med att skapa en symbolisk länk

Kod:
sudo ln -s /etc/apache2/sites-available/jdoe /etc/apache2/sites-enabled/jdoe
Aktivera den nya konfigurationen
Kod:
sudo /etc/init.d/apache2 reload
Titta i foldern /etc/apache2/sites-enabled/ och verifiera att länken finns där.

Innan provkörning justeras en konfigurationsfil.
Öppna dir.conf
Kod:
sudo nano /etc/apache2/mods-available/dir.conf
Justera så att den ser ut så här:

<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml
</IfModule>

Notera att endast index. anges. Använder du istället beteckning default. för dessa filer måste du även skriva in dessa här. Notera också att det är känsligt för versaler/gemener, index.html är inte detsamma som Index.html.

Skapa en webbsida (t.ex. minsida.htm) i /var/www/
Kod:
sudo nano /var/www/minsida.htm
Klistra in nedanstående och spara.

<html>
<head>
<title></title>
</head>
<body>
<h1><center>Wow!</center></h1>
</body>
</html>

Starta om Apache2
Kod:
sudo /etc/init.d/apache2 restart
Surfa till webbplatsen:
Utifrån (Du måste först öppnat port 80 i router/brandvägg för inkommande trafik till servern): http://<din.domän>/minsida.htm
Från interna nätverket: http://<maskinens interna ipnr i nätverket>/minsida.htm
Från maskinen: http://localhost/minsida.htm


Lösenordsskydda kataloger/sidor

Skapa en lösenordsfil, t.ex. med namnet .apachepasswd i katalog /etc/
Kod:
sudo htpasswd -c /etc/.apachepasswd <användare1>
Fortsättnings vid skapande av användare ska optionen -c inte vara med!
Kod:
sudo htpasswd /etc/.apachepasswd <användare2>
sudo htpasswd /etc/.apachepasswd <användare3>
osv.
Ändra rättigheter på filen
Kod:
sudo chmod 644 /etc/.apachepasswd
Skapa en .htaccess fil. Denna ska läggas i katalogen/katalogerna som ska skyddas. I vårt exempel lägger vi den i DokumentRooten.

Navigera dit
Kod:
cd /var/www
Skapa filen
Kod:
sudo nano /var/www/.htaccess
Klistra in nedan och spara

AuthType Basic
AuthName "Skyddade sidor"
AuthUserFile /etc/.apachepasswd
Require valid-user

Avslutningsvis ska vi justera vår virtuella värd (jdoe)

Öppna denna
Kod:
sudo nano /etc/apache2/sites-available/jdoe
I avsnittet nedan ändra
AllowOverride None --> AllowOverride AuthConfig så att det ser ut så här

<Directory /var/www>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

Starta om Apache2
Kod:
sudo /etc/init.d/apache2 reload
Prova nu att surfa till din webbplats.


Kryptering av trafiken

För att kunna köra Apache2 med krypterad trafik behövs några förberedelser. Dessa finner du i avsnitt Secure Sockets Layer (SSL). Först när du är klar med dessa, kan du påbörja arbetet med att konfigurera Apache2 för SSL. Avser du senare köra webmail rekommenderas att du gör detta med SSL.

Vi ska nu skapa vår andra webbplats och ge den namnet ssl.

Gör motsvarande som tidigare:
Kod:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
Öppna filen ssl:
Kod:
sudo nano /etc/apache2/sites-available/ssl
Justera enligt dina uppgifter. Spara sedan filen.

<VirtualHost *:443>
ServerAdmin webmaster@northface.linuxsecured.net
ServerName northface.linuxsecured.net

SSLEngine On

SSLCertificateFile /etc/ssl/certs/server.crt
SSLCertificateKeyFile /etc/ssl/private/server.key

DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
.
.
.
.
osv.

</VirtualHost>


Ladda SSL-modulen
Kod:
sudo a2enmod ssl
Aktivera konfigurationen
Kod:
sudo /etc/init.d/apache2 reload
Gör webbplatsen tillgänglig för Apache:
Kod:
sudo a2ensite ssl
Aktivera åter konfigurationen
Kod:
sudo /etc/init.d/apache2 reload
Öppna ports.conf
Kod:
sudo nano /etc/apache2/ports.conf
Kontrollera att Listen 80 och Listen 443 finns med på sidan.

Surfa till webbplatsen:
Utifrån (Du måste först öppnat port 443 i router/brandvägg för inkommande trafik till servern): https://<din.domän>/minsida.htm
Från interna nätverket: https://<maskinens interna ipnr i nätverket>/minsida.htm
Från maskinen: https://localhost/minsida.htm

Önskar man att all trafik ska styras om till https, så avkommentera (ta bort #) i siten jdoe ovan
#Redirect permanent / https://northface.linuxsecured.net


Installation av PHP

Vi installerar avslutningsvis php5
Kod:
sudo apt-get install php5 php5-cli libapache2-mod-php5 php5-mysql
Starta om Apache
Kod:
sudo /etc/init.d/apache2 restart
Testa PHP genom att skapa filen phpinfo.php
Kod:
sudo nano /var/www/phpinfo.php
Klistra in nedanstående rad och spara.
<?php phpinfo(); ?>

Surfa till phpinfo.php
Utifrån (Du måste först öppnat port 80 i router/brandvägg för inkommande trafik till servern): http://<din.domän>/phpinfo.php
Från interna nätverket: http://<maskinens interna ipnr i nätverket>/phpinfo.php
Från maskinen: http://localhost/phpinfo.php

Om installationen fungerade ska du se några uppgifter om systemet!

Ta bort filen
Kod:
sudo rm /var/www/phpinfo.php
Mer att läsa:
Linuxportalen