OpenShift is een PaaS waarmee je je eigen app gratis kunt uitvoeren met weinig middelen. Het biedt 1 GB opslagruimte en 512 MB RAM, en heeft ondersteuning voor aangepaste domeinen. Het is sneller dan Heroku, PagodaBox en AppFog waardoor je SSH-toegang hebt tot je app-server, in een aparte omgeving. Het is net als een echte server, maar je krijgt het gratis.
OpenShift is een zeer goed platform voor het uitvoeren van een WordPress-site. PagodaBox en AppFog beurs voor gratis hosting van PHP-applicaties; PagodaBox is echter vrij traag en heeft een harde limiet van 10 MB MySQL voor een gratis abonnement. AppFog ondersteunt niet langer het aangepaste domein in hun gratis abonnement. Je kunt PHP ook uitvoeren op Heroku, maar het is ook een beetje traag.
OpenShift lost alle bovenstaande problemen op: het is snel genoeg, biedt een gratis aangepast domein, biedt grote schijfruimte en een aanzienlijke hoeveelheid MySQL-opslag.
Het gratis plan ondersteunt:
OpenShift is een cloudapplicatieplatform van de volgende generatie dat het eenvoudig maakt om toepassingen in de cloud te ontwikkelen, te implementeren en te schalen: publiek of privaat.
Laten we het afbreken.
git push
naar de repository die OpenShift voor u heeft gemaakt.Je app, naar OpenShift oogpunt bevat:
De git-repository wordt ook door OpenShift zelf gemaakt en onderhouden. U moet erop aandringen om de implementatie te activeren.
Uw app wordt uitgevoerd op een set cartridges. Een cartridge,volgens de definitie van OpenShift zijn op zichzelf staande stukken van de toepassingsstapel, zoals de webserver en de databaseserver. deze cartridgesworden ingezet en worden uitgevoerd op een of meer beveiligde containers.
Voor een PHP-toepassing kunt u dus een MySQL-server, een webserver, een Memcache-server, een logboekserver en een Gearman-medewerker hebben. Dit zijn allemaal cartridges. Met behulp van tandwielen worden deze cartridges gebruikt. Je kunt een versnelling bedenken als een aparte virtuele server, en cartridge is de technologiestack; daarom kun je, om je app te schalen, meer versnellingen toevoegen.
Om uw technologiestack uit te breiden, voegt u meer cartridges toe, zoals het toevoegen van een RabbitMQ.Versnelt gedeelde configuratie-informatie met uw app via omgevingsvariabelen. U kunt bijvoorbeeld niet rechtstreeks een MySQL-gebruikersnaam of MySQL-wachtwoord noteren in een configuratiebestand. In plaats daarvan zou u getenv gebruiken om omgevingsvariabelen te laden. Als je de configuratie hard codeert, stopt het met werken wanneer je nieuwe apparatuur gebruikt.
define ('DB_NAME', getenv ('OPENSHIFT_APP_NAME'));
/ ** MySQL database gebruikersnaam * /
define ('DB_USER', getenv ('OPENSHIFT_MYSQL_DB_USERNAME'));
/ ** MySQL-databasewachtwoord * /
define ('DB_PASSWORD', getenv ('OPENSHIFT_MYSQL_DB_PASSWORD'));
/ ** MySQL-hostnaam * /
define ('DB_HOST', getenv ('OPENSHIFT_MYSQL_DB_HOST'). ':'. getenv ('OPENSHIFT_MYSQL_DB_PORT'));
Het delen van configuratie via omgeving is de manier waarop meerdere versnellingen elkaars informatie kunnen kennen. Als je overtuigd bent, gaan we verder.
Ga hier naartoe en meld je aan voor een account. U hoeft zich alleen aan te melden voor een gratis account. Overslaan als je daar al een account hebt gehad.
U hebt later een openbare sleutel nodig om verbinding te maken tussen u en OpenShift. Een openbare sleutel is meestal een gewoon tekstbestand id_rsa.pub
dat bevindt zich in ~ / .Ssh /
.
Dus als je op een Mac zit, zit het erin /Users/[your_username]/.ssh/id_rsa.pub
of als je Linux gebruikt, zit het erin /home/[your_user_name]/.ssh/id_rsa.pub
. U moet de inhoud van dit bestand kopiëren en bijwerken met OpenShift zodat OpenShift zich bewust is van uw openbare sleutel. Wanneer u verbinding maakt met OpenShift vanaf de terminal (dat wil zeggen, wanneer u SSH naar uw box hebt en code pusht), zal OpenShift u identificeren en autoriseren op basis van uw openbare / persoonlijke sleutel.
Als u niet bekend bent met het concept van de openbare sleutel, geeft deze zelfstudie u een solide achtergrond.
Voer de volgende opdracht uit om te controleren of u eerder een openbare sleutel hebt gebruikt:
ls -la ~ / .ssh | grep id_rsa.pub
Als u dit resultaat krijgt:
id_rsa.pub
dan heb je al een publieke sleutel. Als het bovenstaande commando niets oplevert, dan heb je er geen.
Laten we het genereren met opdracht:
$ ssh-keygen -t rsaU kunt gewoon de standaardoptie gebruiken wanneer deze u vraagt. Als je klaar bent, kun je bevestigen dat je dat bestand hebt door het uit te voeren
ls -la ~ / .ssh | grep id_rsa.pub
nog een keer. Een overeenkomstig privé-sleutelbestand wordt ook gegenereerd onder naam ~ / .Ssh / id_rsa
(geen .pub-extensie) voor u. We zullen het later ook gebruiken.tutsplus
als naamruimte hier. Laten we nu de inhoud van de openbare sleutel kopiëren naar het klembord.
Als u een Mac gebruikt, kunt u deze opdracht gebruiken om snel inhoud naar een bestand te kopiëren:
$ cat ~ / .ssh / id_rsa.pub | pbcopy
cat ~ / .ssh / id_rsa.pub
, kopieer vervolgens de uitvoer handmatig.Om WordPress aan de gang te krijgen, kun je helemaal opnieuw beginnen met de OpenShift-opdrachtregelprogramma's, of je kunt de GUI gebruiken om het te maken. Het gebruik van een GUI kan eenvoudiger zijn om te starten, dus laten we het gebruiken. We duiken later meer in de CLI-modus.
Login op OpenShift en doe het volgende:
U wordt nu omgeleid naar een scherm voor het invoeren van uw bloginformatie.
rhcloud.com
. U kunt elke naam selecteren, omdat we deze hoe dan ook later zullen wijzigen met een eigen domein. In deze tutorial gebruik ik http://demo2-tutsplus.rhcloud.com. Tutsplus
is mijn naam ruimte en demo2
is de naam van mijn app.Wacht een paar momenten en je aanvraag wordt gemaakt. Vervolgens krijg je een pagina te zien met daarin:
Laten we deze repository klonen naar onze lokale machine. Mijn exemplaar ziet er bijvoorbeeld zo uit
git clone ssh: //[email protected]/~/git/php.git/
We komen hier later op terug. Klik op "Doorgaan naar de pagina met het toepassingsoverzicht" en uw app verschijnt met het domein dat u kiest. Start het in uw browser en u kunt doorgaan met de normale installatie van WordPress: instellen van de sitenaam, admin-gebruikersnaam en het beheerderswachtwoord, net zoals u gewend bent met WordPress.
De volgende stap is voor mensen die WordPress al ergens hebben geïnstalleerd en willen overstappen naar OpenShift. Als u een nieuwe installatie uitvoert, kunt u dit negeren, maar ik raad u aan het te lezen voor extra begrip van de OpenShift-structuur.
Als je bestaande WordPress-code hebt, is het niet zo moeilijk om deze te implementeren op OpenShift. Je hebt verschillende opties:
wp-config.php
om aan de vereisten van OpenShift te voldoen.Hier is wat meer detail over de tweede stap omdat de migratie drie dingen omvat:
wp-content / uploads
OpenShift.In deze stap behandel ik alleen de code-integratie. In een vorige stap hebben we de WordPress-repository gekloond met:
git clone ssh: //[email protected]/~/git/php.git/Je zou zo'n layout in de repository moeten hebben. Zorg ervoor dat u ook verborgen bestanden weergeeft:
Het mooie van OpenShift is dat het een goede structuur heeft voor WordPress. Als je aan WordPress werkt, maak je je alleen zorgen om wp-config.php
, plug-ins en thema's. Dat is het.
De andere bestanden of het WordPress-kernbestand (wp-admin, wp-includes, wp-content / uploads, index.php, wp-login.php ...) worden afgehandeld door OpenShift. OpenShift haalt de bestanden automatisch uit WordPress en zet het op de juiste locatie voor u.
.OpenShift
map is waar het grootste deel van uw code zich zal bevinden. plugins
en thema's
zijn bijbehorende mappen voor WordPress. config / wp-config.php
is uw aangepaste WordPress-configuratiebestand.
.OpenShift / action_hooks
bevat build en implementeer gerelateerde scripts. Die scripts zijn wat wordt uitgevoerd op de OpenShift-server om uw app te implementeren. Als u het bouwproces wilt aanpassen, moet u die scriptbestanden configureren.
Hier is een deel van de implementatieworkflow wanneer een push naar de deploy-branch (meestal is dit demeester
) wordt geactiveerd vanuit Git:
install_dir
. Download en pak vervolgens het bestand http://wordpress.org/wordpress-$install_version.tar.gz in deze map uit. De install_version is vooraf gedefinieerd in .OpenShift / action_hooks / build
.OpenShift / config / wp-config.php
om het bestand te overschrijven install_dir / wp-config.php
(de standaard wp-config.php van het originele pakket.OpenShift / plugins
en .OpenShift / thema's
naar install_dir / wp-content / plugins
en install_dir / wp-content / themes
.OpenShift / plugins
of .OpenShift / thema's
overeenkomstig. Voer vervolgens uw code in en duw alles terug naar OpenShift. git push
om implementatie te activeren.$ git voegt plug-ins toe
$ git voeg thema's toe
# Als u wp-config ook bijwerkt
$ git voeg config / wp-config.php toe
$ git commit -m "Bestand kopiëren van oude WordPress"
$ git push origin master
Hoogstwaarschijnlijk gebruikt u niet het standaarddomein dat OpenShift voor u heeft gemaakt. U wilt uw eigen domein gebruiken. In theorie, om je eigen domein te gebruiken, moet je twee dingen doen:
Door dit te doen, wijst u uw domein naar de OpenShift-server en OpenShift is op de hoogte van uw domein en zal uw app gaan bedienen wanneer dit vanuit dat domein wordt gevraagd.
Afhankelijk van uw domeinregistreerder heeft u een andere manier om een CNAME- of A-record voor uw domein te maken. Gelukkig hebben we een zeer uitgebreid document over hoe dit te doen.
Als u een subdomein gebruikt voor uw WordPress-site zoals blog.yourdomain.com
u kunt een CNAME-record toevoegen aan uw rhcloud.com
subdomein.
Als je hiermee akkoord gaat, is het heel eenvoudig. Ga gewoon naar uw domeincontrolepaneel, voeg een CNAME-recordpunten toe aan uw OpenShift WordPress-URL.
Bijvoorbeeld met name.com, ik heb dit:
OpenShift.Axcoto.Com verwijst naar demo2-tutsplus.rhcloud.com. De tekst in het tekstvak is een voorbeeldDus ik configureer de instellingen die ik heb openshift.axcoto.com
wijzen naar demo2-tutsplus.rhcloud.com
In dit geval kunt u met sommige domeinregistreerders nog steeds een CNAME-record instellen op een onbekend domein (bijvoorbeeld uwdomein.com). Als dat zo is, gaat u gewoon door en maakt u het net als voor subdomeinen.
Als dit niet het geval is, moeten we het IP-adres van ons OpenShift-domein vinden en uw onbekommerd domein erop richten:
ping demo2-tutsplus.rhcloud.com
PING ec2-54-242-75-238.compute-1.amazonaws.com (54.242.75.238): 56 gegevensbytes
64 bytes van 54.242.75.238: icmp_seq = 0 ttl = 41 tijd = 96.713 ms
64 bytes van 54.242.75.238: icmp_seq = 1 ttl = 41 tijd = 90.054 ms
^ C
--- ecp2-54-242-75-238.compute-1.amazonaws.com pingstatistieken ---
2 verzonden pakketten, 2 ontvangen pakketten, 0.0% pakketverlies
round-trip min / avg / max / stddev = 90.054 / 93.383 / 96.713 / 3.329 ms
Toen maakte ik een A-record en wees het gewoon naar dat IP-adres
Hoe dan ook, het belangrijkste punt is om ervoor te zorgen dat het domein dat u gebruikt, is omgezet naar hetzelfde IP-adres met uw RHC-cloud
domein.
Controleer dit door beide domeinen te pingen:
Nu kan uw domein naar dezelfde server verwijzen als het OpenShift-subdomein. De volgende stap is om het domein te configureren op WordPress-zijde.
Voor nu gebruiken we nog steeds demo2-tutsplus.rhcloud.com
voor toegang tot WordPress. Laten we naar het Dashboard gaan en vervolgens op klikken Instellingen> Algemeen. Verander beide WordPress adres (URL)
en Site-adres (URL)
uw domein.
Op dit moment kunt u worden uitgesloten van uw WordPress-site. Maak je geen zorgen. Ga terug naar OpenShift-dashboard, selecteer uw app, klik op "Wijzigen" naast de domeinnaam en werk het OpenShift-domein bij naar uw eigen domein. Bewaar het dan.
Krijg nu toegang tot uw aangepaste domein, openshift.axcoto.com
, u zult uw site zien. Wanneer u WordPress-dashboard gebruikt in uw aangepaste domein, kunt u een SSL-waarschuwing ontvangen, negeer deze gewoon. Dit wordt veroorzaakt doordat het SSL-certificaat is gebaseerd op het domein en we veranderen in ons aangepaste domein, dus we moeten OpenShift ons SSL-certificaat geven als we SSL willen gebruiken.
Het is erg handig om toegang te hebben tot de MySQL-database met phpMyAdmin. De factor manier om MySQL-taken uit te voeren in PHP.
Klik op uw applicaiton-pagina op "Add phpMyAdmin4.0". Wachten op een tijdje en phpMyAdmin staat voor je klaar. Zodra het is geïnstalleerd, start u het op en wordt u gevraagd om MySQL gebruikersnaam / wachtwoord. We hebben het in een vorige stap opgeslagen. Als u dit bent vergeten, kunt u altijd de gebruikersnaam zien en het wachtwoord in de MySQL5.5-cartridge weergeven.
Merk op dat de naam van uw WordPress-database hetzelfde is als de naam van het programma.Als u migreert van een bestaande blog, kunt u phpMyAdmin gebruiken om de database van oude WordPress te importeren.
Op dit punt zijn we klaar. U kunt doorgaan en genieten van uw WordPress-installatie. Maar laten we een ander ding onderzoeken dat je misschien nodig hebt.
Het gratis plan heeft een nadeel: het wordt automatisch afgesloten als u binnen twee dagen geen bezoeken heeft. Telkens wanneer een bezoeker uw site bezoekt, wordt deze automatisch opnieuw gestart, dus het is prima, in theorie, maar tijdens die begintijd is het iets langer om uw site te bekijken, omdat het enige tijd nodig heeft om te starten.
Om dit te voorkomen, wilt u misschien gebruiken Pingdom. Pingdom controleert de status van de up-time van uw site en stuurt u een e-mailmelding wanneer uw website down is. Om dat te doen pingt Pingdom uw website elke tien minuten of zo. Het neveneffect is dat uw app om de tien minuten een bezoeker heeft, zodat u OpenShift automatisch afsluiten kunt doorgeven. Bonuspunt, we hebben ook een geweldige gratis bewakingsservice.
Daarom stel ik voor om een gratis account bij Pingdom op te zetten voor monitoringdoeleinden en om je app voldoende bezig te houden.
Een groot voordeel van OpenShift is dat u op afstand toegang tot uw app kunt krijgen als een server. Het is geen zwarte doos voor jou. Je kunt er SSH in opnemen en een shell-opdracht geven (natuurlijk is een gevoelige opdracht uitgeschakeld door OpenShift of heeft dit geen effect).
Op uw toepassingspagina ziet u aan de rechterkant een bericht met de tekst: "Toegang op afstand. Wilt u inloggen op uw toepassing".
Klik erop en u krijgt een voorbeeldopdracht zoals:
$ ssh [email protected]
532bd7655004468bcf0000e1
. De servernaam is natuurlijk demo2-tutsplus.rhcloud.com
.app-implementaties
houdt de gegevens tijdens het implementatieproces zoals tijdelijk bestand, kloonrepository. De gegevens hier worden later gekopieerd naar de juiste locatie. Er zitten meer belangrijke mappen in.app-implementaties / stroom / repo
bevat exact dezelfde kloon van onze Git-repository. Wat je ook op je lokale machine hebt, zal hier hetzelfde zijn.app-root / runtime / repository / php
is de hoofdmap van uw document. Het is een symbolische link naar app-root / data / huidige
wat de echte locatie van uw code is, waarover u hieronder meer kunt lezenapp-root / data
deze map bevat je code, je uploadmap, thema en plug-in. Dit is de echte plaats waar al deze locaties zich bevinden en waarnaar vanaf verschillende locaties wordt gelinkt.De gegevens in deze map zijn meestal persistent tussen releases. Als het een verandering is, dan is verandering door uw build-scripts, niet door OpenShift zelf.app-root / data / huidige
uw WordPress-code van de huidige release bevindt zich hier. De gegevens in deze map zijn meestal persistent (behalve de inhoud van een of andere symbolische link die kan worden gewijzigd omdat deze ergens anders naar toe gaat). De WordPress-bestanden zoals: wp-admin
, wp-includes
, index.php
, .htaccess
zal hier zitten. De inhoud van deze map wordt gemaakt door het build-script de eerste keer dat u WordPress installeert vanuit het OpenShift-dashboard. Later kan tijdens elke implementatie een bestand worden gekopieerd door het implementatiescript. Maar OpenShift zelf zal de inhoud van deze map niet opnieuw instellen.app-root / data / uploads
dit is je uploadmap, maar het is een symbolische link van app-root / data / stroom / wp-content / uploads
zodat u persistente geüploade gegevens tussen meerdere releases kunt hebben.app-root / data / themes
bevat thema. Het is gekoppeld van app-root / data / stroom / wp-content / themes
.Nogmaals, het is omdat je het thema van WordPress admin kunt uploaden, zodat het naar buiten is gekoppeld om persistente gegevens tussen releases te hebben.Als je je dat herinnert Stap 2B, bij elke plaatsing, de inhoud van ./ OpenShift / thema's
wordt ook in deze map gekopieerd.app-root / data / plugins
bevat plugin.It's symbolic link from app-root / data / stroom / wp-content / plugins
. Nogmaals, het is omdat je het thema van WordPress admin kunt uploaden, zodat het naar buiten is gekoppeld om persistente gegevens tussen releases te hebben. Als je je dat herinnert Stap 2B, bij elke plaatsing, de inhoud van ./ OpenShift / plugins
wordt ook in deze map gekopieerd.app-root / data / stroom / wp-content / uploads
wijst naar app-root / data / stroom / wp-content / uploads
git
is de map met je blote Git-repository die OpenShift voor je heeft geciteerdmysql
bevat uw MySQL-gegevens en configuratiegegevens van mysql.app-implementaties
isde momentopname van de code tijdens de implementatie.php
bevat PHP-configuratie, php-extensie ...app-root / data / stroom / wp-content / uploads
met scp. Bijvoorbeeld:
$ cd your_current_wordpress
# We zullen recursief alle bestanden / mappen kopiëren onder wp-content / uploads naar
$ scp -r wp-content / uploads / * [email protected]: ~ / app-root / data / current / wp-content / uploads
Zorg ervoor dat u de juiste gebruikersnaam en servernaam gebruikt. Het is erg belangrijk dat u de juiste gebruikersnaam gebruikt, anders kunt u geen verbinding maken.
OpenShift biedt geen ondersteuning voor FTP, maar u kunt SSH File Transfer Protocol gebruiken om toegang te krijgen en het bestandssysteem in de browser te gebruiken; Gebruik deze methode echter niet om het bestand rechtstreeks te uploaden en bewerken.
Beschouw dit als een manier om u te helpen de bestandsstructuur in uw app snel te bekijken als u niet bekend bent met de opdrachtregel. We gebruiken FileZilla om verbinding te maken. We gebruiken geen wachtwoordverificatie maar authenticatie voor openbare / privésleutel. We hebben de openbare sleutel al eerder ingesteld. Voeg nu een nieuwe server toe als in het scherm. Verander het in uw instelling.
Bewaar het. Vervolgens moeten we onze privésleutel bijwerken met FileZilla, omdat we geen wachtwoordverificatie op OpenShift zullen gebruiken. Open FileZilla-voorkeur, selecteer SFTP-> Sleutelbestand toevoegen en kies vervolgens uw privésleutel die we samen met de openbare sleutel in de vorige stap hebben gegenereerd. Het zou moeten zijn /Users/yourname/.ssh/id_rsa
.
Merk op dat sinds .ssh
inclusief een punt, Mac zal hem verbergen, dus je kunt deze tips volgen om het verborgen bestand op Mac te tonen.
Antwoord ja als het vraagt om te converteren. Nu kunt u verbinding maken met de host die we eerder hebben opgeslagen.
Als je eenmaal in bent, kun je navigeren en een gevoel voor maplay-out hebben. Maar zorg ervoor dat je WordPress-code niet handmatig verwijdert, want de Open Access-implementatie gebruikt de Git-repository op de juiste manier. Je kunt het bestand nog steeds handmatig uploaden, maar je verliest andere leuke functies van de OpenShift-implementatie.
Het gebruik van een GUI kan gemakkelijk zijn om dingen te zien die vergelijkbaar zijn met het gebruik van SSH op de terminal, maar misbruik deze SFTP-methode niet, we zouden het moeten beschouwen als een snelle manier om te controleren of sommige bestanden er zijn, en niet om het voor inzet te gebruiken. Maar u kunt het gebruiken om mediagegevens te downloaden (voor back-updoeleinden) in app-root / data / uploads
.
Als u migreert vanuit een bestaande WordPress-installatie, kunt u eenvoudig alle bestanden in uw wp-content / uploads
naar app-root / data / stroom / wp-content / uploads
Thema's en plug-ins kunnen rechtstreeks vanuit de gebruikersinterface van WordPress worden geüpload en geïnstalleerd. Ze worden opgeslagen in app-root / data / plugin
enapp-root / data / thema
.Maar sinds we Git voor gebruik op OpenShift hebben gebruikt, we zouden ze in onze Git-repository moeten controleren en zouden niet rechtstreeks vanuit WordPress dashboard moeten uploaden. U kunt uw thema plaatsen, invoegen in .OpenShift / thema's
en .OpenShift / plugin
op dezelfde manier als beschreven in Stap 2B.
Om dit na-installatie gedeelte samen te vatten, zal ik zeggen dat als je een eindgebruiker bent die niet bekend is met Git of terminal toegang, je SFTP zou moeten gebruiken voor het uploaden van het bestand, het installeren van plug-ins / thema's, net zoals wat je gaat doen op een gedeelde hosting.
Als u een WordPress-ontwikkelaar bent, gebruikt u Git. In het volgende deel leren we meer over de juiste manier met OpenShift: deployment met Git push. En geloof me, het is makkelijker dan het klinkt.
Op dit moment kunt u WordPress op OpenShift uitvoeren, zodat u geen rekeningen meer nodig hebt voor de hostingservice. Als uw service meer verkeer begint te krijgen, kunt u er meer versnellingen aan toevoegen.
In deze zelfstudie hebben we bijna alles gedaan via het OpenShift-dashboard, maar de gebruikersinterface heeft altijd zijn beperkingen. OpenShift wordt geleverd met een groter opdrachtregelprogramma dat we in het volgende artikel zullen leren. In het bijzonder leren we hoe we onze WordPress-installatie kunnen onderhouden en problemen oplossen.
Laat commentaar achter om ons te laten weten hoe het met OpenShift gaat.