>> Alright.
Så kurs av instruksjon.
Harvards kurskatalog har flere tusen kurs,
det er flere hundre av fakultetet
og det er flere dusinvis av felt,
informatikk bare å være en av dem,
og jeg trodde vi skulle bruke dette som en mulighet til å begynne å tenke
om hvordan du implementerer en standard web-basert applikasjon
ved hjelp av PHP og Laravel og også hvordan vi kan modellere noen
av disse reelle enheter.
Så for å gjøre dette vil vi bruke Laravel, som er bare et rammeverk
som legger mye av funksjoner til PHP,
mye som Jango legger det samme til Python,
Rails legger det samme til Ruby.
Så det er et par forskjellige måter
der du kan installere Laravel.
Dokumentasjonen for Laravel, som du kanskje husker
fra forrige uke, er faktisk ganske rik
og du kan sikkert på din egen hjemme lek
rundt med dette og følger instruksjonene spesifikt,
men jeg kommer til å gå videre og bare gi oss en rask,
virvelvind tur til noen av dem,
i likhet med hva Tim gjorde den andre dagen,
og jeg først kommer til å bruke dette.
Så Komponist er liksom en ny og forbedret funksjon
for PHP verden som gjør det enklere å installere ting.
Hvis du er kjent med loven Få i [uhørbart] verden
eller [uhørbart] verden eller Yum i [uhørbart]
og rød lue verden, dette er ennå bare et annet verktøy
som lar deg installere ting
for det spesielle miljøet.
Så hvis jeg gjør Komponist, Opprett prosjekt og så videre,
som jeg skal gjøre her, la oss gå fremover og rettferdig, vil jeg lede deg
gjennom noen av disse trinn som vi gjorde forrige gang
uten prosenttegnet, Dammit, uten Komponist.
Så med Composer-Jeg bruker en annen virtuell maskin
enn jeg gjorde før.
La oss gjøre dette virkelig rask.
Alright, så installerer Komponist er så enkelt som dette.
Så jeg skal lage en, jeg får opp på min talerstol for en stund også.
Dette er faktisk en veldig stadig vanligere paradigmet
for å installere ting på folks datamaskiner i disse dager,
hvor du i hovedsak hente en vilkårlig URL,
rør det gjennom en tolk og så bare gjøre det
at vilkårlig mengde koder du nettopp lastet ned sier du skal gjøre.
Det er veldig enkelt som du er i ferd å se, men innser skeptikeren
i din bør tenke at dette er blant de mer usikre
ting du noensinne kunne gjøre; laster ned en vilkårlig fil
fra internett og deretter blindt kjører det gjennom
av røret, men vil vi stole på at den som installerer
faktisk legitimt i dag.
Jeg kommer til å gå videre og kjøre dette og dette kommer
for å laste ned programmet.
Det kommer til å laste ned en fil kalt composer.farphparchive,
og jeg kommer til å gå videre og gjøre dette,
sudo-først faktisk chmod755composer.far,
som kommer til å gjøre det kjørbar av alle,
og da kommer jeg til å gjøre sudo mv komponist
til bruker lokale bin komponist, og hva er brukervennlig lokale bin
for de som er kjent med Linux?
Å være klart jeg gjør dette inne
av apparatet, selv om Jeg bruker terminal på min MAC.
[Lav lyd] Nettopp, så i en katalog,
faktisk en liten avklaring.
I katalogen vanligvis kalt / bin
eller / userbin er faktisk noen svært populære programmer
som CD og LS, og så videre.
I bruker lokale bin av konvensjonen er ingenting som standard, og vi,
brukerne av systemet, kan sette noe vi ønsker i det
og som standard er det i din såkalte søkebanen slik at
når du bare skriver komponist operativsystemet, Linux,
kommer til å se i den katalog blant annet
å finne programmet i spørsmålet, og det viser seg at det er greit
å endre det med filtypen
fordi vi har gjort det programet.
Denne saken vil faktisk kjøre som vi har tenkt.
Ok, så nå kommer jeg til å gå tilbake
til linjen jeg foreslo vi utføre tidligere, noe som er av dette;
komponist og så tar det en kommandolinje argument,
som jeg vet bare fra lese dokumentasjonen,
kalt lage-prosjekt.
Jeg trenger å oppgi navnet på prosjektet på som jeg vil
til basen min og Laravel / Laravel hovedsak refererer
til en get hub repository hvori den kode lever.
Katalogen er et vilkårlig navn Jeg kommer til å gi til prosjektet mitt,
kurskatalogen, men du kan kalle det foo
eller noe annet, og foretrekker-dist.
Det er litt avskåret.
Det betyr bare foretrekker Last ned siste.
Så jeg kommer til å gå videre og trykk Enter og som Tim sa
på onsdag kan det noen ganger ta en stund,
spesielt hvis du er på en treg tilkobling
eller hvis du ikke har lagret noen av disse tingene,
men hva dette er gjør er det å sjekke
ut en hel haug med kode fra nettet.
Det er sakte kommer til å laste den ned til datamaskinen min
og når det endelig gjort,
Jeg kommer til å ha en katalog heter Catalog inne
som er-oops, det er derfor.
Catalog, la oss gjøre det igjen.
Ok ikke kjøre den.
Angivelig du har en eksisterende Katalogmappen og det merknader
som i siste øyeblikk.
Dette kommer til å ha for meg en katalog som heter Catalog inne
av disse er alle kode trenger
å begynne å skrive en webbasert applikasjon med Laravel.
Så i løpet av noen få sekunder dette bør sparke i
og når vi har dette og igjen hvis du ikke er på det punktet
hvor du er i stand til følge med akkurat nå,
det er helt greit, det er ganske lett
å gjenskape disse trinnene etterpå i ditt eget apparat.
Alright. Alright i tiden, som vi gjør dette,
Jeg kommer til å trekke opp ett annet hint.
Så du kan ha sett Tim omtale
eller redigere denne filen siste gang.
Hva er en etc / host-filen og der lever det?
Alright la oss rulle tilbake i tid.
Hva er DNS, som vi diskutert ikke altfor lenge siden?
Alright, så domenenavnsystemet.
Dette er bare infrastruktur på internett
som gjør hva i en setning?
Yeah. [Lav lyd] Nettopp.
Den konverterer domenenavn til IP-adresser og vice versa,
så det er effektivt en stor database tabell
med disse to kolonner som har fullt kvalifisert domenenavn
på adresse venstre og IP på høyre side, for eksempel,
og det bare omdanner de to.
Nå det er alt fint og bra men hvis du faktisk ønsker
å skape nye vertsnavn på Internett, nye domenenavn
på internett, du vanligvis nødt til å gi noen penger,
du må konfigurere ting på deres server, deres navnetjenere
og så videre, som er en reell smerte, og spesielt
hvis vi ikke egentlig ønsker å kjøpe et domenenavn, vi vil bare ha
å late som om vi har vår egen lokale domene,
for eksempel kalt Katalog eller Catalog.com
eller noe sånt.
Vel etc / host kan du hardt kode kartlegginger mellom vertsnavn
og IP-adresser på din egen lokale datamaskinen, slik som
til hovedsak lure datamaskin til å tro
at dette domenenavnet faktisk finnes på denne IP.
Det er sjekket først før den faktisk DNS-systemet i seg selv
er sjekket.
Så la meg gå inn i dette terminalvindu og det ser
som i bakgrunnen der,
alt hadde lastet ned vellykket,
så det jeg nå skal å gjøre, er følgende.
Hvis du er mer kjent fra 50 eller 51 dager
med G Edit, kommer jeg til å gå videre og gjøre dette med G Rediger
i starten, men jeg er kommer til å gå videre
og gjøre sudo g redigere / etc / hosts innsiden av apparatet,
og når jeg gjør dette er jeg kommer til å få et vindu
som ser ut som dette her.
Noe kryptiske linjer bare fordi de er lang,
men i hovedsak er det kartlegging 127.0.0.1
til noen forskjellige vertsnavn, hvorav den ene er lokal vert,
hvorav den ene er apparatet og deretter et par mer;
localhost.localdomain, appliance.localdomain.
Dette er bare konvensjoner å bruke ting som localhost
som standard vertsnavn og localdomain
som en standard topp level domain eller TLD.
Så legger merke til hva jeg allerede gjorde på forhånd her.
Hvis jeg ønsker å lure apparatet til å tro
at katalogen er faktisk en real hjemmeside på internett,
Jeg kan fortelle apparatet som IP-adressen er 127.0.0.1.
Nå hvorfor den adressen?
Hva er at IP?
Hvor kommer den fra?
Hvem gjorde jeg må be om det?
[Lav lyd] Hva er det?
[Lav lyd] Det er den sløyfe tilbake adresse,
noe som betyr ganske enkelt dette er standard IP-adressen som er oppgitt
til de fleste hvilken som helst datamaskin i verden som støtter IP,
Internet Protocol, og det er en sløyfe tilbake adresse
på den måten at det gjenspeiler det.
Det refererer til seg selv.
Så alt av oss, hvis vi har et apparat eller en MAC
eller PC har en lokal IP-adresse av 127.0.0.1 og det er kun brukt
slik at du kan snakke til deg selv.
Jeg kunne i teorien figur
ut hva apparatet IP Adressen er og skriv inn 192.168
eller hva det tallet er, men det er ikke nødvendig.
Dette kommer til å bli invariant og vil rett og slett alltid fungerer.
Så når jeg lagrer som som til slutt betyr
som i en nettleser kan jeg gå til http://Catalog, som jeg skal gjøre her,
men noen ting er brutt ut av portene.
Så hva betyr dette vanligvis mener,
når jeg ikke har tillatelse, forbudt, for å gjøre noe,
hva er din første instinkt å løse dette problemet?
Jeg laster ned en katalog som heter Catalog
inn i min V vertene katalogen, som fra forrige uke du husker er
hvor alle våre slags lokale nettsteder vil leve.
Hva kan være brutt?
Hvordan fikse?
[Lav lyd] Tillatelser.
Tillatelser til hva?
Okay filer potensielt.
Så la oss gå tilbake til vår terminalvinduet her.
Jeg er i min V host katalog.
La meg gjøre LS og varsel det er et par ting.
Lokale verten, som kommer med apparatet, setter vi det der.
Catalog.original, som Jeg satt der tidligere,
det er liksom det ferdige versjon av hva vi er
om å dykke inn i, og Catalog, som jeg nettopp lastet ned.
Hvis jeg ønsker å se på tillatelser
på Catalog katalogen, Jeg kan gjøre LS-L og innkalling
at de er litt forskjellig fra de andre.
Hva tillatelse er tilsynelatende Katalogen katalogen,
som vi nettopp lastet ned, mangler som standard?
Selv om du har ingen anelse om hva ordet er at du kan surly antyde
hva er annerledes med hver av disse tre linjene?
Ok hva som mangler mellom linje en linje og to av utgangs?
Yeah? [Lav lyd] Ja, så det er mangler X, som står
for kjørbar og hva betyr det
hvis en katalog er kjørbar?
Det betyr bare at du kan åpne den.
Du kan CD inn i den.
Du kan få tilgang til filer på innsiden av den.
Så hvis en fil kjørbar, midler det er som et program du kan kjøre.
En katalog er kjørbar hvis du kan gå inn i den.
Så kan jeg fikse dette med noen måter.
Jeg kunne gjøre chmod Et pluss X, som betyr alt pluss kjørbar
og da kan jeg si Catalog.
Eller husker fra CS50 eller andre klasser,
Jeg kan være litt mer avansert og si 0711 eller mer bare 711
på Catalog, trykk Enter, ingenting ser ut til å skje
men hvis jeg gjør LS-L igjen, legge merke til at det er kjørbar
av min gruppe, som er den midtre tre biter og av alle,
som er de riktige tre biter, og det er nok for de
å være identisk for vårt formål.
Alright Jeg føler at vi er i ganske god form.
La oss gå tilbake til den leseren og la oss laste,
dammit, fortsatt forbudt.
Så hva annet kan være brutt?
Hvor ellers kanskje vi ønsker å se?
Så vi fikset Catalog, så hvis jeg går inn i katalogen,
la oss gjøre en annen LS, nå er det flere ting her og ærlig
ved første øyekast er det overveldende
og jeg tør si dette er en av hodepine av rammer
ut porten og at du liksom av har mye avtale med,
men vi vil hone på hva som er viktig i dag
og det viktigste for nå er denne katalogen.
Hvis du har brukt apparatet før du kanskje vet
at offentlig tilgjengelig katalogen kalles offentlig,
eller i år tidligere ble det kalt HTML men vi har siden endret det
til de mer vanlige offentlige.
Så hvis jeg gjør chmod 711 of Public
som ville virke til å fikse dette problemet.
Så nå allmenn katalogen er også kjørbar
og derfor tilgjengelig.
La oss se om vi er ett skritt nærmere.
La oss laste, fortsatt ingen god og nå kommer det til
å få en litt utfordrende; dette er litt hardere.
Hvis jeg går inn i offentlige, tilbakekalling at Tim viste oss denne.
Hvis jeg gjør LS-AL, som lister alle filer i det lange formatet,
det er en prikk fil så å si
hvor en prikk fil er bare en fil med et filnavn som begynner
med en prikk.
Hva htaccess gjøre?
Vel la oss se på det.
Snarere enn å bruke G Edit, Jeg kommer til å bruke VIM,
du kan bruke Emax eller Nano eller noen av dine foretrukne redaktører,
men hvis jeg ser på her denne har en haug med lavt nivå ting
som fulgte med Laravel sin fordeling.
Dette er en fil som den Apache web server forstår
og lang historie kort, disse flere linjer
konfigurasjon trick hele offentlig katalog
inn ruting nesten all HTTP forespørsler om å ta en gjetning.
Hvilken fil?
Alle innkommende HTTP-forespørsler med noen få unntak vil bli rutet
i hvilken fil, ellers kjent som en front-kontrolleren?
>> Index.
>> Index.php.
Så selv om det er en foo.php fil eller en bar.php fil
i min Public katalogen, betydningen av disse linjene
generelt er å rute alle forespørsler
å index.php med mindre disse filene faktisk eksisterer fordi ting
som bang-f betyr at hvis filnavnet ikke eksisterer,
og hvis den direkte ikke finnes,
rute alle forespørsler til index.php.
Så i en bit dette kommer å tillate oss å ha URL-er
som http://Catalog/courses/123
hvor 123 er den unike identifikator for et kurs
men det er helt klart ikke navnet på en fil slik at forespørselen kommer
å bli rutet til index.php som kommer til å finne ut,
takket være Laravel og deg, hvor du skal rute
at innkommende HTTP-forespørsel.
Men det er et problem.
Legg merke til som standard som htaccess fil er ikke lesbar
eller kjørbar.
Kjørbarhet er ikke viktig men jeg ønsker å gjøre chmod644
på dot htaccess eller Et pluss R. Nå varsel
at hvis jeg gjør en alt oppføringen, nå er det lesbart.
Nå hvis jeg krysser fingrene mine her og reload, Puh,
vi har det oppe og går.
Så dumme trinn som du må gå gjennom først,
men det faktum at jeg liksom gikk gjennom det
så pedantisk er nøyaktig de typer
av diagnostiske trinn du bør tenke
om når noe er galt,
og selv når en katalog kan være galt,
skjønner det kanskje også bli dot filer,
særlig dot htaccess som er ganske vanlig
i noen Apache distribusjon,
som kan skape hodepine liker den.
Så jeg får litt lei av å gå tilbake
og tilbake til apparatet.
Jeg vil mye heller jobbe på min MAC eller til og med på min PC.
Så hvordan kan jeg gjøre dette samme etc / host triks?
Vel merke til at først la meg figur
ut hva apparatets IP-adressen er.
Jeg kan gjøre ifcongig, som viser meg noen ganske kryptisk utgang
men merknad ved eth0 eller snarere ved siden eth1,
det er denne IP-adressen her.
Jeg kommer til å gå videre og kopiere det og inne
av min egen MAC er terminalvindu Jeg kommer til å redigere sudo mv / hosts
på min egen MAC, som gir meg en lignende leter fil.
Alt jeg skal gjøre er dette.
Så jeg kommer til å lure min MAC
til å tro http://Catalog faktisk maps
til den bestemte IP-adresse.
Alright, så la oss gå videre og lagre dette, nå la meg lukke
at terminalvindu og nå på min MAC bruker hvilken som helst nettleser jeg vil,
http://Catalog og jeg se det samme.
Nå kan jeg ikke engang å bry går tilbake til [uhørbart]
som du kanskje ikke liker å gjøre uansett, så nå er jeg tilbake
på min egen datamaskin ved hjelp virkelig apparatet
som bare en web server.
Alright, så her er bare en rask oppsummering av noen
av filrettigheter vi vil kanskje endre
og jeg kuttet noen hjørner i ting som favicon eller alle
som interessant for nå.
Alright, så nå la oss starte
å konfigurere denne standard Laravel installasjon
en database.
Så Tim gjorde dette kort sist gang også, og filen
i spørsmålet er dette en her.
Så inne i, la meg endring dette for å være konsistent,
Catalog app config database.php.
Så la oss gå inn i app, la oss gå inn i config
og la oss gå inn database.php.
Så dette er en ganske lang fil, de fleste som er kommentarer,
men du får se om du lese gjennom dette tett
at du kan konfigurere Laravel og mye et rammeverk
å støtte ulike typer databaser.
Kanskje du bruker MySQL, kanskje du bruker Innlegg [uhørbart],
Kanskje du bruker SQL Lite, det er andre ting
men hvis vi bruker MySQL