Hvis du er en PHP-programmør som arbeider med Laravel-rammeverket, er jeg sikker på at du distribuerer ditt webprogram på skytservere på leverandører som Linode, Digital Ocean, Vultr og resten. Det er fordi med et rammeverk som Laravel, som fungerer tett med verktøy som Git og Composer, er det mindre og mindre sannsynlig at søknaden din kan bli servert fra et delt hosting miljø.
Denne artikkelen vil vise deg hvordan du konfigurerer webserveren din for Laravel-søknaden din på Linode cloud hosting ved hjelp av RunCloud.io serveradministrasjonsverktøyet.
Du kan registrere deg for en gratis RunCloud-konto nå.
Vi bruker Git sammen med GitHubs Webhook-funksjon. Når alt er gjort, kan vi bare gjøre en forpliktelse og et trykk til GitHub, og serveren din vil bli oppdatert med den nyeste kildekoden. RunCloud gjør det enkelt å konfigurere serveren din for å kunne distribuere søknaden din slik som dette, og jeg skal vise deg hvordan du gjør det i dag.
Selvfølgelig kan du velge hvilken gren du vil at serveren skal hente. Det kan være mesteren eller en hvilken som helst annen gren du har satt inn, noe som betyr at denne metoden for distribusjon er ideell for å inkorporeres i a.workflow ved siden av et scenasjons- og produksjonsmiljø.
Også, jeg bør nevne at dette ikke er begrenset til GitHub repositories. Det vil fungere med GitLab, Bitbucket, og sannsynligvis andre Git-hosting-tjenester også, så lenge de har funksjonene for Webhook og Deployment-nøkkelen.
Også verdt å nevne er at RunCloud jobber med noen av sky hosting-leverandører. Linode ble valgt rent som et eksempel på en passende cloud hosting leverandør.
Før vi kommer i gang, vil jeg at du skal vite at du skal installere Nginx-webserveren, som fungerer best med Laravel. Imidlertid har RunCloud muligheten til å installere Apache webserver også, i så fall kan du dra nytte av .htaccess konfigurasjoner.
Jeg skal hoppe over delen om registrering fordi jeg er sikker på at du kan komme rundt det ganske raskt og enkelt.
Hvis du er klar, la oss komme i gang.
Når du er logget inn på dashbordet ditt på Linode.com, må du bare distribuere en ny linode (de kaller deres tjenesteinstans en "linode"). Nederst til høyre på instrumentbrettet bør du se en kobling som sier Legg til en linode.
Deretter velger du linode-forekomsten du vil ha, og datasenteret hvor du vil at linode skal distribueres, og klikk på Legg til denne Linode knapp.
Nå skal du ha en linode som viser statusen til Å være opprettet.
Når dette er fullført, vil du ha en tom server. Du må fortsatt distribuere et bilde for operativsystemet for denne serveren. Og for å få det til å fungere med RunCloud senere, må du distribuere et nytt Ubuntu 16.04 LTS operativsystem.
Klikk på linode-navnet. I eksemplet ovenfor er navnet linode4362539. Dette tar deg til neste skjermbilde. Bare klikk på lenken som sier Distribuere et bilde.
Pass på at du velger Ubuntu 16.04 LTS som bildet. Som for resten kan du velge hvilken konfigurasjon du føler deg passende. For denne 20 GB plass og 1 GB RAM linode, skyver jeg min bytte disk til maksimal innstilling, som er 512 MB.
Skriv inn ditt rotpassord og hold det trygt. Du trenger det igjen senere. Når du er klar, klikk på Utplassere knapp.
Nå klikker du på Støvel knappen for å slå på serveren.
Du bør kunne se at din linode-server ikke er merket med Løping i den riktige widgetboksen. La oss prøve å koble til serveren din og se om den fungerer. Klikk på Fjerntilgang tab.
I Fjerntilgang fanen, bør du kunne se litt mer informasjon om serveren din, inkludert IP-adressene. Kopier denne informasjonen og hold den trygg. Vi kommer snart til å trenge det igjen.
For å koble til serveren din, kan du bruke en hvilken som helst SSH-klient som du er kjent med. Eller hvis du er som meg, og du ikke vil gå vekk fra nettleseren, kan du også bruke en innebygd, webbasert SSH-klient inne i Linode. Rull ned og se etter en lenke som sier Start Lish Console.
Ved å klikke på denne lenken vil du utføre Lish, den webbaserte SSH-klienten. Bare skriv inn rot som brukernavn og passord du opprettet når du distribuerer bildet.
Ok! Serveren din er klar til å bli konfigurert med PHP, Nginx og MariaDB (og andre verktøy). Dette er hvor du skal bruke RunCloud.
Hvis du ikke allerede har registrert en RunCloud-konto, må du gjøre dette nå. Det er ingen risiko for å prøve RunCloud bare for denne opplæringen, da det gir deg en fem-dagers gratis prøveversjon som gir deg full tilgang til alle Pro-planfunksjonene, slik at du kan teste dem ut. Når fem dagers perioden er gått, hvis du ikke oppgraderte, ikke bekymre deg - du blir bare nedgradert til deres gratis brukernivå. Men på bare $ 10 per måned for Pro-plankontoen, som tillater ubegrensede servere, er RunCloud et ganske kult verktøy å ha i utviklerens arsenal.
Så fra RunCloud ønsker vi å koble til vår Linode og slå den til en fungerende webserver på Internett.
Fra Dashboard på RunCloud, klikk på knappen som sier Koble til en server øverst til høyre.
Skriv inn den nødvendige informasjonen om serveren din på Linode. Du kan gå tilbake til din Linode Dashboard for å sjekke dem ut. Men den viktigste delen er din IP-adresse. Pass på at du har det riktig. Ellers vil tilkoblingsprosessen og installasjonen mislykkes.
Når du er klar, klikk på Koble denne serveren.
Nå vil RunCloud presentere deg med noen kode som du trenger å kjøre på Linode-serveren din. Bare kopier alt det som vi vil utføre det i Lish-konsollen igjen etter dette.
Hvis du fortsatt har Lish-vinduet aktivt, kan du lime installasjonsskriptet du kopierte fra RunCloud-dashbordet tidligere.
Lim inn installasjonsskriptkoden og trykk på Tast inn nøkkel. Etter en kort stund, når du ser på RunCloud-dashbordet, ser du at RunCloud viser en fremdriftslinje og varsler som viser installasjonsfremdrift som RunCloud synkroniserer seg med serveren. Dette betyr at en tilkobling er gjort.
Når installasjonen er fullført, vil du bli presentert med root-passordet til din MariaDB-database. Pass på at du holder dette trygt. Det er også en MariaDB-bruker som ble opprettet med brukernavnet runcloud.
Når alt er ferdig, kan du gå tilbake til RunCloud Dashboard og sjekke serverlisten din. Du bør ha en boks med din nye server som dette.
Din webserver har kanskje ikke startet. Klikk på den serveren for å begynne å administrere den. Dette skjermbildet nedenfor er hovedvisningen for å administrere en server.
Bla gjennom menyen til venstre og se etter tjenester.
Her kan du slå på både Apache og Nginx. Senere, når du lager ditt webapplikasjonsprosjekt, kan du velge å distribuere PHP-versjonen sammen med hvilken type webserver du vil kjøre: enten Apache-Nginx hybrid eller Nginx.
For nå, la oss bare slå på de nødvendige tjenestene.
På dette tidspunktet bør vi kunne starte en nettleser og skrive inn IP-adressen til denne serveren. Du bør få standard tom nettside fra RunCloud.
Nå som serveren din er satt opp og koblet til RunCloud, kan du bare bruke RunCloud til å administrere den. Når du administrerer en server ved hjelp av SSH, er det alltid et problem å skape en virtuell vert. Ting er mye enklere med RunCloud.
Før du kan distribuere Laravel-prosjektet ditt, trenger du et sted der appen vil leve. Så nå må du opprette en virtuell vert på webserveren din. I RunCloud-nomenklaturen kalles dette et "Webapplikasjon'.
Fra din RunCloud Dashboard, etter å ha valgt serveren din, finn du Webapplikasjon meny fra venstre sidefelt.
Klikk nå på Lag applikasjon knapp.
På neste skjermbilde vil du sette inn konfigurasjonene for ditt webprogram.
Dette er innstillingene jeg valgte for det. Selvfølgelig er du fri til å sette dine egne verdier som du synes passer.
Web-applikasjonsnavn: my-laravel-app Domenenavn: fotofaze.me (bare et domene jeg har tilgjengelig) Bruker: runcloud Public Path: / offentlig PHP Versjon: 7.1 Web Application Stack: Native NGINX
La meg forklare om verdiene som blir satt.
Du kan angi hvilket som helst navn for ditt webprogram som referanse til prosjektet ditt. Når det gjelder domenenavnet, angi et domenenavn som du skal bruke til prosjektet. Senere vil du kunne sette ekstra domenenavn for prosjektet. Normalt vil du at nettstedet ditt skal fungere med og uten "www" -underdomenet. Vi kan legge til det senere.
Bruker
Refererer til Linux-brukeren på serveren din. Du kan opprette flere brukere hvis du vil tildele dette prosjektet til en bestemt bruker. Og denne bestemte brukeren vil ha tilgang til serveren via SSH. Men jeg bruker bare standard runcloud-brukeren som ble opprettet under serverinstallasjonen.
Offentlig vei
er der den offentlige nettmappen din er. Som standard vil en Laravel-applikasjon bruke "/offentlig"Mappe for den offentlig tilgjengelige nettmappen. Alle andre mapper sitter utenfor denne mappen. Så det er derfor vi setter "/offentlig" for dette.
Jeg velger den nyeste versjonen av PHP 7.1. Og til slutt, for Web Application Stack
, Jeg velger Native NGINX. Et annet alternativ er NGINX + Apache2 hybrid, som gir deg tilgang til .htaccess konfigurasjonsfilen. Men jeg går med NGINX hele veien for dette alternativet.
På dette punktet vil nettstedet ditt fortsatt ikke fungere med domenet ditt ennå. Vi trenger fortsatt å sette opp det med riktig DNS. La oss gjøre det i neste avsnitt.
I den forrige delen satt jeg fotofaze.me som domenenavnet. Men jeg vil også ha www.fotofaze.me til å jobbe med denne webapplikasjonen også. Så før vi setter DNS, la oss gjøre et skritt i RunCloud for denne serveren.
Etter at du har opprettet webapplikasjonen din, bør du se ditt dashboard på webapplikasjonen. Herfra klikker du på Domenenavn tab.
Vi kan se at vi allerede har fotofaze.me oppført. Jeg må fortsatt legge til www.fotofaze.me på listen. Bare skriv inn domenenavnet og trykk på "Legg til domenenavn"-Knappen.
Jeg bruker Namecheap for domenenavnene mine. Og den store delen er at den kommer med en innebygd DNS-server. Ellers må du kanskje bruke CloudFlare eller Linodes egen DNS-tjeneste. Det vi trenger å gjøre er å sette inn to DNS-poster i DNS-administrasjonen. Den ene er en A-plate, og den andre er en CNAME.
Fra min Namecheap Domain Name List klikker jeg bare på Få til knapp.
Herfra klikker jeg på Avansert DNS tab.
Her, uansett hvilken DNS-tjeneste du bruker, må vi sette følgende DNS-poster:
Type: En vert: @ Verdi: 139.162.5.220 (IP-adressen til serveren) Type: CNAME-vert: www Verdi: fotofaze.me (domenenavnet ditt)
Slik ser innstillingene mine ut i Namecheap Advanced DNS.
Gi det en stund før DNS-endringene løses før du tester nettstedet ditt i nettleseren. Når endringene er aktive, bør du få NGINX 403-feilen når du besøker nettstedet ditt. Dette er fordi din /offentlig mappen er for øyeblikket tom, men den lar deg få vite alt som fungerer.
En siste del når det gjelder domenenavnet er å aktivere SSL. Dette gjør at nettstedet vårt er tilgjengelig ved hjelp av https: // protokollen på port 443 i stedet for http: // på port 80. Det er mange fordeler for dette. Bortsett fra sikkerhetsformål, er det også bra for SEO.
La oss gå tilbake til My-Laravel-App Web Application Dashboard og nå klikke på SSL / TLS fane. SSL-sertifikater brukes til å koste hundrevis av dollar. Men takket være La oss kryptere, kan vi nå distribuere SSL-sertifikater for våre domenenavn gratis. Det kan være veldig teknisk hvis du skulle legge til La oss kryptere SSL-sertifikatet manuelt, men med RunCloud er det et enkelt-prosess-stykke kake.
En gang her kan du velge La oss kryptere som din SSL-metode. Og klikk deretter på Sende inn knapp.
Nettstedet ditt skal fungere med https: // protokoll nå.
Fordi vi skal distribuere en Laravel-app, trenger vi en database. La oss få det gjort nå. Bla gjennom menyen til venstre på siden og klikk på database Meny.
Klikk nå på Opprett database knapp.
Bare skriv inn et navn for databasen din og klikk på Legg til ny database knapp.
Nå må vi legge til en database bruker og tildele den til vår database. Klikk på Legg til bruker knapp.
Skriv bare inn et brukernavn og et passord. Og klikk deretter på Legg til knapp.
Deretter tildeler vi den nyopprettede brukeren til den tidligere opprettede databasen. Klikk på den lille Vedlegg bruker ikonet på databasen listen.
Siden du bare har en bruker for øyeblikket, bare sørg for at den er valgt, og klikk deretter på Feste knapp.
Når dette er gjort, er dette det du vil se. De laraveluser er nå festet til laravelapp database.
Nå er vi bare klar til å gjøre noen PHP programmering med Laravel. Men før det, la oss lage et GitHub prosjektregister som vi senere kan presse kildekoden vår på.
En solo webutvikler vil normalt opprettholde tre steder hvor deres kildekode lever:
I denne delen av opplæringen lager vi vårt prosjektregister på GitHub. Senere vil vi bruke dette depotet til å presse arbeidet fra vårt utviklingsmiljø på vår lokale datamaskin til dette spesifikke GitHub prosjektregisteret.
Over på GitHub, hvis du er logget inn, kan du klikke på det lille plusset (+) ikonet på høyre side av topplinjen. Og du bør se en meny for Ny Repository. Klikk på det.
Bare skriv inn detaljene i prosjektet ditt med noe som nedenfor. Klikk på den grønne knappen som sier Opprett Repository.
Du bør ha en visning som følger nå.
Området uthevet med den røde boksen er prosjektets repository adresse på GitHub. Vi vil trenge dette senere når vi setter opp fjernrepresentasjonen av prosjektet fra vår lokale utviklingscomputer.
Nå er vi klare til å starte utviklingen på vår lokale datamaskin og trykke koden til GitHub.
I denne delen av opplæringen vil vi sette opp vår lokale datamaskin med vår utviklingsversjon av Laravel-prosjektet vårt. Senere vil vi laste opp det til en Git hosting service (vi vil bruke GitHub). Etter det vil vi få vår Linode-server til å hente noen kode fra GitHub, slik at vår produksjonsserver alltid vil distribuere den nyeste kildekoden.
Akkurat som et sidemerking, hopper denne opplæringen delen om å sette opp GitHub-kontoen din med den offentlige SSH-nøkkelen for sikker kommunikasjon. Vi bruker terminalskjermbildet ganske mye for SSH. Jeg bruker vanligvis Putty på Windows.
Hvis du er ny på GitHub, kan du gå gjennom veiledningen om å generere og sette opp din lokale maskin med en SSH-nøkkel som skal brukes med GitHub.
Administrere Git distribusjon til din live server kan enkelt settes opp med RunCloud. Når vi har alt som er satt opp, med en enkel Git-push fra din lokale datamaskin, kan du alltid være sikker på at serveren henter disse oppdateringene automatisk. Ingen FTP, ikke flere kommandolinjebeskrivelser.
Den enkleste måten å starte et Laravel-prosjekt er å bruke Komponist. Hvis du ikke er kjent med Composer, må du lese om det og installere den på din lokale datamaskin. Komponist er ikke bare for Laravel. Komponist vil gjøre styring av biblioteker og avhengigheter for ethvert PHP-prosjekt jevnere, og bruken regnes som integrert i moderne PHP-applikasjonsutvikling.
Åpne ditt foretrukne terminalverktøy og kjør følgende kommando for å opprette et Laravel-prosjekt.
$ komponent create-project --prefer-dist laravel / laravel my-laravel
Dette kan ta en stund da Composer laster ned og installerer Laravel på datamaskinen. Komponist vil opprette en mappe som heter my-laravel og lagre alt der inne. Først, la oss komme inn i denne mappen.
$ cd my-laravel
For å sikre at Laravel-appen din fungerer, må du konfigurere innstillingene for databaseforbindelsen. Du kan gjøre det ved å redigere .env fil. Bruk en tekstredigerer som du er kjent med og rediger denne filen. Her er det en typisk .env filen vil inneholde. Du kan oppdatere det etter dine egne behov.
APP_NAME = Laravel APP_ENV = lokal APP_KEY = APP_DEBUG = sann APP_LOG_LEVEL = feilsøk APP_URL = http: // localhost DB_CONNECTION = mysql DB_HOST = 127.0.0.1 DB_PORT = 3306 DB_DATABASE = homestead DB_USERNAME = homestead DB_PASSWORD = hemmelig ...
Tilbake til kommandolinjeverktøyet, la oss først lage en nøkkel for denne laravel-appen. Skriv inn følgende kommando i terminalen. Følgende kommando vil oppdatere .env-filen med en nøkkel hash.
$ php artisan nøkkel: generere
La oss nå initialisere den for Git-sporing.
$ git init $ git add --all $ git commit -m "første commit"
Kanskje jeg også bør forklare litt om .gitignore fil som følger med Laravel. Du kan se på denne filen og se hvilke filer som ikke spores. For eksempel, .env som lagrer databasetilkoblingsdetaljer, blir ikke sporet. Dette betyr at det antas at du vil bruke forskjellig .env filer for din lokale datamaskin og for din live server.
I forrige avsnitt snakket jeg om den eksterne Git-depotadressen din på GitHub. Kjør kommandoen under med din egen adresse.
$ git ekstern legg til opprinnelse [email protected]: kidino / my-laravel.git
Deretter vil vi fortelle vårt lokale Git-prosjekt hvor er vår prosjektplassering på GitHub. For det må vi legge til en ekstern depotrepresentasjon.
$ git push -u opphavsmester
Hvis du gjør det riktig, bør prosjektet ditt over på GitHub ha blitt oppdatert med noe som dette. Hvis du støter på problemer, er kanskje Git ikke konfigurert riktig på datamaskinen din, eller du har ikke generert din lokale SSH-nøkkel.
Sjekk GitHubs nettsted for å hjelpe deg med det.
Nå kan vi begynne å sette opp automatisk distribusjon ved hjelp av kroker og triggere. Når vi har det, blir koden din automatisk levert til din server via RunCloud hver gang du trykker på arbeidet ditt til GitHub.
For å gjøre dette må vi først generere en distribusjonsnøkkel via RunClouds panel. Fra serverpanelet, i venstre meny, bør du kunne finne en meny merket Distribusjonsnøkkel.
Du burde allerede ha en til bruker runcloud. Hvis du husker, da vi opprettet webapplikasjonen, nevnte vi at brukeren er runcloud.
Klikk på det lille øyeikonet for å vise SSH-nøkkelen for denne brukeren. Hvis du får noe slikt, betyr det at en SSH-nøkkel aldri ble opprettet for denne brukeren tidligere. Bare klikk OK slik at en ny SSH-nøkkel blir opprettet.
Når det er greit, vil du bli presentert med et slikt layout. Dette er SSH-nøkkelen du må skrive inn i GitHub. Med dette kan GitHub gjenkjenne trekkforespørsler når serveren ønsker å trekke inn nye oppdateringer. Kopier alt av det.
La oss nå gå over til GitHub.
Gå inn i prosjektet ditt og klikk på fanen som sier innstillinger. Klikk deretter på Distribuer nøkler meny i venstre sidefelt.
Siden du kanskje ikke har en nøkkel ennå, klikker du bare på Legg til distribusjonsnøkkel knapp.
Bare gi det et navn, og du kan deretter legge inn SSH Deploy Key som vi fikk fra RunCloud. Klikk på Legg til nøkkel knapp.
Deretter skal vi sette opp en Web Hook-utløser. En GitHub-nettkrok fungerer som dette, når vi trykker på nye oppdateringer til GitHub, kan vi få GitHub til å varsle andre tjenester eller servere om den nye pushen. I dette tilfellet vil vi fortelle GitHub å varsle vår live server. Og dette kan enkelt gjøres via RunCloud.
I RunCloud åpner du webapplikasjonen du opprettet tidligere. Og klikk på fanen merket Git.
Rull ned og skriv inn detaljer om lagringsplassen din på GitHub. Slik ser det ut til det prosjektet vi har gjort i denne opplæringen. Du kan sette din egen gren for live distribusjon hvis du ikke vil at den skal være mester. Men for dette eksempelet vil vi holde fast hos mesteren.
Hva dette betyr er at når du trykker på master-grenen til GitHub, vil live-serveren ta det som et tegn for å oppdatere kildekoden på serveren. Det vil da gjøre en trekk av hovedgrenen og oppdatere seg selv.
Hvis du er klar, klikk på knappen merket Fest Git Repository.
Dette er visningen du får når du har oppdatert webapplikasjonen din med en Git-distribusjon.
Du kan se nå at du har en Git WebHook URL. Dette er nettadressen som vi vil kopiere og legge inn i GitHub.
Før vi gjør det, la oss tilpasse vårt distribusjonsskript på vår server.
Distribusjonsskriptet er bash-skriptet som du kan bruke til å instruere serveren din til å gjøre visse ting før eller etter at GIT-trekket skjer. Hvis du bruker Laravel, vil du vite at Laravel er tungt avhengig av håndverkskommandoen og komponisten for å lette utviklingen og distribusjonen din..
For å endre distribusjonsskriptet, bla ned til GIT Deployment Script i GIT-kategorien for webapplikasjonen. Her kan du legge til eget skript for å kjøre. Sørg for å inkludere git-draget et sted inne i distribusjonsskriptet ditt. Du kan skrive skriptet med Replacer for kort bruk.
Nedenfor er skriptet som jeg bruker.
$ git fusjon $ komponent dump-autoload -o $ composer installere $ php artisan migrere --force $ php artisan klargjort $ php artisan view: fjern $ php artisan config: fjern $ php artisan optimalisere $ composer dump-autoload -o $ php artisan kø: start på nytt
Du kan bruke dette samme skriptet. Merk av i boksen og klikk på Lagre knapp.
Gå nå opp igjen. Vi må fortsatt sette vår Git Webhook URL i GitHub.
Kopier denne nettadressen, og så fortsetter vi til GitHub. I GitHub, fortsett til prosjektregisteret ditt. Klikk deretter på innstillinger fane. Så på Webhooks menyen fra sidefeltet. Og så på Legg til Webhook knapp.
Bare lim inn Git WebHook-nettadressen vi fikk fra RunCloud til tekstfeltet for Payload URL. Pass på at du velger application / json til Innholdstype. Det burde være godt nok. Klikk deretter på Legg til Webhook knapp.
Nå skal vi kunne gjøre en Git push fra vår lokale maskin, og live serveren vil bli oppdatert automatisk. Men det er fortsatt en ting vi må gjøre.
Hvis du husker, skrev jeg om .gitignore og .env filen. Fordi vi inkluderte .env-filen i vår .gitignore-fil, mangler vår Laravel-app på serveren den nødvendige .env-filen. Vi må skape det for å rette opp situasjonen.
Vi kan bruke SSH og terminalen. Alternativt kan vi også bruke File Manager i RunCloud. La oss anta at du bruker SSH som Putty eller et annet terminalverktøy. Hvis du husker, tidligere ble dette webprogrammet opprettet ved hjelp av runcloud-brukeren. Pass på at du kobler via SSH ved hjelp av denne brukeren også.
Du må gå til webapplikasjonsmappen din. Og kjør deretter kommandoen nedenfor.
$ cd / home / runcloud / webapps / my-laravel-app $ cp .example.env .env $ php artisan nøkkel: generere
Ikke glem å oppdatere .env-filen din.
Nå bør du ha .env-filen, med ish-nøkkelen generert. Du må fortsatt oppdatere denne filen og oppdatere den med innstillingene for databasetilkobling, akkurat som du opprettet dem i tidligere trinn.
Det eneste du må gjøre nå er å gjøre en oppdatering på den lokale maskinen og skyve den til GitHub.
Jeg gjorde en enkel redigering på welcome.blade.php fil i ressurser / utsikt mappe.
La oss gjøre en forpliktelse og deretter skyve den til serveren.
$ git add --all $ git commit -m "oppdatering welcome.blade.php" $ git push origin master
Hvis alt går som planlagt, kan du starte nettstedet i nettleseren og se endringene du nettopp har gjort. Gratulerer - du har nettopp oppdatert serveren din uten å måtte ty til en S / FTP-opplasting.