Alle gode nettsteder har en god server bak dem. I denne veiledningen viser jeg deg hvordan du konfigurerer en dedikert webserver (med Apache, MySQL og PHP) bruker den gamle datamaskinen du har ligget rundt i huset og litt fri programvare.
I denne opplæringen tar vi sikte på å oppnå flere ting:
For å følge denne opplæringen trenger du noen få ting:
Du kan spørre hvorfor du vil ha din egen webserver. Det er flere grunner, noen av dem er: du kan ha din egen testing
bakken for nettsteder; med en liten modifikasjon kan du være vert for ditt eget nettsted; og du vil lære mye om Linux / Unix når du går.
Med det sagt, la oss komme i gang!
Først og fremst trenger vi en CD med Ubuntu på den. Pek nettleseren din til http://www.ubuntu.com/,
og klikk nedlastingen fra menyen til venstre. Du vil nå bli presentert med en boks med to faner: "Desktop Edition" og
"Server Edition". Klikk kategorien "Server Utgave", og velg "Ubuntu 8.04 LTS". Deretter velger du en nedlastingsplassering fra
rullegardinboks. Til slutt, klikk på "Start Download" -knappen.
Nå må du brenne ISO (filen du lastet ned) til en tom CD. Hvis du ikke vet hvordan du gjør dette, er det en
utmerket guide på https://help.ubuntu.com/community/BurningIsoHowto
Nå som du har lastet ned og brent ISO, la oss få Ubuntu installert på serveren din. Sett disken i stasjonen, og start opp fra CDen. På de fleste moderne datamaskiner vil dette skje som standard hvis en disk er i stasjonen når du slår den på. Hvis det ikke gjør det, må du trykke på en tast på tastaturet ditt når du slår på det. For min laptop er det F12, og for min server er det F2. Det er bare avhengig av datamaskinen din. Du kan finne det ved å se på teksten på skjermen din akkurat når du slår på datamaskinen, under BIOS. Du vil se noe som "Trykk på [KEY] for å endre startordre". Trykk på den tasten og velg CD-stasjonen.
Fortsatt med meg? Flink. Nå som du har startet opp Ubuntu, bør du se følgende skjermbilde:
Velg ditt språk, og trykk Enter. Nå ser du denne skjermen:
Velg "Installer Ubuntu Server", og vekk vi går!
Installatøren vil nå spørre deg om du vil at den skal oppdage tastaturoppsettet. Personlig velger jeg alltid nei, fordi
Det er raskere å velge et standard amerikansk tastatur fra listen enn å ha installatøren oppdaget det. Enten alternativet er greit,
bare følg instruksjonene på skjermen.
Etter at du har gjort det, vil du nå se en masse lasteskjermer som sier ting som "Oppdage CD-ROM-stasjoner" og slikt.
Disse skal passere raskt og uten problemer. Under disse skjermene vil installatøren imidlertid forsøke å automatisk konfigurere din
nettverksinnstillinger. I de fleste tilfeller vil dette fungere uten klage. Men hvis det ikke fungerer for deg, følg bare
på skjermen instruksjoner for å få det til å fungere.
Etter at det er gjort med alt dette, vil det be deg om et vertsnavn. Du kan vanligvis sette dette til noe; Jeg har alltid satt
min til "web-server".
Systemet vil nå at du skal stille tidszonen for klokken din. For meg er det Stillehavet. Velg den som gjelder
du.
Nå vil systemet oppdage mer maskinvare, og du blir bedt om å "partiere disken / diskene". Velg "Guided - bruk hele
disk".
Du må nå velge disken du vil partisjonere. For de fleste oppsett vil bare en disk være tilgjengelig; derimot,
For flere spesialiserte systemer, vil flere alternativer være tilgjengelige her. Velg den som gjelder for deg.
Det vil spørre deg om du vil skrive endringene på disken. Velg "Ja" og trykk Enter. Installasjonsprogrammet vil nå fortsette
å formatere stasjonen og sette opp partisjonene.
Nå skjer det magien. Systemet begynner å installere. Mens dette skjer, ta en kopp kaffe. Dette kan ta hvor som helst
fra 10 minutter til en time. Det avhenger bare av systemet ditt. Det kan være ganger at det virker som det er frosset; ikke bekymre deg,
det er det ikke. Bare la det gjøre ting. Men hvis det sitter fast på en ting for oppover en time, så ja, det er frosset.
Nå som systemet er installert, må det settes opp kontoen du skal logge inn med. Først, gi den din fulle
navn og trykk "Fortsett".
Gi nå brukernavnet ditt. Det vil normalt bare sette det som ditt fornavn,
men du kan endre det. Et navn du kanskje ikke bruker er "root".
Du blir nå bedt om å oppgi et passord. Det er viktig at du velger et sterkt passord, eller serveren din vil ikke
vær sikker i det hele tatt. Jeg anbefaler i det minste en blanding av tall, små bokstaver og store bokstaver. Men for mine servere
Jeg bruker symboler, samt en blanding av det ovennevnte. IKKE bruk et passord kortere enn 7 tegn.
Skriv deretter inn passordet ditt for å bekrefte at du har skrevet det riktig.
Systemet vil nå forsøke å konfigurere "Package Manager" (vi kommer til det som er kort). Gi den med din
proxy informasjon, eller la den være tom hvis du ikke bruker en proxy, og velg "Fortsett".
Systemet skal nå skanne flere servere på jakt etter oppdateringer og konfigurasjonsinnstillinger.
Etter det har du fullført, vil du bli presentert med flere alternativer for å installere serverprogramvare. Nå, hør veldig nøye.
Velg OpenSSH server, og trykk SPACE, NOT ENTER. Hvis du trykker på Enter, fortsetter installasjonen uten å installere OpenSSH-serveren.
Du kan også installere "LAMP server", men jeg har ingen erfaring med dette alternativet, så vi skal installere alt med en annen
kommandoen senere.
Systemet installerer nå den valgte programvaren, samt andre systemkomponenter.
Til slutt blir installasjonen ferdig. Fjern CDen, og trykk Enter. Datamaskinen vil starte på nytt. Hvis alt går bra, vil du være
presenteres med en skjerm som ligner på følgende:
Gratulerer! Du har nettopp fullført den vanskeligste delen. Ubuntu er nå installert, og det er på tide å skru denne datamaskinen inn
en webserver.
Før vi går videre, må vi sørge for at serveren din er oppdatert. For å gjøre dette, må du logge inn. Først skriver du inn brukernavnet ditt
(den du valgte tidligere), trykk enter, og skriv deretter inn passordet ditt. Når du skriver inn passordet ditt, vil du legge merke til det ingenting
ser ut til å skje. Ikke bekymre deg, det var måten det ble designet for å fungere. Når du er ferdig med å skrive inn passordet ditt, trykker du på enter,
og skjermen din bør se ut som den nedenfor under hvis alt gikk bra:
Skriv nå:
sudo aptitude update && sudo aptitude dist-oppgradering
Det vil spørre deg om deg passord, og igjen, du vil ikke se noe som du skriver det. Etter at du har gjort det, vil det spørre deg om
du vil fortsette. Skriv "y" og trykk enter. Skjermen din vil se ut som følgende:
Systemet ditt vil nå laste ned og installere alle de siste oppdateringene. Dette vil ta en stund, avhengig av din internettforbindelse. Etter
den er ferdig, vil datamaskinen må startes om igjen. For å gjøre dette, skriv inn:
sudo shutdown -r nå
Og la det starte på nytt. Din server er nå fullstendig oppdatert.
Nå har du kanskje lagt merke til at alle kommandoene du har skrevet har startet med "sudo". Dette er fordi de krever det
administratorrettigheter, og det er det som "sudo" gjør. Den kjører kommandoen (dvs. "shutdown") som administrator, slik at den kan fungere
riktig. Dette er også grunnen til at du spør deg om passordet ditt. Men etter at du har skrevet "sudo" en gang og tastet inn passordet ditt,
du trenger ikke skrive inn passordet ditt igjen i fem minutter. Ikke alle kommandoer krever sudo, bare de som endrer deler av systemet.
Fikk alt det? Flink.
Det er nå på tide å installere noen programmer. For å få tilgang til nettstedene dine fra internett, må vi installere en webserver (Apache). I tillegg til webserveren, vil vi
vil også ha en databaseserver (MySQL) og et server-side språk (PHP) slik at vi kan kjøre populære applikasjoner som WordPress. Så,
la oss komme til det!
Installere programmer på Ubuntu er mye annerledes enn å installere programmer på Windows eller
OS X, idet Ubuntu vil laste ned og installere programmene for deg med en enkel kommando. Dette skyldes at Ubuntu har noe som heter
en Package Manager, som administrerer nesten alle programmene på systemet ditt. Alt vi trenger å gjøre er å fortelle pakkebehandleren
(kalt "aptitude") som vi vil at den skal installere Apache, MySQL og PHP. For å gjøre dette, skriv inn følgende kommando:
sudo aptitude install apache2 php5-mysql libapache2-mod-php5 mysql-server
Og trykk enter. Aptitude vil laste ned og installere programmene du angav. Det vil også laste ned og installere noen
avhengig.
Under installasjonsprosessen vil MySQL spørre deg om et rotpassord. Du kan sette dette til noe, bare vær sikker på at du gjør det lenge og sikkert.
Uansett hva du gjør, ikke la dette være tomt.
Etter at alt er ferdig, har du nå en fullt fungerende webserver. For å teste det, må du først finne serverens IP ved å skrive:
ifconfig | grep inet
Det er vanligvis den første IP-en returnert. I mitt tilfelle er det 192.168.177.129. Nå som du vet IP, åpner du nettleseren din og peker på den
til serveren din IP. Hvis du ser "Det fungerer!" melding, så gratulerer, det fungerer.
Vi er imidlertid ikke ferdige ennå. Vi vil ikke at Apache eller PHP skal utlevere noen opplysninger om seg selv, da denne informasjonen ikke er nødvendig
av brukerne og kan utgjøre en sikkerhetsrisiko. Først sikkerhetskopierer du den opprinnelige Apache-konfigurasjonsfilen:
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
Åpne nå konfigurasjonsfilen:
sudo nano /etc/apache2/apache2.conf
Rull ned (ned pil) til der det står "ServerTokens Full" og endre det for å lese "ServerTokens Prod"
Nå, rull ned litt lenger og endre "ServerSignature On" til "ServerSignature Off"
Endelig trykker du Control-O etterfulgt av Control-X. Det vil lagre filen og gå ut av teksteditoren.
Nå må vi gjøre det samme for PHP. Først sikkerhetskopierer du den opprinnelige PHP-konfigurasjonsfilen:
sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini.bak
Åpne konfigurasjonsfilen:
sudo nano /etc/php5/apache2/php.ini
Endre "expose_php = On" til "expose_php = Off"
Igjen, trykk Control-O etterfulgt av Control-X. Nå som konfigurasjonsfilene er oppdatert, starter du Apache på nytt:
sudo /etc/init.d/apache2 restart
Du er ferdig med å konfigurere Apache, MySQL og PHP.
Vi skal nå låse vår server litt mer ved å installere Shorewall, en kommandolinje brannmur. For å installere det:
sudo aptitude install shorewall
Som standard er Shorewall installert uten regler, slik at du får full tilgang. Dette er imidlertid ikke oppførselen vi ønsker.
I stedet skal vi blokkere alle tilkoblinger til alt annet enn port 80 (HTTP) og port 22 (SSH). Først kopierer du konfigurasjonen
filer til Shorewall-katalogen:
sudo cp / usr / del / doc / shorewall-common / examples / one-interface / * / etc / shorewall /
Nå åpner du "regler" -filen:
sudo nano / etc / shorewall / rules
Legg til disse linjene over der det står "#LAST LINE"
HTTP / ACCEPT netto $ FW SSH / ACCEPT netto $ FW
Trykk deretter Control-O og Control-X. Din brannmur er nå konfigurert til å bare akseptere HTTP og SSH-trafikk. Det siste vi trenger
gjør det, fortell Shorewall å starte på oppstart. Så åpne den viktigste Shorewall-konfigurasjonsfilen:
sudo nano /etc/shorewall/shorewall.conf
Rull ned til "STARTUP_ENABLED = Nei" og sett den til "STARTUP_ENABLED = Yes"
Trykk Control-O og Control-X. Nå åpner du standard Shorewall-konfigurasjonsfilen:
sudo nano / etc / default / shorewall
Og endre "oppstart = 0" til "oppstart = 1". Trykk Control-O og Control-X. Til slutt starter du brannmuren:
sudo /etc/init.d/shorewall start
Gratulerer! Din brannmur er nå konfigurert og beskytter serveren din.
Nå som du har alt satt opp, vil du nok legge til et nettsted for det. Som standard tjener alle filene Apache
Opp til Internett ligger på "/ var / www /". Du kan imidlertid ikke skrive til denne mappen. La oss gjøre det slik at du kan:
sudo usermod -g www-data [ditt brukernavn] sudo chown -R www-data: www-data / var / www sudo chmod -R 775 / var / www
Det som skjedde der, var at du la deg til "www-data" -gruppen, og gjorde nettsiden mappen skrivbar til medlemmene av "www-data"
gruppe.
Nå skal du logge deg på serveren din ved hjelp av SFTP (ikke forveksles med FTPS). Noen klienter som støtter SFTP er:
WinSCP (Windows, Free), FileZilla (Windows, Linux, OS X, Gratis),
Cyberduck (OS X, Free), og min personlige favoritt, Send
(OS X, $ 30)
Koble til serveren din ved hjelp av brukernavnet og passordet ditt, og hvis klienten støtter det, er en standardbane for "/ var / www" (hvis den ikke gjør det,
bare bla til / var / www når du har logget inn): (Send bilde)
Du kan nå legge til filene dine i denne mappen (/ var / www) og de vil dukke opp på serveren din når du blar til det med din
nettleser.
Nå kan du lure på hvorfor vi bruker SFTP i stedet for FTP. Hovedsakelig fordi SFTP allerede er innebygd i OpenSSH (som du installerte
Tidligere). Det er imidlertid også mye sikrere enn FTP, og gjør det vanskelig (om ikke umulig) for ondsinnede brukere å få tilgang
til påloggingsinformasjonen din.
De fleste moderne hjemmenettverk ligger bak en ruter i disse dager. På grunn av dette vil din webserver ikke være synlig for Internett uten
et lite arbeid. Siden jeg ikke har hver ruter tilgjengelig for å teste med, kan jeg bare gi deg generelle retninger i dette området.
Det er to måter å åpne serveren din opp til internett: en DMZ eller Port Forwarding. Hovedforskjellen du vil merke er at med en DMZ, bruker serveren din
brannmur vi installerte tidligere for å beskytte seg selv. Men med Port Forwarding blir serveren din beskyttet av ruteren din brannmur.
Men før vi fortsetter, vil du gi serveren din en statisk LAN-adresse. For å gjøre det, logg inn på ruteren din, og se etter noe
i tråd med "Statiske IPs" eller "Static Routing". Når du har gitt serveren din en statisk LAN-adresse, kan du gjøre disse neste delene. Huske,
Google er din venn.
Til port foward, det er en utmerket nettside, PortForward.com, som, mens stygg, kan
hjelper deg med å få jobben gjort for nesten alle rutere. Portene du vil videresende er 22 og 80.
For å opprette en DMZ må du logge inn på ruteren din og se etter noe som "DMZ-innstillinger". Når du har funnet det, legger du til serveren din til
DMZ, og du blir satt. Igjen er Google nyttig i slike situasjoner.
Finn din offentlige IP, og voila! Du kan få tilgang til serveren din hvor som helst
som din IP ikke endres.
Ved siden av at du kan laste opp filer, lar OpenSSH deg logge på serveren din hvor som helst, så lenge du vet at den er IP. For Windows, vil du
trenger en SSH klient. Jeg anbefaler Putty. For OS X er SSH
allerede installert. Bare åpne Terminal, og skriv "ssh du@yourip". For Putty, velg SSH, og legg inn din IP, brukernavn og passord
når det ber om det. Du vil legge merke til at når du logger inn, ser det ut akkurat det samme som skjermen på serveren:
Du kan gjøre noe herfra som du faktisk ville sitte på serveren. For å logge ut fra serveren, skriv bare "exit" og trykk enter.
Du har nå en fullstendig fungerende webserver. Det gir en flott testmulighet, og vil til og med være egnet til å være vert for nettsteder med relativt lav trafikk. Det er åpenbart a mye igjen for å bli lært, men forhåpentligvis har du fått litt innsikt i hvordan webservere jobber.
Hvis du vil lese mer om emnene jeg dekket, her er noen gode guider:
Sørg også for å sjekke ut tusenvis av nyttige PHP-skript på Envato Market. Med alt fra skjemaer og handlekurver til databaseabstraksjoner, er det sikkert å være noe der for å hjelpe deg i neste fase av arbeidet ditt som utvikler.
PHP-skript på Envato Market