aptosid LAMP Stack

Akronymet LAMP refererer til et sæt af frie programmer der almindeligvis anvendes sammen til at køre dynamiske websider eller servere
Linux, operativ systemet
Apache, Web serveren
MySQL, database serveren/ database management systemet
Perl, PHP, og/ eller Python, script sprog

ADVARSEL: Brug aldrig din almindelige PC til at køre en internet web server! Anvend i stedet en dedikeret PC som internet web server, og anvend så ikke denne til andre formål!

Server anvendelse:
a) en lokal test server for web designere uden internetforbindelse, det er hvad disse manual sider dækker;
b) en privat "skabs-" server forbundet til internettet;
c) en privat web server fuldt forbundet til internettet
d) en kommerciel web server, som er helt udenfor rækkevidden af denne manual

Minimums krav til hardware

Mindst 256MB RAM tilgængelig. Alt mindre end dette minimum af ram vil skabe en masse problemer, eftersom en server der kører mysql kræver meget ram for at fungere upåklageligt. Mysql vil give fejlmeddelelsen "cannot connect to mysql.sock" hvis du ikke har nok hukommelse i din server.

De pakker du skal installere er:

apache2
apache2-utils
apache2-mpm-prefork
php5 php5-common
mysql-server
mysql-common
libapache2-mod-php5
php5-mysql
phpmyadmin

ADVARSEL!!

apt-get remove --purge splashy

Eftersom splashy altid ødelægger mysql

Apache konfigurationsfilen findes her:/etc/apache2/apache2.conf og din web folder er /var/www

For at kontrollere om php er installeret korrekt, og kører som den skal, opret en test.php i din /var/www mappe med phpinfo() function præcist som vist nedenunder.

mcedit /var/www/test.php

# test.php
<?  phpinfo(); ?>

Ret din browser mod:

http://localhost/test.php
ELLER
http://din_ip:80/test.php

Dette burde vise alle dine php konfigurationer og standard indstillinger.

Du kan redigere nødvendige værdier, eller opsætte virtuelle domæner med apache konfigurationsfilen.

Hvis du vil teste din installation så skriv følgende i din browsers adressefelt

http://din_ipadresse/apache2-default/

Dette burde vise en velkomstmeddelelse, og i dette tilfælde viser det at din installation er vellykket.

Standard document root directory for apache2 er /var/www Ændr dette til:

mkdir /home/myself/www
ln -s /home/myself/www /var/www

Ved at gøre som beskrevet ovenfor kan du nu redigere din website i din home mappe som almindelig bruger.

FTP Klienter

Brug SSH og læs grundigt SSH topic , aptosid har desuden en anden indbygget ftp klient i form af Konqueror, som du kan uploade dine filer med.

Opsætning af gode sikkerhedsprotokoller for Web Servers

Firewalls

Uden en firewall har du ingen sikkerhed på din server. HUSK: Blokér ALT, indtil du skal bruge det, og blokér det igen efter endt brug!.

21 (ftp)
22 (SSH)
25 110 (email)
443 (SSL http or https)
993 (imap ssl)
995 (pop3 ssl)
80 (http)
and any other port going!

Beskyt server filer som standard

Et aspekt ved apache som til tider misforstås, er opsætningen af standard adgang. Så, med mindre du ændrer det, da gælder følgende; hvis serveren kan finde vej til en fil gennem normale URL mapping rules, så kan filen serve's til klienterne.

Kig for eksempel på følgende opsætning:

 1. # cd /; ln -s / public_html
 2. Accessing http://localhost/~root/

Dette ville tillade klienter at vade igenem hele filsystemet! For at undgå dette, tilføj den følgende block til din servers konfiguration:

<Directory />
   Order Deny,Allow
   Deny from all
</Directory>

Dette vil forbyde standard adgang til filsystem locations. Tilføj passende <Directory> blocks for kun at give adgang til de områder du ønsker. For eksempel,

