În timp ce gestionarea WordPress administrată este potrivită pentru majoritatea oamenilor, prefer flexibilitatea de a rula propriul server. Una dintre soluțiile mai accesibile este serviciul web Amazon (Web) bazat pe cloud (AWS).
Dar dacă nu aveți un fundal tehnic profund, începerea cu AWS poate fi copleșitoare.
Când am instalat pentru prima oară WordPress pe o instanță micro AWS, aceasta a continuat să scape de memorie și să se prăbușească. Apoi, când am instalat o temă personalizată și receptivă într-un exemplu mai mare, era încă destul de lent.
Acest ghid vă va oferi o abordare detaliată, pas cu pas, pentru configurarea blogului dvs. WordPress la AWS într-un mod performant și economic, utilizând o instanță AWS micro (sau mică) care rulează pe Apache. Un tutorial de urmărire se referă la modul de optimizare a performanței sale cu ajutorul Cache-ului Varnish și a plugin-ului W3 Total Cache. Folosind aceste abordări, mi-am executat cu succes propriul site în norul Amazon în ultimii doi ani și am supraviețuit numeroaselor mențiuni despre Slashdot, BoingBoing și alte site-uri cu trafic ridicat.
AWS poate fi costisitor de folosit de ora. Pentru un blog WordPress care funcționează pe o durată nedeterminată de 7 zile pe săptămână, 24 de ore pe zi, este mai bine să cumpărați ceea ce se numește "caz rezervat greu". Există costuri frontale, dar economii mari în timp. Este în esență o reducere de volum pentru a cumpăra timp în rețeaua lor.
Cu o instanță micro-rezervată de trei ani, puteți rula un blog cu trafic redus pentru suma de 6,44 USD lunar (cu primul an gratuit pentru utilizatorii AWS noi). Dacă doriți să creșteți mai mult spațiu, achiziționați o instanță mică rezervată de trei ani pentru o rată lunară totală de 11,81 USD (ceea ce folosesc în prezent).
Sunt sigur că o configurație comparabilă la WordPress.com ar costa aproximativ 99 USD anual ($ 8.25 lunar) pe blog, 24 USD pe lună la o gazdă precum Page.ly și 29 USD lunar la WPEngine. Totuși, rularea instanței dvs. vă permite să rulați mai multe bloguri fără costuri suplimentare. Cele mai multe bloguri pe care intenționați să le rulați, AWS mai eficient din punct de vedere al costurilor devine peste WordPress.com. De asemenea, aveți posibilitatea să utilizați instanța serverului pentru alte activități - Găsește alte site-uri web și rulez unele dintre celelalte aplicații web ale mele pe a mea.
Puteți afla mai multe despre stabilirea prețurilor AWS, stabilirea prețurilor pentru instanțe rezervate și estimarea costurilor cu ajutorul calculatorului.
Notă: estimările de mai sus nu includ costurile suplimentare pentru spațiul de stocare S3 și lățimea de bandă utilizate de W3 Total Cache - dar aceste costuri sunt de obicei comparativ mai mici. Și nu includeți serviciul de bază de date la distanță (RDS) scalabil al Amazonului în acest tutorial, pentru a minimiza costurile.
Vă sugerăm să așteptați până când site-ul dvs. WordPress de bază va apărea înainte de a vă decide să cumpărați o instanță rezervată.
Dacă achiziționați o instanță rezervată și apoi regretați mai târziu, Amazon oferă o piață pentru vânzarea porțiunilor neutilizate de instanțe rezervate (pentru o mică comision). Am descoperit că funcționează bine și că au vândut două cazuri în câteva săptămâni.
Cu toate acestea, mutarea site-ului dvs. dintr-o instanță micro într-o instanță mică este non-trivială și nu este documentată aici. Dacă credeți că veți avea un blog de succes, începeți cu o instanță mică sau medie.
Dincolo de ceea ce este descris în tutorialul de optimizare a performanței, Amazon oferă o serie de servicii și tehnici pentru un nivel mai ridicat de flexibilitate și scalabilitate. Deci, deși nu este descris aici, există multe modalități de a vă ajuta să vă dezvoltați site-ul.
Dacă nu aveți încă un cont Amazon Web Services (AWS), înregistrați-vă unul. Dacă aveți deja un cont, conectați-vă și începeți.
Acum, că aveți un cont, vă puteți conecta la Consola AWS pentru a vă crea noul server virtual. Faceți clic pe legătura EC2 prezentată în tabloul de bord de mai jos:
Dacă doriți să rulați un site WordPress ușor traficat, un microinstalație va funcționa probabil bine pentru dvs. Dacă sunteți nou la AWS, ar trebui să aveți posibilitatea să rulați blogul în nivelul de utilizare gratuit de un an. Dacă cumpărați o instanță rezervată de trei ani pentru 100 de dolari, puteți reduce taxa lunară totală la 6,44 USD. Cu o instanță micro, va trebui să configurați un fișier swap (descris mai jos), care poate genera unele costuri suplimentare minore și ar trebui să fie ocazional monitorizat.
Dacă credeți că popularitatea și complexitatea blogului dvs. vor fi ridicate rapid, vă recomandăm să începeți cu o mică instanță. Prin achiziționarea unei instanțe mici de 3 ani rezervate pentru 188 USD, rata efectivă lunară este de 11,82 USD.
Faceți clic pe butonul Lansarea instanței pentru a porni expertul pentru crearea instanțelor. Dacă nu vă așteptați la trafic semnificativ pe blogul dvs., selectați o instanță Micro Ubuntu 14.xx (64 biți).
În general, puteți alege valorile implicite pentru fiecare pas în timp ce vă deplasați prin expert.
Când ajungeți la pagina Configure Firewall, adăugați o regulă de securitate pentru a permite traficul HTTP pe portul 80:
În timpul procesului, expertul va descărca o cheie privată în directorul Descărcări al computerului. Păstrați o copie a acestui fișier într-o locație sigură. Dacă îl pierzi, vei pierde accesul la întreaga instanță.
Acum instanța dvs. este pregătită să vă conectați la distanță prin SSH. Deschideți terminalul de pe computer. Mutați cheia descărcată în directorul cheie SSH și setați permisiunile:
mv ~ / Descărcări / wordpress.pem ~ / .ssh chmod 400 ~ / .ssh / wordpress.pem
Copiați adresa URL a instanței din consola, de exemplu. ec2-75-101-173-192.compute-1.amazonaws.com
(Vezi mai jos):
De la Terminal, încercați să conectați prin SSH:
ssh -i ~ / .ssh / wordpress.pem [email protected]
Dacă utilizați Windows, va trebui să utilizați PUTTY pentru a vă conecta.
Dacă totuși aveți probleme, puteți utiliza butonul Connect din Consola Amazon deasupra listei de instanțe EC2.
Acum, este timpul să asociați o adresă IP publică cu instanța dvs., astfel încât să puteți să vă cartografiați numele de domeniu, de ex. yourbrand.com
pe site-ul dvs. WordPress. Aceste zile, AWS alocă o nouă adresă IP publică cu fiecare instanță, dar dacă nu o face automat pentru tine, va trebui să alocați o nouă adresă IP elastică.
Din bara laterală din stânga panoului de bord EC2, dați clic pe adrese IP elastice. Apoi, faceți clic pe Alocare adresă nouă. Amazon furnizează un IP gratuit Elastic per instanță care rulează.
Apoi, va trebui să asociați noua adresă elastică cu instanța pe care ați creat-o. Acest lucru permite Amazonului să trimită traficul care intră în adresa IP elastică de la instanța pe care rulează WordPress.
Adresa cu care vă conectați de la distanță prin SSH va fi schimbată acum pentru a reflecta adresa IP elastică (înlocuiți-o cu noul IP elastic)
ssh -i ./wordpress.pem [email protected]
Acest lucru poate funcționa și acum:
ssh -i ./wordpress.pem [email protected]
Acum, puteți începe procesul de mapare a numelui dvs. de domeniu, de ex. yourdomain.com la viitorul site WordPress. Accesați setările DNS ale registratorului domeniului și modificați înregistrarea A pentru adresa dvs.domeniu.ro la noua adresă IP, de ex. 59.234.124.118.
Iată un tutorial pentru configurarea înregistrărilor DNS A, dar registratorul dvs. de domenii are probabil și un ghid.
Așteptați până când modificările DNS se propagă (uneori până la 24 de ore sau mai mult - verificați-le aici), încercați să vă conectați prin SSH utilizând domeniul dvs.:
ssh -i ./wordpress.pem [email protected]
Între timp, ar trebui să puteți continua să configurați alte părți ale site-ului dvs..
În timp ce AWS oferă propriul firewall, există încă lucruri pe care le puteți face pentru a minimiza riscurile de securitate. Iată trei lucruri pe care le recomand:
Avertizare: Urmați aceste instrucțiuni foarte atent. Depășirea ușoară a acestor pași poate crea probleme - inclusiv chiar făcând instanța dvs. inaccesibilă.
Vom adăuga un utilizator numit "hal". Înlocuiți "hal" cu numele de utilizator preferat în exemplele de mai jos:
sudo adduser hal
Adăugați noul dvs. utilizator la grupul de administratori:
sudo adduser hal admin
Adăugați noul dvs. utilizator la grupul sudoers. Editați fișierul sudoers:
sudo nano / etc / sudori
Adăugați această linie la fișierul sudoers din secțiunea Privilegii utilizator:
hal ALL = (ALL) NOPASSWD: ALL
Acum, vom crea chei pentru acest utilizator, astfel încât să se poată conecta la AWS. Treceți la noul utilizator:
su hal
Schimbați la directorul de domiciliu pentru acest utilizator:
cd / home / hal
Efectuați un director SSH și setați permisiunile:
mkdir .ssh chmod 700.ssh
Generați o pereche nouă de chei:
cd .ssh ssh-keygen -b 1024 -f id_hal -t dsa
Adăugați cheia publică în fișierul authorized_keys:
cat ~ / .ssh / id_hal * .pub> ~ / .ssh / authorized_keys
Setați permisiunile:
chmod 600 ~ / .ssh / *
Mutați cheia privată într-un dosar temp pentru descărcare pe computer:
cp ~ / .ssh / * / tmp chmod 644 / tmp / *
Editați fișierul de configurare SSH pentru a adăuga noul utilizator:
sudo nano / etc / ssh / sshd_config
Adăugați noul cont hal în câmpul AllowUsers (sau creați linia dacă nu există):
AllowUsers ubuntu hal
Reporniți serviciul
sudo service ssh reporniți
Acum, reveniți la computerul local utilizând Terminal. Descărcați noua cheie de pe computer utilizând contul dvs. de ubuntu:
scp -i ~ / .ssh / wordpress.pem [email protected]: / tmp / * ~ / .ssh
Continuați acești pași pe computerul local. Setați permisiunile și testați:
cd ~ / .ssh chmod 400 id_hal ssh -i .ssh / id_hal [email protected]
Dacă întâmpinați erori, puteți încerca să vă întoarceți la instanța dvs. de server și să consultați logul în timp ce încercați să vă conectați:
coada -f /var/log/auth.log
În cazul serverului de la distanță, eliminați fișierele cheie din directorul tmp:
rm -rf / tmp / *
Editați din nou fișierul de configurare SSH:
sudo nano / etc / ssh / sshd_config
Eliminați contul ubuntu din câmpul AllowUsers:
AllowUsers hal
Asigurați-vă că PermitRootLogin este setat pe parolă fără sau fără parolă, aceasta din urmă necesită autentificarea cu o cheie:
PermitRootLogin fără parolă
Reporniți serviciul ssh
sudo service ssh reporniți
Dacă întâmpinați dificultăți, puteți reveni la conectarea prin lista de instanțe a consolei AWS.
Deoarece hackerii caută în mod regulat accesul SSH pe portul 22, este mai bine să folosiți un număr complet diferit de port pentru configurarea și întreținerea serverului.
Editați din nou fișierul de configurare SSH:
sudo nano / etc / ssh / sshd_config
Modificați linia de port la un alt număr de port, de ex. 33322:
# Ce porturi, IP-uri și protocoale ascultăm pentru Port 33322
Reveniți la consola AWS și editați grupul de securitate. Adăugați portul # pe care l-ați ales, de ex. 33322. Scoateți portul 22. Asigurați-vă că faceți clic pe butonul Aplică reguli (nu este ilustrat); este sub caseta Adăugare regulă.
Reporniți serviciul:
sudo service ssh reporniți
Mergând înainte, va trebui să utilizați -p 33322 (sau portul ales) atunci când vă conectați prin SSH:
ssh -p 33322 -i .ssh / id_hal [email protected]
Există și tehnici mai avansate pentru ascunderea datelor de autentificare SSH. de exemplu. Port ciocănit. Cu toate acestea, asigurați-vă că știți ce faceți, am avut utilizatori trist prin e-mail după ce s-au blocat din propriul server.
Este timpul pentru partea distractivă a instalării versiunii open source a WordPress. Instrucțiunile complete sunt furnizate mai detaliat la Codex WordPress.
Treceți la cea mai recentă distribuție Ubuntu și pachetele sale:
sudo apt-get dist-upgrade
Creați un director www cu permisiuni pentru serverul web Apache:
sudo mkdir / var / www sudo chown www-date: www-data / var / cd / var / www
Descărcați cea mai recentă versiune de WordPress, extindeți arhiva și setați permisiunile:
sudo wget http://wordpress.org/latest.tar.gz sudo tar -xzvf latest.tar.gz sudo chown -R www-data: www-data wordpress
Instalați pachetul Server MySQL:
sudo apt-get a instala mysql-server
Vi se va cere să furnizați un nume de utilizator și o parolă. Luați notă de alegerile dvs. pentru utilizare în timpul procesului de configurare.
Configurați baza de date MySQL. Schimbați numele de utilizator și parola de mai jos la ceea ce ați selectat în timpul instalării:
mysql -u rădăcină -p crea bază de date wordpress; acordați toate privilegiile pe wordpress. * TO "your-mysql-username" @ "localhost" identificat de "your-mysql-password"; flush privilegiile; Ieșire;
Mai târziu, veți dori să revizuiți securizarea serverului MySQL. Am un scurt rezumat pe site-ul meu aici.
Dacă nu ați ales un Amazon AWS AMI care a instalat Apache, este posibil să fie necesar să îl instalați acum:
sudo apt-get instalează php5 libapache2-mod-php5 libapache2-mod-auth-mysql php5-mysql
Acum, este timpul să creați un fișier de configurare a site-ului pentru serverul dvs. Apache pentru a găzdui WordPress:
cd / etc / apache2 / site-uri disponibile
Să creați un fișier nou de editat. Notă: în versiunile noi ale Ubuntu 14.04, fișierul de configurare a site-ului ar trebui să se termine în .conf. Dacă fișierul este pur și simplu numit wordpress ca în versiunile anterioare ale acestui tutorial, a2ensite de mai jos nu va funcționa.
sudo nano wordpress.conf
Inserați fișierul site-ului de probă de mai jos și asigurați-vă că înlocuiți convenția de denumire pentru numele dvs. de domeniu:
Numele serverului YOURDOMAIN.COM DocumentRoot / var / www / wordpress DirectorIndex index.php AllowOverride All Order Deny, Allow Allow de la toate
Spuneți Apache pentru a activa site-ul și a reîncărca:
sudo a2ensite wordpress serviciu sudo apache2 restart
Acum, suntem gata să spunem WordPress despre baza de date și blogul tău. În primul rând, vom schimba temporar permisiunile din directorul wordpress:
cd / var / www sudo chmod -R 777 wordpress
Deschideți un browser web și navigați la numele dvs. de domeniu, de ex. http://yourdomain.com.
Completați informațiile despre baza de date pe care WordPress le solicită utilizând alegerile de mai sus. Procesul va arata cam asa:
Acum, hai să blocăm permisiunile pentru instalarea WordPress pentru securitate:
sudo găsi / var / www / wordpress / -type d -exec chmod 755 \; sudo găsi / var / www / wordpress / -type f -exec chmod 644 \;
Să facem, de asemenea, actualizări manuale la fișierul wp-config.php:
sudo nano /var/www/wordpress/wp-config.php
Adăugați următoarele linii de configurare deasupra liniei de editare oprire:
definiți ("FS_METHOD", "direct"); // pentru instalarea automată a pluginului / * Asta e tot, opriți editarea! Happy blogging. * /
Încercați să vă conectați la sistemul de administrare WordPress. Accesați http://yourdomain.com/wp-admin și introduceți numele de utilizator și parola pe care le-ați ales în timpul procesului de instalare.
Ar trebui să vedeți tabloul de bord WordPress, ca mai jos:
O treabă bună și felicitări pentru noua dvs. instalare WordPress!
WordPress, plug-in-urile și Apache împreună se pot apropia de limitele de memorie ale instanțelor AWS Micro. Reporniți instanța o dată după acest tutorial și monitorizați cât de multă memorie utilizați. De la Terminal, SSH în și face:
sudo reboot
Sau, puteți reporni din Tabloul de bord EC2 așa cum se arată în imaginea de mai jos. Vedeți meniul Acțiuni. Monitorizați activitatea la instanța dvs. cu ajutorul funcției gratuite sau de sus:
liber
Sau, utilizați partea de sus. Tastarea "q" va ieși din partea de sus.
top
Încercați să vizitați pagini diferite ale site-ului dvs. WordPress și să aflați cum influențează utilizarea memoriei. Încercați și să accesați pagini de pe dispozitive mobile și tablete. Dacă utilizați o instanță Amazon Micro, probabil că va trebui să configurați un fișier swap pe EBS pentru a împiedica instanța dvs. să se prăbușească.
În timp ce este ușor de configurat, există un risc mic de a suporta costurile de bandă nelimitate ale rețelei interne - deci asigurați-vă că monitorizați site-ul dvs. și configurați alarme de facturare așa cum este descris aici pe site-ul meu. N-am avut niciodată probleme cu asta - dar oamenii avertizează despre asta.
Odată ce ați configurat un fișier swap, instanța dvs. de micro trebuie să fie stabilă.
sudo dd dacă = / dev / zero din / / swapfile bs = 1M count = 1024 sudo mkswap / swapfile sudo swapon / swapfile
Acum, pentru a face ca swapfile să fie persistent în repornire, editați fișierul fstab:
sudo nano / etc / fstab
Adăugați această linie:
swap swap swap implicit 0 0
Verificați dacă fișierul swap este activ introducând:
liber
Ar trebui să arate ceva de genul:
Schimbați: 1048572 0 1048572
Acum sunteți administratorul de sistem care rulează propriul dvs. site WordPress. Minunat. Dar, acum sunteți responsabil pentru o mulțime de lucruri care sunt de obicei gestionate de o companie de hosting.
Nu există nicio șansă în ceea ce privește revenirea la găzduirea gestionată. Dacă vă simțiți că ați intrat peste cap, nu ezitați să vă retrageți la WordPress.com sau la o altă gazdă. Toți luăm decizii în care ne petrecem timpul - iar gestionarea găzduirii este una rezonabilă. Odată ce vă angajați să vă difuzați site-ul dvs. - menținerea acestuia în funcțiune va dura mai mult din timpul dvs., așa cum va trece mai târziu la găzduirea gestionată. Deci, fii atent la asta.
Este important să vă conectați regulat la instanță și să actualizați pachetele de securitate. Când vă autentificați, Ubuntu va raporta ceva de genul: "35 de pachete pot fi actualizate. 22 actualizări sunt actualizări de securitate." Utilizați următoarea comandă pentru a actualiza sistemul:
sudo apt-get upgrade
Recentele bug-uri inimii sunt un exemplu de avertizare a tipurilor de vulnerabilități care trebuie să fie patch-ate din când în când. Dacă nu țineți actualizat sistemul dvs. Linux, oamenii ar putea să vă hackeze site-ul.
Păstrarea actualizărilor WordPress este la fel de importantă. Cele mai recente versiuni ale WordPress sunt configurate pentru a vă avertiza la noile upgrade-uri.
Nimeni nu vă susține site-ul WordPress. Trebuie să alegeți cum să faceți acest lucru. Puteți memora manual crearea unui instantaneu AWS al instanței dvs. prin interfața AWS. Dacă căutați online, puteți găsi scripturi de personalizat care fac acest lucru din instanța dvs. Linux. Practic, trebuie să faceți backup pentru structura de directoare WordPress (cu teme, pluginuri și imagini), baza de date MySQL stocată în sistemul de fișiere Linux, precum și fișierul de configurare a site-ului Apache.
O altă abordare care funcționează bine este un serviciu precum VaultPress, aflat în proprietatea companiei automate WordPress Automattic. Există și pluginuri WordPress pe care le puteți achiziționa pentru a rula copii de siguranță la alte servicii de stocare, inclusiv sistemul de stocare S3 al Amazonului.
Formularele de contact WordPress solicită să vă difuzați propriul server de poștă electronică pentru a vă trimite mesajele prin e-mail. Rularea unui server de poștă electronică Postfix este destul de complicată și are propriile riscuri de scalare și securitate. În schimb, îmi place să combin ceva asemănător cu Formularul de contact 7 Plugin cu pluginul Mailgun WordPress. Există un pic de set, dar este gratuit pentru cele mai multe utilizări și funcționează perfect.
De asemenea, sunteți responsabil pentru gestionarea timpului de funcționare a serverului. Deci, aveți nevoie de un serviciu de monitorizare pentru a vă spune când instanțele Amazonului coboară. Și, ei fac - rareori, dar se întâmplă. Un serviciu plătit, cum ar fi ScoutApp.com, sau propriul monitor Simplu găzduit de mine sunt soluții bune. Dacă vă organizați auto-monitorizarea, este important să o executați într-o altă situație sau cel puțin să activați bătăile inimii la un interval frecvent, de ex. 2 ore. Dacă instanța pe care o monitorizează eșuează, nu veți ști până nu observați că nu ați primit ultima batai de inimă.
Acesta este un subiect lung pe care nu ne vom adresa în întregime aici. Am scris mai multe despre acest subiect pe site-ul meu. Performanța site-ului dvs. afectează de asemenea clasamentul motorului dvs. de căutare.
Deci, este timpul să construim fundația pentru o performanță super rapidă cu Vache Cache și W3 Total Cache.