Installere webserver med MySQL og PHP

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008

Denne tråden ble opprettet fordi en annen tråd gikk off topic.

Razor, som har skrevet posten nedenfor, har gått inn på Apache sine websider for å laste ned Apache webserver.

Hvorfor installere Apache webserver hjemme

De fleste som driver med webutvikling liker å ha en webserver på sin egen PC, slik at de kan utvikle hjemmesidene sine før de legges på webhotell og blir tilgjengelige på internett.

Man kan også bruke sin egen PC til å hoste hjemmesider, men utfordringene blir backup, oppetid (serveren må alltid stå på), håndtering av email og så videre. Å hoste selv blir fort en stor utfordring, og for de fleste er det bedre å få en profesjonell webhost til å hoste websidene på et webhotell.

Hva kreves for å sette opp en webserver selv

Hvis man kun skal hoste en statisk hjemmeside, dvs en webside hvor all kode er skrevet i HTML og CSS, så trenger man kun en webserver.

Ofte ønsker man å installere et publiseringsverktøy (CMS). I motsetning til statiske websider kodet med HTML og CSS, er publiseringssystemer dynamiske. De fleste publiseringsverktøy med åpen kildekode (eksempelvis Drupal, WordPress, phpBB og Zen Cart) er drevet av PHP. Dette krever at webserveren også tolker PHP-kode. For å tolke PHP må man ha en PHP-motor.

Videre krever publiseringsverktøyene database, som oftest bruker man databaseserveren MySQL. SQL står for Structured Query Language, og er språket man bruker når man sender databasetjeneren en spørring (query).

Installasjon av webserver med PHP og MySQL database

Hvis du kun skal ha statiske websider med HTML og CSS, så holder det å installere Apache. Sett at du vil ha full støtte for PHP og database, da har du har to alternativer.

  1. Installere Apache (webserver), PHP og MySQL (databaseserver) hver for seg, og så konfigurerere Apache til å virke sammen med PHP. Du finner mer om dette i PHP manualen.
  2. Installere en bundle med Apache, MySQL og PHP. Her trenger man ikke å konfigurere noe, såfremt man ikke har spesielle behov.

Installere Apache, PHP og MySQL hver for seg

Her kan du laste ned de siste versjonene av Apache, PHP og MySQL.

  1. Last ned apache webserver
  2. Last ned PHP
  3. Last ned MySQL databaseserver

Installere bundle med Apache, PHP og MySQL

Den mest brukte bundelen med Apache, PHP og MySQL heter Wamp, og her kan du kan laste ned wamp.

razor
razors bilde
Avlogget
Ble med: 11.12.2009
Apache 2.2.14 Released

Jeg gikk inn på linken over og trykte på http servere. Er det denne Apache 2.2.14 Released linken som jeg skal laste ned og bruke for web side utvikling?

  1. Er det noen større mulighet for hacking eller virus angrep når jeg laster ned og bruker dette programmet?
  2. eller er det div. mottiltak jeg kan gjøre i innstillingene? du snakket noe om att port 80 måtte være stengt for tilgang, mener du da att andre ikke kan se siden?
Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Apache webserver hjemme

I skrivende stund er Apache HTTP Server 2.2.14 den beste versjonen, ja. Du bør laste ned MSI Installer. Deretter installerer du webserveren som om den var et hvilket som helst annet program.

Du kan laste ned apache webserver herfra. Bruk Win32 Binary, fila heter apache_2.2.14-win32-x86-no_ssl.msi.

Sikkerhet ved kjøring av webserver

Apache er en webserver. Hvis du setter rotkatalogen i httpd.conf (som er konfigurasjonsfilen til webserveren) til å være en annen enn den som er satt som standard, så vil filene og eventuelle underkataloger av rotkatalogen være tilgjengelig over HTTP (Hyper Text Transfer Protocol).

Kommunikasjon over HTTP går via port 80 (også definert i httpd.conf). Hvis du blokkerer eller unnlater å forwarde port 80 til den interne IP'en i routeren/firewallen din, så vil ikke webserveren være tilgjengelig utenfor det lokale nettverket, ie: Webserveren vil ikke være tilgjengelig fra internett.

Hvis du derimot åpner port 80 i firewallen og/eller forwarder port 80 til den lokale IPen din, så vil webserveren være tilgjengelig fra nettet. Det betyr at folk kan gå inn på http://din-ip og se hva som ligger på webserveren din.