<Directory /usr/users/*/public_html>
    Order Deny,Allow
    Allow from all
</Directory>
<Directory /usr/local/httpd>
    Order Deny,Allow
    Allow from all
 </Directory>

Vær særligt opmærksom på interaktionerne imellem <Location> og <Directory> directives; for eksempel, selv om <Directory /> forbyder adgang, kan et <Location /> directive override dette.

Vær opmærksom ved faren ved at lege rundt med UserDir directive; hvis du indstiller den til for eksempel "./" har det samme effekt, for root, som det først eksempel beskrevet tidligere. Hvis du bruger apache 1.3 eller højere, anbefaler vi på det kraftigste at du inkluderer følgende linie i din server konfiguration:

UserDir disabled root

SSL

Kør script'et “apache2-ssl-certificate”

# apache2-ssl-certificate

Det følgende dialog vil dukke frem for at alle nødvendige informationer kan blive indtastet.

Creating self-signed certificate
replace it with one signed by a certification authority (CA) enter your ServerName at the Common Name prompt. If you want your certificate to expire after x days call this programm
with -days x
-----
Generating a 1024 bit RSA private key
--------
writing new private key to '/etc/apache2/ssl/apache.pem'
--------
You are about to be asked to enter information that will be incorporated into your certificate request.
-----------
What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank. For some fields there will be a default value,
----------
If you enter '.', the field will be left blank.
Country Name (2 letter code) [GB]:

State or Province Name (full name) [Some-State]:

Locality Name (eg, city) []:

Organization Name (eg, company; recommended) []:

Organizational Unit Name (eg, section) []:

server name (eg. ssl.domain.tld; required!!!) []:

Email Address []:

Kør script'et “a2enmod ssl” i.e

 # a2enmod ssl

Dette vil automatisk generere et symbolsk link mellem mods- available og mods – enabled

opret en kopi af '/etc/apache2/sites-available/default' filen i /etc/apache2/sites-available/ - kald den 'ssl'

# cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl

Opret et sym-link til denne nye site konfiguration til anvendelse

#  ln -s /etc/apache2/sites-available/ssl /etc/apache2/sites-enabled/
(or)
#a2ensite ssl

Hvis du ændrer nogle basale konfigurationsindstillinger i /etc/apache2/apache2.conf, eller standard document root indstillinger i /etc/apache2/sites-available/default filen, så skal du genstarte apache server'en bagefter for at få ændringerne til at træde i kraft.

For at genstarte Apache server'en bruger du følgende kommando

#/etc/init.d/apache2 restart

Nu skal vi ændre port adressen i /etc/apache2/ports.conf Som standard vil den lytte til port 80 og nu hvor vi installerer SSL skal vi ændre dette til port 443

 Listen 443

Rediger /etc/apache2/sites-available/ssl (eller hvadend du kaldte din nye sites ssl config fil) og ændr port 80 i navnet på site'et til 443.

Tilføj de to efterfølgende linier til /etc/apache2/apache2.conf filen

						  SSLEngine On
						  SSLCertificateFile /etc/apache2/ssl/apache.pem
						

Rediger SSLCertificateFile /etc/apache2/ssl/apache.pem og tilføj adressen på certificate filen og certificate key filen. Nedenunder et eksempel:

							SSLCertificateFile /etc/apache2/ssl/online.test.net.crt
							SSLCertificateKeyFile /etc/apache2/ssl/online.test.net.key
						

Sæt ServerSignature off, følg disse trin: Rediger /etc/apache2/apache2.conf filen og tilføj disse to linier:

						 ServerSignature Off
						 ServerTokens ProductOnly
						

Hvis du vil tillade de forskellige index file types kig da efter følgende linie i /etc/apache2/apache2.conf filen

 DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.shtml

Genstart apache server

 /etc/init.d/apache2 restart

Du har nu en test server sandbox, skulle du ønske at forbinde til internettet med den, LAD VÆRE!... Brug en anden PC udelukkende dedikeret til at virke som en internet web server!

Kilder:

http://www.mysql-apache-php.com

http://httpd.apache.org/docs/1.3/misc/security_tips.html

http://www.debianhelp.co.uk/webserver.htm

Content last revised 14/08/2010 0100 UTC