OpenShift är en PaaS som låter dig ladda din egen app gratis med låga resurser. Den erbjuder 1 GB lagring och 512 MB RAM, och har stöd för egna domäner. Det är snabbare än Heroku, PagodaBox och AppFog som ger dig SSH-åtkomst till din appserver, som körs i en separat miljö. Det är som en riktig server, men du får det gratis.
OpenShift är en mycket bra plattform för att driva en WordPress-webbplats. PagodaBox och AppFog-mässan för hosting av PHP-applikationer gratis PagodaBox är dock ganska långsam, och har en hård gräns på 10 MB MySQL för fri plan. AppFog stöder inte längre anpassad domän på sin fria plan. Du kan också köra PHP på Heroku, men det är också lite långsamt.
OpenShift löser alla ovanstående problem: Det är snabbt nog, erbjuder en gratis anpassad domän, erbjuder stort diskutrymme och en betydande mängd MySQL-lagring.
Den fria planen stöder:
OpenShift är en nästa generation Cloud Application Platform som gör det enkelt att utveckla, distribuera och skala applikationer i molnet - offentliga eller privata.
Låt oss bryta ner det.
git push
till förvaret som OpenShift skapade för dig.Din app till OpenShift synvinkel innehåller:
Gitförvaret skapas och underhålls av OpenShift själv också. Du måste trycka på den för att aktivera implementeringen.
Din app körs på en uppsättning av patroner. En patron,av OpenShifts definition är självständiga bitar av applikationsstacken som webbservern och databasservern. dessa patronerutplaceras och körs på en eller flera säkra containrar.
Så, för en PHP-applikation kan du ha en MySQL-server, en webbserver, en Memcache-server, en loggningsserver och en Gearman-arbetare. Alla dessa är patroner. Gears är vad som kommer att köra dessa patroner. Du kan tänka på ett redskap som en separat virtuell server, och patronen är tekniken stacken; Därför, för att skala din app, kan du lägga till fler redskap i den.
För att expandera din teknikstack lägger du till fler patroner, som att lägga till en RabbitMQ.Gears delade konfigurationsinformation med din app via miljövariabler. Till exempel skriver du inte direkt ett MySQL användarnamn eller MySQL lösenord i en config-fil. Istället skulle du använda getenv för att ladda miljövariabler. Om du har svårt att koda konfigurationen, slutar du arbeta när du installerar på nytt redskap.
definiera ("DB_NAME", getenv ("OPENSHIFT_APP_NAME"));
/ ** MySQL databas användarnamn * /
definiera ('DB_USER', getenv ('OPENSHIFT_MYSQL_DB_USERNAME'));
/ ** MySQL databas lösenord * /
define ('DB_PASSWORD', getenv ('OPENSHIFT_MYSQL_DB_PASSWORD'));
/ ** MySQL värdnamn * /
define ( 'DB_HOST', getenv ( 'OPENSHIFT_MYSQL_DB_HOST') ':' getenv ( 'OPENSHIFT_MYSQL_DB_PORT')..);
Att dela konfiguration via miljö är det sätt på vilket flera växlar kan känna varandra information. Om du är övertygad, låt oss fortsätta.
Gå till här och registrera dig för ett konto. Du behöver bara registrera dig för ett gratis konto. Hoppa över om du redan har ett konto där.
Du behöver en offentlig nyckel för koppling mellan dig och OpenShift senare. En offentlig nyckel är en vanlig textfil som vanligen namn id_rsa.pub
som ligger i ~ / .Ssh /
.
Så om du är på en Mac, är den inne /Users/[your_username]/.ssh/id_rsa.pub
eller om du är på Linux är det i /home/[your_user_name]/.ssh/id_rsa.pub
. Du måste kopiera innehållet i den här filen och uppdatera den med OpenShift, så OpenShift är medveten om din offentliga nyckel. När du kopplar till OpenShift från terminalen (det vill säga när du SSH till din lådan och trycker på kod) identifierar och godkänner OpenShift dig baserat på din offentliga / privata nyckel.
Om du inte är bekant med public key-konceptet kommer denna handledning att ge dig en solid bakgrund för den.
För att kontrollera om du har haft en offentlig nyckel före, kör det här kommandot:
ls -la ~ / .ssh | grep id_rsa.pub
Om du får resultatet:
id_rsa.pub
då har du redan en offentlig nyckel. Om ovanstående kommando returnerar ingenting, har du inte en.
Låt oss generera det med kommando:
$ ssh-keygen -t rsaDu kan bara använda standardalternativet när det frågar dig. När du är klar kan du bekräfta att du har den filen genom att köra
ls -la ~ / .ssh | grep id_rsa.pub
igen. En privat nyckelfil skapas också under namnet ~ / .Ssh / id_rsa
(inte .pub förlängning) för dig. Vi kommer att använda det senare också.tutsplus
som namnutrymme här. Låt oss nu kopiera innehållet på den offentliga nyckeln till urklippet.
Om du är på Mac kan du använda det här kommandot för att snabbt kopiera innehåll till en fil:
$ cat ~ / .ssh / id_rsa.pub | pbcopy
katt ~ / .ssh / id_rsa.pub
, Kopiera sedan manuellt utmatningen.För att få WordPress igång kan du börja från början med OpenShift-kommandoradsverktygen, eller du kan använda GUI för att skapa den. Att använda en GUI kan vara lättare att börja så låt oss använda den. Vi kommer att dyka mer in i CLI-läget senare.
Logga in på OpenShift och gör följande:
Nu kommer du att omdirigera till en skärm för att skriva in din blogginformation.
rhcloud.com
. Du kan välja vilket namn som helst, eftersom vi ändå ändrar det med sin egen domän senare. I den här handledningen använder jag http://demo2-tutsplus.rhcloud.com. Tutsplus
är mitt namn utrymme och demo2
är namnet på min app.Vänta några minuter och din ansökan kommer att skapas. Därefter kommer du att presenteras med en sida som innehåller:
Låt oss klona detta förråd till vår lokala maskin. Till exempel ser min egen ut så här
git klon ssh: //[email protected]/~/git/php.git/
Vi kommer tillbaka senare. Klicka på "Fortsätt till programöversiktssidan" och din app visas med den domän du väljer. Starta det på din webbläsare och du kan fortsätta med vanlig WordPress-installation: Ställa in webbplatsnamn, admin-användarnamn och administratörslösenord precis som du brukar göra med WordPress.
Nästa steg är för personer som redan har WordPress installerade någonstans och vill flytta till OpenShift. Om du gör en ny installation kan du ignorera detta, men jag föreslår att du läser den för ytterligare förståelse av OpenShift-strukturen.
Om du har befintlig WordPress-kod är det inte så svårt att implementera ovanpå OpenShift. Du har flera alternativ:
wp-config.php
för att matcha OpenShifts krav.Här är ytterligare detaljer om det andra steget, eftersom migreringen innehåller tre saker:
wp-content / uppladdningar
till OpenShift.I detta steg täcker jag bara kodintegration. I ett tidigare steg klonade vi WordPress-förråd med:
git klon ssh: //[email protected]/~/git/php.git/Du borde ha en sådan layout i förvaret. Se till att du också visar dolda filer:
Den vackra sak om OpenShift är att den har en bra struktur för WordPress. När du arbetar på WordPress, bekymrar du dig bara om wp-config.php
, plugins och teman. Det är allt.
De andra filerna, eller WordPress-kärnfilen (wp-admin, wp-includes, wp-innehåll / uploads, index.php, wp-login.php ...) hanteras av OpenShift. OpenShift tar automatiskt filerna från WordPress och lägger den på rätt plats för dig.
.openshift
mapp är där de flesta av din kod kommer att ligga. plugin-program
och teman
är motsvarande mappar för WordPress. config / wp-config.php
är din anpassade WordPress config-fil.
.openshift / action_hooks
innehåller bygga och distribuera relaterade skript. Dessa skript är vad som kommer att köras på OpenShift-servern för att distribuera din app. Om du vill anpassa byggprocessen måste du konfigurera dessa skriptfiler.
Här är en del av installationsarbetet när det är ett tryck på deployeringsgrenen (vanligtvis är det härbemästra
) utlöses från Git:
install_dir
. Därefter, ladda ner och extrahera filen http://wordpress.org/wordpress-$install_version.tar.gz i den här mappen. Install_version är fördefinierad i .openshift / action_hooks / build
.openshift / config / wp-config.php
att skriva över filen install_dir / wp-config.php
(standard wp-config.php från originalpaketet.openshift / insticksmoduler
och .openshift / themes
till install_dir / wp-content / plugins
och install_dir / wp-content / teman
.openshift / insticksmoduler
eller .openshift / themes
följaktligen. Sedan begå din kod och tryck allt tillbaka till OpenShift. git push
för att utlösa implementering.$ git lägg till plugins
$ git lägg till teman
# Om du uppdaterar wp-config också
$ git lägg till config / wp-config.php
$ git commit -m "Kopiera fil från gamla WordPress"
$ git push origin master
Mest troligt kommer du inte att använda den standarddomän som OpenShift har skapat för dig. Du kommer att vilja använda din egen domän. I teorin, för att använda din egna domän måste du göra två saker:
Genom att göra det pekar du på din domän till OpenShift-servern och OpenShift är medveten om din domän och kommer att börja servera din app när den begärs från den domänen.
Beroende på din domänregistrator har du olika sätt att skapa en CNAME eller en post för din domän. Lyckligtvis har vi ett mycket omfattande dokument om hur man gör det här.
Om du använder en underdomän för din WordPress-webbplats som blog.yourdomain.com
Du kan lägga till en CNAME-post i din rhcloud.com
underdomän.
Om du går med det här är det väldigt enkelt. Gå bara till din domänkontrollpanel, lägg till en CNAME-postpoäng till ditt OpenShift WordPress-URL.
Till exempel med name.com har jag följande:
OpenShift.Axcoto.Com pekar på demo2-tutsplus.rhcloud.com. Texten i textrutan är ett provSå konfigurerar jag inställningarna att ha openshift.axcoto.com
peka mot demo2-tutsplus.rhcloud.com
I det här fallet tillåter vissa domänregistratorer dig att ställa in en CNAME-post på en naken domän (t.ex. dindomän.com). Om så är fallet, fortsätt bara och skapa det som du gör för underdomäner.
Om det inte är det måste vi hitta IP-adressen till vår OpenShift-domän och peka på din nakna domän till den:
ping demo2-tutsplus.rhcloud.com
PING ec2-54-242-75-238.compute-1.amazonaws.com (54.242.75.238): 56 databytor
64 byte från 54.242.75.238: icmp_seq = 0 ttl = 41 tid = 96.713 ms
64 byte från 54.242.75.238: icmp_seq = 1 ttl = 41 tid = 90,054 ms
^ C
--- ec2-54-242-75-238.compute-1.amazonaws.com ping statistik ---
2 paket överförda, 2 paket mottagna, 0,0% paketförlust
rundtur min / avg / max / stddev = 90.054 / 93.383 / 96.713 / 3.329 ms
Sedan skapade jag en A-post och pekade bara på den IP-adressen
Hur som helst är huvudpunkten att se till att domänen du använder är löst till samma IP-adress med din RHC-moln
domän.
Verifiera detta genom att pinga båda domänerna:
Nu kan din domän peka på samma server som OpenShift-underdomänen. Nästa steg är att konfigurera domänen på WordPress-sidan.
För närvarande använder vi fortfarande demo2-tutsplus.rhcloud.com
för att komma åt WordPress. Låt oss gå till instrumentpanelen och klicka sedan på Inställningar> Allmänt. Ändra båda WordPress-adress (URL)
och Webbplatsadress (URL)
din domän.
Vid denna tidpunkt kan du vara låst ur din WordPress-webbplats. Oroa dig inte. Gå tillbaka till OpenShift-instrumentpanelen, välj din app, klicka på "Ändra" bredvid domännamnet och uppdatera OpenShift-domänen till din egen domän. Spara sedan det.
Öppna nu din anpassade domän, openshift.axcoto.com
, du kommer att se din webbplats. När du öppnar WordPress-instrumentpanelen på din anpassade domän kan du få en SSL-varning, bara ignorera den. Detta beror på att SSL-certifikatet är baserat på domän och vi byter till vår anpassade domän, så vi bör ge OpenShift vårt SSL-certifikat om vi vill använda SSL.
Det är mycket praktiskt att ha tillgång till MySQL-databasen med phpMyAdmin. De faktorn sätt att göra MySQL uppgift i PHP.
På din applikationssida, klicka på "Lägg till phpMyAdmin4.0". Väntar på ett tag och phpMyAdmin är redo för dig. När det är installerat, starta det, du kommer att bli ombedd för MySQL användarnamn / lösenord. Vi lagrade det i ett tidigare steg. Om du glömde kan du alltid se användarnamnet och visa lösenordet i MySQL5.5-patronen.
Observera att namnet på din WordPress-databas är samma som programnamnet.Om du flyttar från en befintlig blogg kan du använda phpMyAdmin för att importera databasen med gamla WordPress.
Vid det här laget är vi färdiga. Du kan fortsätta och njuta av din WordPress-installation. Men låt oss dyka in i någon annan sak som du kan behöva.
Den fria planen har en nackdel: det stängs automatiskt av om du inte har några besök på två dagar. När en besökare träffar din webbplats startar den automatiskt igen så det är bra, teoretiskt men under den här starttiden är det lite längre att se din webbplats eftersom det tar någon gång att starta.
För att undvika detta kan du använda Pingdom. Pingdom kontrollerar statusen på din webbplats och skickar dig ett e-postmeddelande när webbplatsen är nere. För att göra det pingdom pingar din webbplats på var tionde minut eller så. Det är biverkningen är att din app har en besökare varje tio minuter så att du kan passera OpenShift auto shutdown. Bonuspunkt, vi har också en bra fri övervakningstjänst.
För det ändamålet föreslår jag att du installerar ett gratis konto med Pingdom för övervakningsändamål och för att hålla din app upptagen nog.
En bra sak om OpenShift är att du kan fjärråtkomst till din app som en server. Det är inte en svart låda till dig. Du kan SSH in i det och utfärda något kommandot Shell (naturligtvis är vissa känsliga kommandon inaktiverade av OpenShift eller har ingen effekt).
På din ansökningssida kan du på höger sida se ett inlägg som säger: "Fjärråtkomst. Vill du logga in på din ansökan".
Klicka på den och du kommer att ha ett exempelkommando som:
$ ssh [email protected]
532bd7655004468bcf0000e1
. Servernamnet är givetvis demo2-tutsplus.rhcloud.com
.app-distributioner
håller data under implementeringsprocessen som tillfällig fil, klonförråd. Uppgifterna här kopieras till rätt plats senare. Det finns viktigare kataloger som finns inom den.app-distributioner / ström / repo
har exakt samma klon i vårt Git-arkiv. Vad du än har på din lokala maskin kommer att vara densamma här.app-root / runtime / repa / php
är din dokumentrots. Det är symbolisk länk till app-rot / data / ström
vilken är den riktiga platsen för din kod, om vilken du kan läsa mer nedanapp-rot / data
den här mappen håller din kod, din uppladdningsmapp, tema och plugin. Det här är den verkliga platsen där alla dessa är belägna och kommer att kopplas till från olika platser.Uppgifterna i den här mappen kommer att vara vanligt förekommande mellan utgåvorna. Om det ändras, ändras då med dina byggskript, inte av OpenShift själv.app-rot / data / ström
din WordPress-kod för aktuell version finns här. Datan i den här mappen är vanligtvis beständig (förutom innehållet i någon symbolisk länk inuti den som kan förändras eftersom den pekar till någon annanstans). WordPress-filerna som: wp-admin
, wp-includes
, index.php
, .htaccess
kommer att sitta här. Innehållet i den här mappen skapades genom att bygga skript första gången du installerade WordPress från OpenShift-instrumentpanelen. Senare, under varje utplacering, kan en fil kopieras till detta genom installationsprocessen. Men OpenShift själv återställer inte innehållet i den här mappen.app-root / data / uppladdningar
Det här är din uppladdningsmapp, men det är en symbolisk länk till app-root / data / ström / wp-content / uppladdningar
så du kan ha ihållande uppladdade data mellan flera versioner.app-root / data / themes
innehåller tema. Den är länkad från app-root / data / ström / wp-content / teman
.Återigen beror det på att du kan ladda upp temat från WordPress admin så det är länkat till utsidan för att ha långlivade data mellan utgåvor.Om du kommer ihåg Steg 2B, vid varje utplacering, innehållet i ./ openshift / themes
kommer också att kopieras till den här mappen.app-root / data / plugins
innehåller plugin.It är symbolisk länk från app-root / data / ström / wp-content / plugins
. Återigen beror det på att du kan ladda upp temat från WordPress admin så det är länkat till utsidan för att ha långlivade data mellan utgåvor. Om du kommer ihåg Steg 2B, vid varje utplacering, innehållet i ./ Openshift / insticksmoduler
kommer också att kopieras till den här mappen.app-root / data / ström / wp-content / uppladdningar
pekar på app-root / data / ström / wp-content / uppladdningar
git
är mappen hålla ditt bara Git-förråd som OpenShift upphörde för digmysql
håller din MySQL data och konfigurationsinformation för mysql.app-distributioner
ärkoden snapshot under implementering.php
innehåller PHP-konfiguration, php-tillägg ...app-root / data / ström / wp-content / uppladdningar
med scp. Till exempel:
$ cd your_current_wordpress
# Vi kommer rekursivt kopiera all fil / mapp under wp-innehåll / uppladdningar till
$ scp -r wp-innehåll / uppladdningar / * [email protected]: ~ / app-root / data / nuvarande / wp-innehåll / uppladdningar
Se till att du använder rätt användarnamn och servernamn. Det är mycket viktigt att du använder rätt användarnamn, annars kommer du inte att kunna ansluta.
OpenShift stöder inte FTP men du kan använda SSH File Transfer Protocol för att få åtkomst och webbläsare filsystemet; Använd dock inte denna metod för att ladda upp och redigera filen direkt.
Tänk på detta som ett sätt att hjälpa dig att visa filstrukturen snabbt på din app om du inte är bekant med kommandoraden. Vi använder FileZilla för att ansluta. Vi använder inte lösenordsautentisering utan public / private key authentication. Vi har redan konfigurerat den offentliga nyckeln innan. Nu lägger du till en ny server som på skärmen. Ändra det till din inställning.
Spara den. Därefter måste vi uppdatera vår privata nyckel med FileZilla eftersom vi inte kommer att använda lösenordsautentisering på OpenShift. Öppna FileZilla Preference, Välj SFTP-> Add Key File och välj sedan din privata nyckel som vi genererade tillsammans med den offentliga nyckeln i tidigare steg. Det borde vara i /Users/yourname/.ssh/id_rsa
.
Observera att sedan .ssh
Inkludera en punkt, Mac kommer gömma det, så du kan följa dessa tips för att visa dold fil i Mac.
Svar ja när det ber om konvertering. Nu kan du ansluta till den värd som vi sparade förut.
När du är inne kan du navigera runt och ha en känsla av mapplayout. Men se till att du inte manuellt tar bort raderad WordPress-kod där det är rätt sätt för OpenShift-utplacering att använda sitt Git-arkiv. Du kan fortfarande manuellt ladda upp filen, men du kommer att förlora andra fina funktioner i OpenShift-distributionen.
Att använda en GUI kan vara lätt att se saker som jämför att använda SSH på terminalen, men missbrukar inte denna SFTP-metod. Vi bör överväga det som ett snabbt sätt att verifiera om vissa filer finns där, inte att använda det för distribuering. Men du kan använda den för att ladda ner (för säkerhetskopiering) mediedata i app-root / data / uppladdningar
.
Om du migrerar från en befintlig WordPress-installation kan du helt enkelt alla filer i din wp-content / uppladdningar
till app-root / data / ström / wp-content / uppladdningar
Teman och plugins kan laddas upp och installeras direkt från WordPress admin-användargränssnittet. De kommer att lagras i app-rot / data / plugin
ochapp-rot / data / tema
.Men eftersom vi använde Git för implementering på OpenShift, vi bör kolla dem i vårt Git-förråd och ska inte ladda upp direkt från WordPress-instrumentpanelen. Du kan lägga in ditt tema, plugga in .openshift / themes
och .openshift / plugin
på samma sätt som det som beskrivs i Steg 2B.
För att återfå denna postinstallationssektion kommer jag att säga att om du är en slutanvändare som inte är bekant med Git eller terminalåtkomst, bör du använda SFTP för att ladda upp filen, installera plugin / tema direkt precis som vad du ska göra på en delad hosting.
Om du är en WordPress-utvecklare, använd Git. I nästa del lär vi oss mer om rätt sätt med OpenShift: implementering med Git push. Och lita på mig, det är lättare än det låter.
Vid denna tidpunkt kan du köra WordPress på OpenShift så att du inte längre behöver fakturor för webbhotell. Om din tjänst börjar få mer trafik kan du lägga till fler växlar till den.
I denna handledning gjorde vi nästan allt via OpenShift-instrumentpanelen, men gränssnittet har alltid gränser. OpenShift kommer med ett större kommandoradsverktyg som vi kommer att lära oss i nästa artikel. Specifikt lär vi oss hur vi behåller och problemställer vår WordPress-installation.
Lämna kommentar för att låta oss veta hur du gör med OpenShift.