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
#service 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
service 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