De fleste webhotell kjøres faktisk på Apache webserver. Har man statisk IP (fast IP), så kan man faktisk sette opp ARecords på domenenavn man eier, for å peke dem til sin IP (hvor webserveren er). Du hoster da dine egne hjemmesider. Statisk IP kan kjøpes for rundt 10-20kr per måned fra ISP (Internet Service Provider).

Endringer i httpd.conf

Hvis du ønsker å utføre endringer i konfigfila til Apache, så må du restarte serveren før de nye innstillingene tar effekt. Les dokumentasjonen i configfila hvis du skal endre noe, og hvis det er noe spesielt, så finner du garantert mer om det i Apaches manual.

Sjekke at webserveren er installert

For å sjekke om webserveren er installert; fyr opp nettleseren din og gå til en av disse to adressene:

  1. http://localhost
  2. http://127.0.0.1

Begge adressene leder deg til din egen PC (localhost er lokal tjener, 127.0.0.1 er loopback). Du kan evt. bruke den interne IPen til maskinen din, feks 192.168.0.101 (sistnevnte avhenger av hvordan det lokale nettverket ditt er satt opp).

Hvis du får opp "it works!" eller en eller annen webside om apache webserver, så er alt riktig installert. Du kan nå bytte ut filene på webserveren med dine faktiske filer.

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Sikkerhet ved kjøring av egen webserver

Jeg touchet smått på sikkerhet i den forrige tråden, men vil utdype litt mer her. Det er to elementer som påvirker risiko ved hosting.

  1. Programmene man bruker på en server.
  2. Kodene som utgjør websidene på serveren.

Dette er et stort emne, så jeg skal forsøke å koke det ned til det mest essensielle. Hvis du installerer Apache, MySQL og PHP for utelukkende å drive webutvikling, dvs at ingenting skal være tilgjengelig fra internett, så er sikkerhetsrisikoen minimal. Da er du den eneste brukeren som har tilgang til tjenestene, og dermed utgjør de ikke særlig risiko for angrep.

Skal du derimot la brukere kommunisere med tjenestene dine, dvs hoste selv, eller la andre hoste hos deg, så stiller saken seg fort annerledes.

Tjenestene som kjører på en server

Som oftest kjører man en rekke tjenester på en (web)server. Det er mest vanlig å kjøre tjenester som dette på Linux, med den kunnskapen det krever. Vanligvis vil en rimelig komplett server ha:

  1. Apache, som nevnt selve webserverapplikasjonen
  2. Databaseserver, feks MySQL
  3. PHP, for tolking av PHP-script
  4. FTP-server, slik at brukere kan overføre filer til serveren
  5. SSH-server, slik at brukere kan logge på og administrere sitt "hjemmeområde"
  6. En mailserver, for håndtering av epost
  7. En DNS-server for administrasjon av DNS records
  8. Et kontrollpanel (feks cPanel) for administrasjon av tjenestene (styres gjerne mellom nettleseren)

Man kan ha mange flere tjenester, og hver tjeneste utgjør i seg selv en risiko. Det viktigste er at man alltid oppdaterer tjenestene på en (live) webserver til siste stabile og testede versjon. Man sikrer da serveren mot sikkerhetshull og andre exploits hackere kan forsøke å utnytte for å få kontroll over tjeneren.

Det kan feks være et sikkerhetshull i FTP-serveren, som på en eller annen måte kan gi hackere kontroll over serveren. De vil da kunne ta kontroll over den, og bruke den til ting som ikke bør se dagens lys, eller slette og kopiere ting som er av privat karakter.

Som serveradministrator må du sikre alle potensielle sikkerhetshull, hackere trenger kun å finne ett hull.

Man ser fort at å hoste selv blir en rimelig omfattende affære, her har vi ikke snakket om sikkerhetskopiering osv. Dette er dermed for mer avanserte brukere. Alle andre bør kjøpe et webhotell.

Websidene og kodene på nettstedet

Enhver webside består av kode. Ofte bygges nettsidene opp ved hjelp av bruker input og query strings. Hvis man kjører et publiseringsverktøy, så må man alltid passe på å oppdatere både publiseringsverktøyet og moduler og addons man har i tillegg.

Hvis man ikke oppdaterer til siste stabile versjon, kan hackere utnytte sikkerhetshull til å kjøre "ondsinnet" kode på serveren. Blant annet kan slike sikkerhetshull i kombinasjon med "ondsinnet" kode gi hackere kontroll over serveren.

Feks kan de kjøre MySQL-injections, PHP-kode som oppretter brukere i Linux eller sletter viktige filer og så videre.

Svar på forumemnet

(If you're a human, don't change the following field)
Your first name.
Innholdet i dette feltet blir holdt privat og vil ikke bli vist offentlig.