OpenShift er en PaaS som lar deg kjøre din egen app gratis med lave ressurser. Den tilbyr 1 GB lagringsplass og 512 MB RAM, og har støtte for egendefinerte domener. Det er raskere enn Heroku, PagodaBox og AppFog som gir deg SSH-tilgang til appserveren din, som kjører i et eget miljø. Det er akkurat som en ekte server, men du får det gratis.
OpenShift er en veldig god plattform for å kjøre et WordPress-nettsted. PagodaBox og AppFog rettferdig for hosting PHP applikasjoner gratis; PagodaBox er imidlertid ganske treg, og har en hard grense på 10 MB MySQL for gratis plan. AppFog støtter ikke lenger tilpasset domene på deres gratis plan. Du kan også kjøre PHP på Heroku, men det er også litt tregt.
OpenShift løser alle problemene ovenfor: Det er raskt nok, tilbyr et gratis tilpasset domene, tilbyr stor diskplass og en betydelig mengde MySQL-lagring.
Den frie planen støtter:
OpenShift er en neste generasjons skyplattform som gjør det enkelt å utvikle, distribuere og skala applikasjoner i skyen - offentlig eller privat.
La oss slå det ned.
git push
til depotet som OpenShift opprettet for deg.Appen din, til OpenShift-visningen, inneholder:
Git-depotet er opprettet og vedlikeholdt av OpenShift selv, også. Du må presse til å utløse distribusjon.
Appen din kjører på et sett med patroner. En patron,av OpenShifts definisjon, er selvforsynte stykker av programstakken, som for eksempel webserveren og databaseserveren. disse patronenedistribueres og kjøres på en eller flere sikre containere samtaleutstyr.
Så, for en PHP-applikasjon, kan du ha en MySQL-server, en webserver, en Memcache-server, en loggingsserver og en Gearman-arbeider. Alle disse er patroner. Gears er hva som skal kjøre disse patronene. Du kan tenke på et utstyr som en separat virtuell server, og patronen er teknologistakken; Derfor, for å skalere appen din, kan du legge til flere gir i det.
For å utvide teknologistakken, legger du til flere patroner, som å legge til en RabbitMQ.Gears delte konfigurasjonsinformasjon med appen din via miljøvariabler. For eksempel vil du ikke direkte skrive ned et MySQL brukernavn eller MySQL passord i en config-fil. I stedet vil du bruke getenv til å laste miljøvariabler. Hvis du hardt kodes konfigurasjonen, når du distribuerer på nytt utstyr, slutter det å fungere.
define ('DB_NAME', getenv ('OPENSHIFT_APP_NAME'));
/ ** MySQL database brukernavn * /
define ('DB_USER', getenv ('OPENSHIFT_MYSQL_DB_USERNAME'));
/ ** MySQL database passord * /
define ('DB_PASSWORD', getenv ('OPENSHIFT_MYSQL_DB_PASSWORD'));
/ ** MySQL vertsnavn * /
define ('DB_HOST', getenv ('OPENSHIFT_MYSQL_DB_HOST'). ':'. getenv ('OPENSHIFT_MYSQL_DB_PORT'));
Deling av konfigurasjon via miljø er måten flere gears kan kjenne hverandres informasjon. Hvis du er overbevist om, la oss fortsette.
Gå til her og registrer deg for en konto. Du trenger bare å registrere deg for en gratis konto. Hopp over hvis du allerede har hatt en konto der.
Du trenger en offentlig nøkkel for forbindelse mellom deg og OpenShift senere. En offentlig nøkkel er en vanlig tekstfil som vanlig navn id_rsa.pub
som ligger i ~ / .Ssh /
.
Så hvis du er på en Mac, er den inne /Users/[your_username]/.ssh/id_rsa.pub
eller hvis du er på Linux er den inne /home/[your_user_name]/.ssh/id_rsa.pub
. Du må kopiere innholdet i denne filen og oppdatere den med OpenShift, slik at OpenShift er klar over din offentlige nøkkel. Når du kobler til OpenShift fra terminalen (det vil si når du SSH i boksen din og trykker på kode), vil OpenShift identifisere og autorisere deg ved å bruke din offentlige / private nøkkel.
Hvis du ikke er kjent med det offentlige nøkkelbegrepet, vil denne opplæringen gi deg en solid bakgrunn for den.
For å sjekke om du har hatt en offentlig nøkkel før, kjør denne kommandoen:
ls -la ~ / .ssh | grep id_rsa.pub
Hvis du får dette resultatet:
id_rsa.pub
da har du allerede en offentlig nøkkel. Hvis kommandoen ovenfor ikke returnerer noe, har du ikke en.
La oss generere det med kommando:
$ ssh-keygen -t rsaDu kan bare bruke standardalternativet når det spør deg. Når du er ferdig, kan du bekrefte at du har den filen ved å kjøre
ls -la ~ / .ssh | grep id_rsa.pub
en gang til. En tilhørende privat nøkkelfil genereres også under navn ~ / .Ssh / id_rsa
(ikke .pub-utvidelse) for deg. Vi vil også bruke det senere.tutsplus
som navn plass her. La oss nå kopiere innholdet på den offentlige nøkkelen i utklippstavlen.
Hvis du er på Mac, kan du bruke denne kommandoen til å kopiere innhold til en fil raskt:
$ cat ~ / .ssh / id_rsa.pub | pbcopy
katt ~ / .ssh / id_rsa.pub
, Kopier deretter utdata manuelt.For å få WordPress oppe, kan du starte fra begynnelsen med OpenShift kommandolinjeverktøyene, eller du kan bruke GUI til å lage den. Bruke en GUI kan være lettere å starte, så la oss bruke den. Vi vil dykke mer inn i CLI-modus senere.
Logg inn på OpenShift og gjør følgende:
Nå blir du omdirigert til en skjerm for å skrive inn bloggen din.
rhcloud.com
. Du kan velge hvilket som helst navn fordi vi vil endre det med eget domene senere uansett. I denne opplæringen vil jeg bruke http://demo2-tutsplus.rhcloud.com. Tutsplus
er navnet mitt og Demo2
er navnet på min app.Vent litt, og søknaden din vil bli opprettet. Deretter vil du bli presentert med en side som inneholder:
La oss klone dette depotet til vår lokale maskin. For eksempel ser min egen ut slik ut
git klon ssh: //[email protected]/~/git/php.git/
Vi kommer tilbake senere. Klikk på "Fortsett til programoversiktssiden", og appen din vises med det domenet du velger. Start det på nettleseren din, og du kan fortsette med vanlig WordPress-installasjon: Sette opp nettstednavnet, admin-brukernavnet og admin-passordet akkurat som du pleide å gjøre med WordPress.
Det neste trinnet er for folk som allerede har WordPress installert et sted og ønsker å flytte til OpenShift. Hvis du gjør en ny installasjon, kan du ignorere dette, men jeg foreslår at du leser det for litt ekstra forståelse av OpenShift-strukturen.
Hvis du har eksisterende WordPress-kode, er det ikke så vanskelig å implementere på toppen av OpenShift. Du har flere alternativer:
wp-config.php
for å matche OpenShifts krav.Her er litt mer detaljert informasjon om det andre trinnet, da overføringen inkluderer tre ting:
wp-innhold / opplasting
til OpenShift.I dette trinnet dekker jeg bare kodeintegrasjon. I et tidligere trinn klonte vi WordPress-depotet med:
git klon ssh: //[email protected]/~/git/php.git/Du bør ha et slikt oppsett inne i depotet. Pass på at du også viser skjulte filer:
Den vakre tingen om OpenShift er at den har en god struktur for WordPress. Når du jobber med WordPress, bekymrer du deg bare om wp-config.php
, plugins og temaer. Det er det.
De andre filene, eller WordPress-kjernefilen (wp-admin, wp-includes, wp-innhold / opplastinger, index.php, wp-login.php ...) håndteres av OpenShift. OpenShift vil automatisk trekke filene fra WordPress og sette den inn på riktig sted for deg.
.openshift
mappen er hvor det meste av koden din vil ligge. plugins
og temaer
er tilsvarende mapper for WordPress. konfig / wp-config.php
er din egendefinerte WordPress config-fil.
.openshift / action_hooks
inneholder bygge og distribuere relaterte skript. Disse skriptene er det som skal kjøres på OpenShift-serveren for å distribuere appen din. Hvis du vil tilpasse byggeprosessen, må du konfigurere disse skriptfilene.
Her er en del av distribusjons arbeidsflyten når et trykk på distribusjonsgrenen (vanligvis er dette denherre
) utløses fra Git:
install_dir
. Deretter last ned og hent filen http://wordpress.org/wordpress-$install_version.tar.gz i denne mappen. Install_version er forhåndsdefinert i .openshift / action_hooks / build
.openshift / konfig / wp-config.php
å overskrive filen i install_dir / wp-config.php
(standard wp-config.php fra originalpakken.openshift / plugins
og .openshift / temaer
til install_dir / wp-innhold / tillegg
og install_dir / wp-content / themes
.openshift / plugins
eller .openshift / temaer
tilsvarende. Deretter begår du koden og trykker alt tilbake til OpenShift. git push
å utløse distribusjon.$ git legg til programtillegg
$ git legg til temaer
# Hvis du oppdaterer wp-config også
$ git legg til config / wp-config.php
$ git commit -m "Kopier fil fra gamle WordPress"
$ git push origin master
Mest sannsynlig vil du ikke bruke standard domenet som OpenShift opprettet for deg. Du vil ønske å bruke ditt eget domene. I teorien, for å bruke ditt egendefinerte domene må du gjøre to ting:
Ved å gjøre dette peker du på domenet ditt til OpenShift-serveren, og OpenShift er klar over domenet ditt og vil begynne å vise appen din når du blir bedt om det fra det domenet.
Avhengig av domeneregistratoren din, har du annen måte å opprette en CNAME eller En post for domenet ditt på. Heldigvis har vi et veldig omfattende dokument om hvordan du gjør dette.
Hvis du bruker et underdomene for ditt WordPress-nettsted som blog.yourdomain.com
Du kan legge til en CNAME-post i din rhcloud.com
underdomene.
Hvis du går med dette, er det veldig enkelt. Bare gå til domenekontrollpanelet, legg til et CNAME-registreringspoeng på OpenShift WordPress-nettadressen din.
For eksempel med name.com, har jeg dette:
OpenShift.Axcoto.Com peker til demo2-tutsplus.rhcloud.com. Teksten i tekstboksen er prøveSå konfigurerer jeg innstillingene til å ha openshift.axcoto.com
peker på demo2-tutsplus.rhcloud.com
I dette tilfellet tillater noen domeneregistratorer deg fortsatt å sette en CNAME-post på et nakent domene (for eksempel yourdomain.com). Hvis ja, bare gå videre og opprett det akkurat som du gjør for underdomene.
Hvis det ikke er det, må vi finne IP-adressen til vårt OpenShift-domenen, og pek på ditt nakne domene til det:
ping demo2-tutsplus.rhcloud.com
PING ec2-54-242-75-238.compute-1.amazonaws.com (54.242.75.238): 56 data bytes
64 byte fra 54.242.75.238: icmp_seq = 0 ttl = 41 gang = 96.713 ms
64 byte fra 54.242.75.238: icmp_seq = 1 ttl = 41 time = 90.054 ms
^ C
--- ec2-54-242-75-238.compute-1.amazonaws.com ping statistikk ---
2 pakker sendt, 2 pakker mottatt, 0,0% pakktap
rundtur min / avg / max / stddev = 90.054 / 93.383 / 96.713 / 3.329 ms
Da opprettet jeg en A-plate og pekte bare på den IP-adressen
Uansett er hovedpunktet å sørge for at domenet du bruker, er løst til samme IP-adresse med din RHC-sky
domene.
Bekreft dette ved å pinge begge domenene:
Nå er domenet ditt i stand til å peke på samme server som OpenShift-underdomenet. Det neste trinnet er å konfigurere domenet på WordPress-siden.
For nå bruker vi fortsatt demo2-tutsplus.rhcloud.com
for å få tilgang til WordPress. La oss gå til Dashboard, og klikk deretter på Innstillinger> Generelt. Bytt begge deler WordPress-adresse (URL)
og Nettstedadresse (URL)
domenet ditt.
På dette tidspunktet kan du være låst ut av WordPress-siden din. Ikke bekymre deg. Gå tilbake til OpenShift-dashbordet, velg appen din, klikk på "Endre" ved siden av domenenavnet og oppdater OpenShift-domenet til ditt eget domene. Så lagre det.
Nå får du tilgang til ditt egendefinerte domene, openshift.axcoto.com
, Du vil se nettstedet ditt. Når du åpner WordPress-dashbordet på ditt egendefinerte domene, kan du få en SSL-advarsel, bare ignorere den. Dette skyldes at SSL-sertifikatet er basert på domene, og vi bytter til vårt egendefinerte domene, så vi bør gi OpenShift vårt SSL-sertifikat hvis vi vil bruke SSL.
Det er veldig praktisk å ha tilgang til MySQL-databasen med phpMyAdmin. De faktorens måte å gjøre MySQL-oppgave i PHP.
På applikasjonssiden din, klikk på "Legg til phpMyAdmin4.0". Venter på en stund og phpMyAdmin vil være klar for deg. Når den er installert, start den, du vil bli bedt om MySQL brukernavn / passord. Vi lagret det i et tidligere trinn. Hvis du har glemt, kan du alltid se brukernavnet og vise passordet i MySQL5.5-kassetten.
Merk at navnet på din WordPress-database er det samme som programnavnet.Hvis du migrerer fra en eksisterende blogg, kan du bruke phpMyAdmin til å importere databasen med gamle WordPress.
På dette tidspunktet er vi ferdige. Du kan fortsette og nyte WordPress-installasjonen. Men la oss dykke inn i noe annet som du kanskje trenger.
Den frie planen kommer med en ulempe: det slås automatisk av hvis du ikke har noen besøk på to dager. Når en besøkende treffer nettstedet ditt, starter det automatisk igjen, så det er greit, i teorien, men i løpet av denne starttiden er det litt lengre tid å se nettstedet ditt siden det tar litt tid å starte.
For å unngå dette, vil du kanskje bruke Pingdom. Pingdom vil sjekke oppetidsstatusen til nettstedet ditt og sende deg et e-postvarsel når du er tomt. For å gjøre det, pingdom pinger nettstedet ditt hvert 10. minutt eller så. Det er bivirkning er at appen din har en besøkende hvert tiende minutt, slik at du kan passere OpenShift auto shutdown. Bonuspoeng, vi har også en flott gratis overvåkingstjeneste.
For det formål foreslår jeg at du konfigurerer en gratis konto med Pingdom for overvåking, og for å holde appen din opptatt nok.
En flott ting om OpenShift er at du kan få ekstern tilgang til appen din som en server. Det er ikke en svart boks til deg. Du kan SSH inn i det og utstede noen kommandoen shell (selvfølgelig er noen sensitive kommandoer deaktivert av OpenShift eller har ingen effekt).
På din applikasjonsside, på høyre side kan du se et innlegg som sier: "Fjerntilgang. Vil du logge inn på søknaden din".
Klikk på den, og du vil få en prøvekommando som:
$ ssh [email protected]
532bd7655004468bcf0000e1
. Servernavnet er selvfølgelig demo2-tutsplus.rhcloud.com
.app-distribusjoner
holder dataene under distribusjonsprosessen som midlertidig fil, klonregister. Dataene her kommer til å kopieres til riktig sted senere. Det er flere viktige kataloger lokalisert i den.app-distribusjoner / strøm / repo
har akkurat samme klon i vårt Git-lager. Uansett hva du har på din lokale maskin vil være det samme her.app-root / runtime / repo / php
er dokumentroten din. Det er symbolsk lenke til app-rot / data / strøm
hvilken er den riktige plasseringen av koden din, som du kan lese mer underapp-root / data
denne mappen holder koden din, opplastingsmappen din, temaet og plugin-modulen. Dette er det virkelige stedet hvor alle disse er plassert og vil være knyttet til fra forskjellige steder.Dataene i denne mappen vil være utallige vedvarende mellom utgivelser. Hvis det endrer seg, endres deretter ved å bygge skript, ikke av OpenShift selv.app-rot / data / strøm
din WordPress-kode for nåværende utgivelse finnes her. Dataene i denne mappen er vanligvis vedvarende (bortsett fra innholdet i noen symbolsk lenke i det som kan endres fordi det peker til et annet sted). WordPress-filene som: wp-admin
, wp-inkluderer
, index.php
, .htaccess
vil sitte her. Innholdet i denne mappen er opprettet ved å bygge script første gang du installerer WordPress fra OpenShift dashboard. Senere, under hver distribusjon, kan noen fil kopieres til dette ved å distribuere skriptet. Men OpenShift selv vil ikke tilbakestille innholdet i denne mappen.app-rot / data / opplasting
dette er opplastingsmappen din, men det er en symbolsk lenke til app-rot / data / strøm / wp-innhold / opplasting
slik at du kan ha vedvarende opplastede data mellom flere utgivelser.app-root / data / temaer
inneholder tema. Den er koblet fra app-root / data / strøm / wp-content / themes
.Igjen er det fordi du kan laste opp tema fra WordPress admin, så det er koblet til utenfor for å ha vedvarende data mellom utgivelser.Hvis du husker Trinn 2B, ved hver distribusjon, innholdet av ./ openshift / temaer
vil bli kopiert til denne mappen også.app-rot / data / plugg
inneholder plugin.It er symbolsk lenke fra app-rot / data / strøm / wp-innhold / tillegg
. Igjen er det fordi du kan laste opp tema fra WordPress admin, så det er koblet til utenfor for å ha vedvarende data mellom utgivelser. Hvis du husker Trinn 2B, ved hver distribusjon, innholdet av ./ Openshift / plugins
vil bli kopiert til denne mappen også.app-rot / data / strøm / wp-innhold / opplasting
poeng til app-rot / data / strøm / wp-innhold / opplasting
git
er mappen hold din bare Git-depotet som OpenShift opphørte for degmysql
har MySQL data og konfigurasjonsinformasjon for mysql.app-distribusjoner
erKodens øyeblikksbilde under distribusjon.php
inneholder PHP-konfigurasjon, PHP-utvidelse ...app-rot / data / strøm / wp-innhold / opplasting
med scp. For eksempel:
$ cd your_current_wordpress
# Vi vil rekursive kopiere all fil / mappe under wp-innhold / opplastinger til
$ scp -r wp-innhold / opplastinger / * [email protected]: ~ / app-root / data / nåværende / wp-innhold / opplastinger
Pass på at du bruker riktig brukernavn og servernavn. Det er veldig viktig at du bruker riktig brukernavn, ellers vil du ikke kunne koble til.
OpenShift støtter ikke FTP, men du kan bruke SSH File Transfer Protocol for å få tilgang og nettleser filsystemet; Bruk ikke denne metoden til å laste opp og redigere filen direkte.
Vurder dette som en måte å hjelpe deg med å se filstrukturen på appen din raskt hvis du ikke er kjent med kommandolinjen. Vi bruker FileZilla til å koble til. Vi vil ikke bruke passordautentisering, men offentlig / privat nøkkelautentisering. Vi har allerede konfigurert den offentlige nøkkelen før. La nå legge til en ny server som på skjermen. Endre det til innstillingen.
Lagre det. Deretter må vi oppdatere vår private nøkkel med FileZilla fordi vi ikke vil bruke passordautentisering på OpenShift. Åpne FileZilla Preference, velg SFTP-> Add Key File, og velg deretter din private nøkkel som vi genererte sammen med offentlig nøkkel i forrige trinn. Det burde være i /Users/yourname/.ssh/id_rsa
.
Merk at siden .ssh
Inkluder en prikk, Mac vil gjemme det, så du kan følge disse tipsene for å vise skjult fil i Mac.
Svar ja når det ber om konvertering. Nå kan du koble til verten vi lagret før.
Når du er inne, kan du navigere rundt og ha en følelse av mappelayout. Men sørg for at du ikke fjerner slett WordPress-kode manuelt, det er en riktig måte for OpenShift-distribusjonen å bruke sitt Git-depot. Du kan fortsatt laste opp fil manuelt, men du vil miste annen fin funksjon ved OpenShift-distribusjon.
Ved å bruke en GUI kan det være enkelt å se ting som sammenligner for å bruke SSH på terminalen, men ikke misbruke denne SFTP-metoden. Vi bør vurdere det som en rask måte å kontrollere om noen filer er der, for ikke å bruke den til distribusjon. Men du kan bruke den til å laste ned (for backup formål) mediedata i app-rot / data / opplasting
.
Hvis du migrerer fra et eksisterende WordPress-installasjon, kan du ganske enkelt alle filer i din wp-innhold / opplasting
til app-rot / data / strøm / wp-innhold / opplasting
Temaer og plugins kan lastes opp og installeres direkte fra WordPress admin-brukergrensesnittet. De vil bli lagret i app-rot / data / plugin
ogapp-root / data / tema
.Men siden vi brukte Git for distribusjon på OpenShift, vi bør sjekke dem i vårt Git-depot og bør ikke laste opp direkte fra WordPress dashboard. Du kan sette temaet ditt, plugin inn .openshift / temaer
og .openshift / plugin
på samme måte som det som er beskrevet i Trinn 2B.
For å gjenopprette denne etterinstalleringsdelen vil jeg si at hvis du er en sluttbruker som ikke er kjent med Git eller terminal tilgang, bør du bruke SFTP for å laste opp fil, installere plugin / tema direkte akkurat som det du vil gjøre på en delt hosting.
Hvis du er en WordPress-utvikler, bruk Git. I neste del lærer vi mer om den rette måten med OpenShift: distribusjon med Git push. Og stol på meg, det er lettere enn det høres ut.
På dette tidspunktet kan du kjøre WordPress på OpenShift, slik at du ikke lenger trenger regninger for hosting service. Hvis tjenesten din begynner å få mer trafikk, kan du legge til flere gir til den.
I denne opplæringen gjorde vi nesten alt via OpenShift dashbordet, men brukergrensesnittet har alltid sine begrensninger. OpenShift kommer med et større kommandolinjeverktøy som vi vil lære i neste artikkel. Spesielt lærer vi hvordan vi vedlikeholder og problemstiller vår WordPress-installasjon.
Legg igjen kommentar for å fortelle oss hvordan du gjør med OpenShift.