Mens administrert WordPress hosting passer for de fleste, foretrekker jeg fleksibiliteten til å kjøre min egen server. En av de mer rimelige løsningene er Amazons skybaserte webtjeneste (AWS).
Men hvis du ikke har en dyp teknisk bakgrunn, kan det være overveldende å komme i gang med AWS.
Da jeg først installerte WordPress på en AWS-mikroinstans, fortsatte den å gå tom for minne og krasj. Da, da jeg installerte et tilpasset, responsivt tema i større tilfelle, var det fortsatt ganske sakte.
Denne veiledningen gir deg en detaljert, trinnvis tilnærming til å sette opp WordPress-bloggen din på AWS på en høy ytelse, økonomisk måte ved å bruke en AWS micro (eller liten) forekomst som kjører på Apache. En oppfølgingstutorial dekker hvordan du optimaliserer ytelsen med Varnish Cache og W3 Total Cache plugin. Ved å bruke disse tilnærmingene har jeg lykkes med å kjøre mitt eget nettsted i Amazon-skyen de siste to årene og overlevd mange nevner på Slashdot, BoingBoing og andre høye trafikksteder.
AWS kan være dyrt å bruke i timen. For en WordPress-blogg som opererer ubestemt 7 dager i uken, 24 timer i døgnet, er det best å kjøpe det som kalles "tungt reservert eksempel". Det er oppe kostnader, men store besparelser over tid. Det er egentlig en volumrabatt for å kjøpe tid på nettverket.
Med en tre års tung reservert mikroinstans kan du kjøre en lav trafikkblogg for $ 6,44 per måned (med det første året gratis for nye AWS-brukere). Hvis du vil ha litt mer plass til å vokse, kjøp en tre år reservert liten forekomst for en total månedlig rate på $ 11,81 (det jeg bruker for øyeblikket).
Jeg er ganske sikker på at et sammenlignbart oppsett på WordPress.com koster ca $ 99 årlig ($ 8,25 per måned) per blogg, $ 24 per måned på en vert som Page.ly og $ 29 månedlig på WPEngine. Ved å kjøre din egen instans kan du kjøre flere blogger uten ekstra kostnad. Jo flere blogger du planlegger å kjøre, desto mer kostnadseffektive AWS blir over WordPress.com. Du kan også bruke server-forekomsten din til andre oppgaver - jeg er vert for andre nettsteder og kjører noen av mine andre webapper på min.
Du kan lære mer om AWS-priser, reservert forekomstpris og estimere kostnadene dine med kalkulatoren.
Merk: Estimatene ovenfor inkluderer ikke tilleggskostnader for S3-lagring og båndbredde som brukes av W3 Total Cache - men disse kostnadene er vanligvis forholdsvis mindre. Og vi inkluderer ikke Amazonas skalerbare Remote Database Service (RDS) i denne opplæringen spesielt for å minimere kostnadene.
Jeg foreslår at du venter til ditt grunnleggende WordPress-nettsted er oppe før du bestemmer deg for å kjøpe en reservert forekomst.
Hvis du kjøper en reservert forekomst og senere angre gjør det, tilbyr Amazon et marked for å selge ubrukte deler av reserverte forekomster (for en liten provisjon). Jeg har funnet det fungerer bra og har solgt to tilfeller innen noen få uker.
Men å flytte nettstedet ditt fra en mikroinstans til en liten forekomst er ikke trivielt, og det er ikke dokumentert her. Hvis du tror du vil ha en vellykket blogg, start med et lite eller mellomrom.
Utover det som er beskrevet i opplæringsoptimaliseringsveiledningen, tilbyr Amazon flere tjenester og teknikker for høyere grad av fleksibilitet og skalerbarhet. Så, mens det ikke er beskrevet her, finnes det en rekke måter hos AWS for å hjelpe deg med å vokse nettstedet ditt.
Hvis du ikke har en Amazon Web Services-konto (AWS), må du registrere deg for en. Hvis du allerede har en konto, logg inn og la oss begynne.
Nå som du har en konto, kan du logge inn på AWS Console for å opprette din nye virtuelle server. Klikk på EC2-lenken som vises i oversikten nedenfor:
Hvis du ønsker å kjøre et lett mobilt WordPress-nettsted, vil en mikroinstans sannsynligvis fungere bra for deg. Hvis du er ny på AWS, bør du kunne kjøre bloggen din i deres gratis bruksklasse i ett år. Hvis du kjøper en treårig reservert mikroinstans for $ 100, kan du redusere den totale månedlige avgiften til $ 6.44. Med en mikro-forekomst må du sette opp en byttefil (beskrevet nedenfor) som kan generere noen mindre tilleggskostnader, og bør av og til overvåkes.
Hvis du tror at bloggens popularitet og kompleksitet vil hente seg raskt, vil du kanskje starte med en liten forekomst. Ved å kjøpe en tre års reservert liten forekomst for $ 188, er den effektive månedsrenten $ 11,82.
Klikk på Launch Instance-knappen for å starte opprettingsveiviseren. Hvis du ikke forventer betydelig trafikk på bloggen din, velger du en Ubuntu 14.xx (64 bit) Micro-forekomst.
Du kan generelt velge standardverdiene for hvert trinn mens du beveger deg gjennom veiviseren.
Når du kommer til siden for å konfigurere brannmur, legger du til en sikkerhetsregel for å tillate HTTP-trafikk på port 80:
Under prosessen laster veiviseren en privat nøkkel til datamaskinens nedlastnings katalog. Hold en kopi av denne filen på et trygt sted. Hvis du mister det, mister du tilgang til hele forekomsten din.
Nå er din instans klar for at du logger deg på eksternt via SSH. Åpne Terminal på datamaskinen din. Flytt den nedlastede nøkkelen til SSH-nøkkelkatalogen og angi tillatelsene:
mv ~ / Nedlastinger / wordpress.pem ~ / .ssh chmod 400 ~ / .ssh / wordpress.pem
Kopier URL-adressen for forekomsten fra konsollen, f.eks. ec2-75-101-173-192.compute-1.amazonaws.com
(se nedenfor):
Fra Terminal, prøv å koble via SSH:
ssh -i ~ / .ssh / wordpress.pem [email protected]
Hvis du bruker Windows, må du bruke PUTTY til å koble til.
Hvis du fortsatt har problemer, kan du bruke Koble-knappen i Amazon's Console over EC2 Instance-listen.
Nå er det på tide å knytte en offentlig IP-adresse med forekomsten din slik at du kan kartlegge domenenavnet ditt, f.eks. yourbrand.com
til ditt WordPress-nettsted. I disse dager tildeler AWS en ny offentlig IP-adresse med hver forekomst, men hvis det ikke gjør dette automatisk for deg, må du tildele en ny elastisk IP-adresse.
Fra EC2 Dashboard venstre sidefelt, klikk på Elastiske IP-er. Deretter klikker du på Alloker ny adresse. Amazon tilbyr en gratis elastisk IP per løpende forekomst.
Deretter må du knytte den nye elastiske adressen med forekomsten du opprettet. Dette tillater Amazon å sende trafikk som kommer inn i den elastiske IP-adressen over til din forekomst som kjører WordPress.
Adressen som du logger på via SSH, vil nå bli endret for å gjenspeile din elastiske IP-adresse (erstatte x-er med din nye elastiske IP):
ssh -i ./wordpress.pem [email protected]
Dette kan også fungere nå:
ssh -i ./wordpress.pem [email protected]
Nå kan du begynne prosessen med å kartlegge domenenavnet ditt, f.eks. yourdomain.com til ditt fremtidige WordPress-nettsted. Besøk domeneregistratorens DNS-innstillinger og endre A-posten for dindomene.no til den nye IP-adressen, f.eks. 59.234.124.118.
Her er en opplæring for konfigurering av DNS A-poster, men domeneregistratoren din har også en veiledning.
Vent til DNS-en din endrer propagate (noen ganger opptil 24 timer eller mer - sjekk dem her), prøv å koble til via SSH ved hjelp av domenet ditt:
ssh -i ./wordpress.pem [email protected]
I mellomtiden bør du kunne fortsette å sette opp andre deler av nettstedet ditt.
Mens AWS tilbyr sin egen brannmur, er det fortsatt ting du kan gjøre for å minimere sikkerhetsrisikoen. Her er tre ting jeg anbefaler:
Advarsel: Vennligst følg disse instruksjonene svært nøye. Avviker litt fra disse trinnene kan skape problemer - inkludert selv å gjøre forekomsten din utilgjengelig.
Vi legger til en bruker som heter "hal". Erstatt "hal" med ditt foretrukne brukernavn i eksemplene nedenfor:
sudo adduser hal
Legg til den nye brukeren i administrasjonsgruppen:
sudo adduser hal admin
Legg til den nye brukeren til sudoers-gruppen. Rediger sudoers-filen:
sudo nano / etc / sudoers
Legg til denne linjen i sudoers-filen, i delen Brukerrettigheter:
hall ALLE = (ALLE) NOPASSWD: ALL
Nå lager vi nøkler for denne brukeren, slik at de kan logge inn på AWS. Bytt til den nye brukeren:
su hal
Bytt til hjemmekatalogen for denne brukeren:
cd / hjemme / hal
Lag en SSH-katalog og sett tillatelser:
mkdir .ssh chmod 700 .ssh
Generer et nytt nøkkelpar:
cd .ssh ssh-keygen -b 1024 -f id_hal -t dsa
Legg til offentlig nøkkel til authorized_keys-filen:
katt ~ / .ssh / id_hal * .pub> ~ / .ssh / authorized_keys
Angi tillatelser:
chmod 600 ~ / .ssh / *
Flytt privatnøkkelen til en tempmappe for nedlasting til datamaskinen din:
cp ~ / .ssh / * / tmp chmod 644 / tmp / *
Rediger SSH-konfigurasjonsfilen for å legge til den nye brukeren:
sudo nano / etc / ssh / sshd_config
Legg til den nye halkontoen til feltet AllowUsers (eller lag linjen hvis den ikke er der):
Tillatbrukere ubuntu hal
Start tjenesten på nytt
sudo service ssh restart
Bytt nå tilbake til din lokale datamaskin ved hjelp av Terminal. Last ned den nye nøkkelen fra datamaskinen din med din ubuntu-konto:
scp -i ~ / .ssh / wordpress.pem [email protected]: / tmp / * ~ / .ssh
Fortsett disse trinnene på din lokale datamaskin. Angi tillatelser og test:
cd ~ / .ssh chmod 400 id_hal ssh -i .ssh / id_hal [email protected]
Hvis du får inn noen feil, kan du prøve å gå tilbake til server-forekomsten din og se på loggen mens du prøver å logge inn:
hale -f /var/log/auth.log
På den eksterne server-forekomsten, fjern nøkkelfilene fra tmp-katalogen:
rm -rf / tmp / *
Rediger SSH-konfigurasjonsfilen igjen:
sudo nano / etc / ssh / sshd_config
Fjern ubuntu-kontoen fra feltet AllowUsers:
Tillat brukerne hal
Pass på at PermitRootLogin er satt til nei eller uten passord, sistnevnte krever å logge inn med en nøkkel:
PermitRootLogin uten passord
Start ssh-tjenesten på nytt
sudo service ssh restart
Hvis du støter på problemer, kan du også gå tilbake for å logge inn via AWS-konsollets forekomstliste.
Siden hackere regelmessig ser etter SSH-tilgang på port 22, er det best å bruke et helt annet portnummer for konfigurering og vedlikehold av serveren din.
Rediger SSH-konfigurasjonsfilen igjen:
sudo nano / etc / ssh / sshd_config
Endre portlinjen til et annet portnummer, f.eks. 33322:
# Hvilke porter, IPer og protokoller vi lytter etter Port 33322
Gå tilbake til AWS-konsollen og rediger sikkerhetsgruppen. Legg til port # som du valgte for eksempel 33322. Fjern port 22. Pass på å klikke på Bruk regler-knappen (ikke vist); Det er under boksen Legg til regel.
Start tjenesten på nytt:
sudo service ssh restart
Når du kobler til via SSH, må du bruke -p 33322 (eller den valgte porten din)
ssh -p 33322 -i .ssh / id_hal [email protected]
Det er enda mer avanserte teknikker for å skjule SSH-innlogging. f.eks Port banker. Men vær sikker på at du vet hva du gjør, jeg har hatt triste brukere email meg etter at de låst seg ut av sin egen server.
Det er på tide for den morsomme delen av installasjonen av open source-versjonen av WordPress. Fullstendige instruksjoner leveres nærmere i WordPress 'Codex.
Oppgrader til den nyeste Ubuntu-distribusjonen og dens pakker:
sudo apt-get dist-oppgradering
Opprett en www-katalog med tillatelser for Apache-webserveren:
sudo mkdir / var / www sudo chown www-data: www-data / var / www cd / var / www
Last ned den nyeste versjonen av WordPress, utvide arkivet og sett tillatelser:
sudo wget http://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz sudo chown -R www-data: www-data wordpress
Installer MySQL Server-pakken:
sudo apt-get installer mysql-server
Du blir bedt om å oppgi et brukernavn og passord. Legg merke til valgene dine for bruk under installasjonsprosessen.
Konfigurer MySQL-databasen. Endre brukernavn og passord nedenfor til det du valgte under installasjonen:
mysql -u root -p lage database wordpress; gi alle privilegier på wordpress. * TIL "ditt-mysql-brukernavn" @ "localhost" identifisert av "ditt-mysql-passord"; flush privilegier; exit;
Senere vil du vurdere å sikre din MySQL-server. Jeg har en kort oversikt over nettstedet mitt her.
Hvis du ikke valgte en Amazon AWS AMI som forhåndsinstallerte Apache, må du kanskje installere den nå:
sudo apt-get install php5 libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql
Nå er det på tide å lage en konfigurasjonsfil for nettstedet for Apache-serveren til å være vert for WordPress:
cd / etc / apache2 / nettsteder tilgjengelig
La oss lage en ny fil for å redigere. Merk: I nye versjoner av Ubuntu 14.04, må konfigurasjonsfilen for nettstedet slutte i .conf. Hvis filen bare kalles wordpress som i tidligere versjoner av denne opplæringen, vil a2ensite nedenfor ikke fungere.
sudo nano wordpress.conf
Lim inn i prøveområdefilen nedenfor og sørg for å erstatte navnekonvensjonen for domenenavnet ditt:
Servernavn YOURDOMAIN.COM DocumentRoot / var / www / wordpress DirectoryIndex index.php Tillat Override All Order Avvis, tillat Tillat fra alle
Fortell Apache for å aktivere nettstedet og last på nytt:
sudo a2ensite wordpress sudo tjenesten apache2 restart
Nå er vi klare til å fortelle WordPress om databasen og bloggen din. Først vil vi midlertidig endre tillatelsene på wordpress-mappen din:
cd / var / www sudo chmod-R 777 wordpress
Åpne en nettleser og naviger til domenenavnet ditt, f.eks. http://yourdomain.com.
Fyll ut databasen informasjonen som WordPress forespørsler ved hjelp av dine valg ovenfor. Prosessen vil se slik ut:
La oss nå låse tillatelsene for WordPress-installasjonen for sikkerhet:
sudo finne / var / www / wordpress / -type d -exec chmod 755 \; sudo finne / var / www / wordpress / -type f -exec chmod 644 \;
La oss også lage manuelle oppdateringer til wp-config.php-filen:
sudo nano /var/www/wordpress/wp-config.php
Legg til følgende konfigurasjonslinjer over stoppredigeringslinjen:
define ('FS_METHOD', 'direkte'); // for automatisk plugin installasjon / * Det er alt, slutte redigering! Glad blogging. * /
Prøv å logge inn i WordPress Administrasjons-systemet. Gå til http://yourdomain.com/wp-admin og skriv inn brukernavnet og passordet du valgte under installasjonsprosessen.
Du bør se WordPress Dashboard, som nedenfor:
God jobb og gratulerer med den nye WordPress-installasjonen!
WordPress, dens plugins og Apache sammen kan støte opp nær AWS Micro-instansminnegrensene. Start din forekomst en gang etter denne opplæringen, og kontroller hvor mye minne du bruker. Fra Terminal, SSH i og gjør:
sudo reboot
Eller du kan starte på nytt fra EC2 Dashboard som vist på bildet nedenfor. Se Handlinger-menyen. Overvåk aktivitet på din forekomst med gratis eller topp:
gratis
Eller bruk toppen. Å skrive "q" kommer til å avslutte toppen.
topp
Prøv å besøke forskjellige sider på ditt WordPress-nettsted og se hvordan det påvirker minnebruk. Prøv å få tilgang til sider fra mobil- og nettbrettetheter. Hvis du bruker en Amazon Micro-forekomst, er det sannsynligvis at du må konfigurere en byttefil på EBS for å hindre at forekomsten din styrter.
Selv om det er enkelt å sette opp, er det en liten risiko for å pådra seg ubundne båndbreddeavgifter for Internett - så vær sikker på å overvåke nettstedet ditt og opprett faktureringsalarmer som beskrevet på nettstedet mitt her. Jeg har aldri hatt noen problemer med dette - men folk advarer om det.
Når du har opprettet en byttefil, bør mikroeksemplet være stabilt.
sudo dd hvis = / dev / null av = / swapfile bs = 1M count = 1024 sudo mkswap / swapfile sudo swapon / swapfile
Nå, for å gjøre swapfilen vedvarende på tvers av omstart, rediger du fstab-filen:
sudo nano / etc / fstab
Legg til denne linjen:
/ swapfile swap swap standardinnstillinger 0 0
Bekreft at byttefilen er aktiv ved å skrive:
gratis
Det skal vise noe som:
Bytte: 1048572 0 1048572
Du er nå en systemadministrator som kjører ditt eget WordPress-nettsted. Rått. Men du er nå ansvarlig for mange ting som vanligvis administreres av et vertsfirma.
Det er ingen shaming i retur til administrert hosting. Hvis du føler at du har kommet over hodet ditt, er du velkommen til å trekke seg tilbake til WordPress.com eller en annen vert. Vi tar alle beslutninger der vi tilbringer vår tid - og administrert hosting er en rimelig. Når du forplikter deg til å kjøre ditt eget nettsted - å holde det i gang vil det ta mer tid som vil overføre til administrert hosting senere. Så vær nøye med dette.
Det er viktig å logge regelmessig på din instans og oppdatere sikkerhetspakker. Når du logger inn, rapporterer Ubuntu noe som: "35 pakker kan oppdateres. 22 oppdateringer er sikkerhetsoppdateringer." Bruk følgende kommando for å oppdatere systemet:
sudo apt-get oppgradering
Den nylige heartbleed bug er et forsiktighetseksempel på hvilke typer sårbarheter som må patches fra tid til annen. Hvis du ikke holder ditt Linux-system oppdatert, kan folk hacket ditt nettsted.
Å holde opp med WordPress-oppdateringer er like viktig. De nyeste versjonene av WordPress er konfigurert til å varsle deg om nye oppgraderinger.
Ingen sikkerhetskopierer ditt WordPress-nettsted. Du må velge hvordan du gjør dette. Du kan manuelt huske å lage et AWS-snapshot av forekomsten din via AWS-grensesnittet. Hvis du søker på nettet, kan du finne skript for å tilpasse det som gjør dette fra Linux-forekomsten din. I utgangspunktet trenger du å sikkerhetskopiere WordPress-katalogstruktur (med temaer, plugins og bilder), MySQL-databasen som er lagret i Linux-filsystemet, samt Apache-konfigurasjonsfilen din.
En annen tilnærming som fungerer bra, er en tjeneste som VaultPress, eid av WordPress 'moderselskap Automattic. Det finnes også WordPress-plugins du kan kjøpe for å kjøre sikkerhetskopier til andre lagringstjenester, inkludert Amazonas S3-lagringssystem.
WordPress-kontaktskjema krever at du kjører din egen e-postserver for å sende e-postmeldinger sendt til deg. Kjører en Postfix-postserver er ganske komplisert og har sin egen skalerings- og sikkerhetsrisiko. I stedet liker jeg å kombinere noe som Contact Form 7 Plugin med Mailgun WordPress plugin. Det er litt satt opp, men det er gratis for de fleste bruksområder og fungerer feilfritt.
Du er også ansvarlig for å administrere serverens oppetid. Så, du trenger en overvåkingstjeneste for å fortelle deg når Amazon-forekomster går ned. Og de gjør - sjelden, men det skjer. En betalt tjeneste som ScoutApp.com eller min egen self-hosted Simple Monitor er gode løsninger. Hvis du selv er vert for overvåking, er det viktig å kjøre det på en annen måte eller i det minste slå på hjerterytme med jevn intervall, f.eks. 2 timer. Hvis forekomsten din overvåking er på, mislykkes, vet du ikke før du merker at du ikke mottok det siste hjerteslaget.
Dette er et langt emne som vi ikke vil ta opp her helt. Jeg har skrevet mer om dette emnet på mitt eget nettsted. Ytelsen til nettstedet ditt påvirker også søkemotorens rangering.
Så det er på tide å bygge grunnlaget for super rask ytelse med Varnish Cache og W3 Total Cache.