Va bene >>.
Così i corsi di istruzione.
Catalogo dei corsi di Harvard ha diverse migliaia di corsi,
ci sono diverse centinaia di docenti
e ci sono diversi decine di campi,
informatica solo essere uno di loro,
e ho pensato di usare questo come l'opportunità di cominciare a pensare
su come implementa un applicazione web basata su standard
utilizzando PHP e Laravel e Inoltre come possiamo modellare alcuni
di queste vere e proprie entità del mondo.
Quindi, per fare questo useremo Laravel, che è solo un quadro
che aggiunge un sacco di funzioni per PHP,
tanto come Jango aggiunge lo stesso a Python,
Rails aggiunge la stessa Ruby.
Quindi c'è una coppia di modi diversi
in cui è possibile installare Laravel.
La documentazione per Laravel, come si può ricordare
dalla settimana scorsa, è in realtà piuttosto ricco
e si può certamente sul proprio gioco a casa
giro con questo e seguire le istruzioni specificamente,
ma ho intenzione di andare avanti e solo darci una rapida,
vorticoso giro di alcuni di loro,
simile a quello Tim ha fatto l'altro giorno,
e sto andando prima ad utilizzare questo.
Così Composer è una sorta di funzionalità nuove e migliorate
per il mondo PHP che rende più facile da installare cose.
Se avete familiarità con la Legge Prendi in tutto il mondo [incomprensibile]
o [incomprensibile] mondiale o Yum nel [incomprensibile]
e mondiale cappello rosso, questo è ancora solo un altro strumento
che permette di installare le cose
per questo particolare ambiente.
Quindi se faccio Compositore, Creare il progetto e così via,
che farò qui, andiamo avanti e basta, ti accompagno
attraverso alcuni di questi passi come abbiamo fatto l'ultima volta
senza il segno di percentuale, Dannazione, non Composer.
Quindi, con Composer-sto utilizzando una macchina virtuale diversa
che ho fatto prima.
Facciamolo in fretta.
Bene, l'installazione di Composer è semplice come questo.
Così farò una, mi alzo sul mio podio per un po 'troppo.
Questo è in realtà molto paradigma sempre più comune
per l'installazione di cose computer della gente in questi giorni,
dove essenzialmente recuperare un URL arbitrario,
tubo attraverso un interprete e poi basta fare quello che
quel pezzo di codice arbitrario appena scaricato dice di fare.
E 'molto facile come stai da vedere, ma realizzare lo scettico
Nel tuo dovrebbe pensare che questo è tra i più insicuri
cose che si possa fare; il download di un file arbitrario
da internet e poi ciecamente eseguirlo mediante
del tubo, ma ci sarà fiducia che l'installatore è
infatti legittimo oggi.
Ho intenzione di andare avanti e eseguire questo e questo sta andando
per scaricare il programma.
E 'intenzione di scaricare un file chiamato composer.farphparchive,
e ho intenzione di andare avanti e fare questo,
sudo-prima realtà chmod755composer.far,
che sta per renderlo eseguibile da tutti,
e poi ho intenzione di fare sudo mv compositore
di utente locale compositore bin, e ciò è user bin locale
per chi ha familiarità con Linux?
Per essere chiari io sto facendo questo all'interno
dell'apparecchio anche se Sto utilizzando terminale sul mio MAC.
[Low audio] Esattamente, così in una directory,
in realtà una piccola precisazione.
Nella directory tipicamente chiamato / bin
o / userbin sono davvero alcuni programmi molto popolari
come CD e LS e così via.
In user bin locale per convenzione è nulla di default e noi,
gli utenti del sistema, in grado mettere tutto ciò che vogliamo in là
e di default è nel vostro cosiddetto percorso di ricerca in modo che
quando basta digitare compositore il sistema operativo, Linux,
sta andando a guardare in quella Elenco tra gli altri
per trovare il programma in questione, e si scopre che si tratta di bene
rinominare con l'estensione del file
perché abbiamo fatto eseguibile.
Questa cosa sarà effettivamente eseguito come intendiamo.
Va bene così ora ho intenzione di tornare indietro
alla linea ho proposto che eseguire prima, che è tale;
compositore e quindi richiede argomento della riga di comando,
che io conosco solo da lettura della documentazione,
chiamato creare progetto.
Ho bisogno di specificare il nome del il progetto su cui voglio
alla mia base e Laravel / Laravel si riferisce essenzialmente
in un repository hub get in cui detto codice vive.
Catalog è un nome arbitrario Ho intenzione di dare al mio progetto,
il catalogo dei corsi, ma si può chiamare foo
o qualsiasi altra cosa, e preferiscono-dist.
E 'un po' di cut-off.
Significa solo preferisce l'ultima distribuzione.
Quindi ho intenzione di andare avanti e premere Invio e come ha detto Tim
il Mercoledì si può a volte prendere un po ',
soprattutto se sei su una connessione lenta
o se non avete memorizzato nella cache alcune di queste cose,
ma di cosa si tratta facendo è sta controllando
un intero gruppo del codice online.
Sta lentamente andando a scaricarlo sul mio computer
e quando è finalmente finito,
Ho intenzione di avere una directory chiamato Catalog all'interno
dei quali-oops, ecco perché.
Catalogo, facciamolo di nuovo.
Va bene non eseguire quello.
A quanto pare hai uno esistente Elenco Catalog e nota
che all'ultimo minuto.
Questo sta per avere per me un directory denominata Catalog all'interno
delle quali è tutto il codice ho bisogno
per iniziare a scrivere un web based applicazione con Laravel.
Così nel giro di pochi secondi questo dovrebbe calciare in
e una volta che abbiamo questo, e di nuovo se non sei al punto di
dove siete in grado di seguire in questo momento,
è totalmente soddisfacente, è abbastanza facile
per ricreare questi passaggi poi nel proprio apparecchio.
Va bene. Bene nel Intanto, come noi facciamo,
Io vado a tirare su un altro suggerimento.
Così si potrebbe avere visto menzione Tim
o modificare questo file l'ultima volta.
Che cosa è un file etc / host e dove si vive?
Va bene facciamo rotolare indietro nel tempo.
Che cosa è il DNS, che abbiamo discusso non troppo tempo fa?
Bene, sistema dei nomi di dominio.
Questo è solo l' infrastrutture su internet
che fa quello che in una frase?
Già. [Low audio] Esattamente.
Si converte i nomi di dominio Indirizzi IP e viceversa,
quindi è efficace una tabella di database grande
con questi due colonne che hanno nomi di dominio completi
sull'indirizzo sinistra e IP a destra, per esempio,
e converte solo due.
Ora che è tutto bello e buono ma se si vuole realmente
per creare nuovi nomi di host su l'internet, nuovi nomi di dominio
su internet, in genere dovuto dare soldi a qualcuno,
è necessario configurare le cose su loro server, i server dei nomi
e così via, che è un vero dolore, e, soprattutto,
se non si vuole veramente acquistare un nome di dominio, ci vogliono solo
far finta come abbiamo il nostro dominio locale,
per esempio chiamato Catalogo o Catalog.com
o qualcosa di simile.
Beh etc / host consente di duro mapping di codice tra i nomi host
e gli indirizzi IP sulla proprio computer locale, in modo da
per ingannare essenzialmente la computer in pensiero
che quel nome a dominio esiste realmente in quel IP.
Viene controllato prima il sistema effettivamente DNS sé
sia selezionata.
Quindi mi permetta di andare in questo finestra di terminale e sembra
come nei precedenti là,
tutto aveva scaricato successo,
quindi quello che ora sto andando fare è il seguente.
Se sei maggiore familiarità dal 50 ° o 51 giorni
G Edit, ho intenzione di andare avanti e farlo con G Edit
in un primo momento, ma io sono per andare avanti
e fare sudo g di modificare / etc / hosts all'interno dell'apparecchio,
e quando faccio questo io sono intenzione di ottenere una finestra
che assomiglia a questo qui.
Linee un po 'criptico solo perché sono lunghi,
ma essenzialmente è mappatura 127.0.0.1
a un paio di nomi di host diversi, uno dei quali è ospite locale,
uno dei quali è apparecchio e poi un altro paio;
localhost.localdomain, appliance.localdomain.
Questi sono solo convenzioni di utilizzare le cose come localhost
come nome host predefinito e localdomain
come un top di default level domain o TLD.
Allora notare ciò che ho già ha fatto in anticipo qui.
Se voglio ingannare l' apparecchio nel pensiero
che Catalog è davvero un vero sito web su internet,
Posso dire che l'apparecchio il suo indirizzo IP è 127.0.0.1.
Ora, perché tale indirizzo?
Che cosa è che l'IP?
Da dove proviene?
Chi ho dovuto chiedere per questo?
[Low audio] Che cos'è?
[Low audio] E 'l' Indirizzo indietro loop,
che significa semplicemente questo l'indirizzo IP predefinito dato
per la maggior parte qualsiasi computer in il mondo che supporta IP,
protocollo internet, e si tratta di un indirizzo di loopback
nel senso che esso riflette.
Si riferisce a se stesso.
Così tutti noi, se abbiamo un apparecchio o anche un MAC
o PC dispone di un indirizzo IP locale di 127.0.0.1 ed è utilizzato solo
in modo che si può parlare a te stesso.
Ho potuto in teoria figura
che cosa IP dell'appliance indirizzo è e digitare 192.168
o qualsiasi altra cosa quel numero è ma non è necessario.
Questo sarà invariante e sarà semplicemente lavorare sempre.
Quindi, una volta salvo che questo significa in ultima analisi,
che in un browser posso andare a http://Catalog, come farò qui,
ma alcune cose sono rotto fuori dai cancelli.
Così che cosa fa questo in genere significa,
quando non ho i permessi, proibito, di fare qualcosa,
qual è il tuo primo istinto per risolvere questo problema?
Ho fatto scaricare un directory denominata Catalogo
nella mia cartella V padroni di casa, che dalla settimana scorsa vi ricordate è
dove tutti i nostri sorta di siti locali vivranno.
Che cosa potrebbe essere rotto?
Come risolvere?
[Low audio] Autorizzazioni.
Permessi di che cosa?
Ok file potenzialmente.
Quindi torniamo al nostro finestra di terminale qui.
Sono nella mia directory host V.
Lasciatemi fare LS e preavviso ci sono un paio di cose.
Host locale, che viene fornito con l'apparecchio, abbiamo messo lì.
Catalog.original, che Ho messo lì prima,
che è una sorta di finale versione di quello che siamo
per tuffarsi in e catalogo, che ho appena scaricato.
Se voglio guardare le autorizzazioni
sulla directory di catalogo, Posso fare LS-L e preavviso
che sono un po ' diverso dagli altri.
Cosa autorizzazione è apparentemente la directory di catalogo,
che abbiamo appena scaricato, manca di default?
Anche se non avete idea di cosa la parola è che si può dedurre scontroso
cosa c'è di diverso ciascuna di queste tre linee?
Va bene quello che manca tra la linea uno e due linea di uscita?
Sì? [Low audio] Sì, così è manca la X, che sta
per l'eseguibile e cosa significa
se una directory è eseguibile?
Significa solo è possibile aprirlo.
Puoi CD in esso.
È possibile accedere ai file all'interno di esso.
Quindi, se eseguibili, i mezzi di un file è come un programma è possibile eseguire.
Una directory è eseguibile se si può andare in esso.
Così posso risolvere questo problema con un paio di modi.
Potrei fare chmod A plus X, il che significa che tutti i più eseguibile
e poi posso dire catalogo.
O richiamare da CS50 o di altre classi,
Posso essere un po 'più elaborato e dire 0711 o più semplicemente 711
sul Catalogo, premere Invio, nulla sembra accadere
ma se lo faccio di nuovo LS-L, notare che è eseguibile
dal mio gruppo, che è il mezzo tre punte e da tutti,
che è il giusto tre bit, ed è sufficiente per coloro
essere identici per i nostri scopi.
Va bene mi sento come se fossimo in buona forma.
Torniamo al browser e cerchiamo di ricaricare,
dannazione, ancora proibito.
Quindi, che cosa potrebbe essere rotto?
Dove altro potrebbe vogliamo guardare?
Così abbiamo fissato catalogo, così se vado in catalogo,
Facciamo un altro LS, ora c'è più roba qui e francamente
a prima vista è opprimente
e oserei dire che questo è uno dei i mal di testa di quadri
fuori dal cancello e che si ordina di avere un sacco di affare con,
ma ci perfezionare in ciò che è importante oggi
e la cosa più importante per ora è questa directory.
Se hai utilizzato l'apparecchio prima si potrebbe sapere
che l'accessibile pubblicamente directory si chiama pubblica,
o negli anni passati è stato chiamato HTML ma abbiamo cambiato poiché essa
al più comune pubblico.
Quindi se faccio chmod 711 della Pubblica
che sembrerebbe risolvere tale questione.
Così ora il pubblico directory è anche eseguibile
e quindi accessibile.
Vediamo se siamo un passo più vicino.
Facciamo ricaricare, ancora bene e ora sta andando
per ottenere un po 'impegnativo; questo è un po 'più difficile.
Se vado in pubblico, di richiamo che Tim ci ha mostrato questo.
Se faccio LS-AL, che le liste tutti i file nel formato lungo,
c'è un file dot per così dire
cui un file dot è solo un file il cui nome del file inizia
con un punto.
Cosa fa htaccess fare?
Beh, diamo un'occhiata a questo.
Invece di utilizzare G Edit, Ho intenzione di usare VIM,
è possibile utilizzare Emax o Nano o qualsiasi dei vostri redattori preferiti,
ma se guardo in qui ha un mucchio di roba di basso livello
che è venuto con Laravel di distribuzione.
Questo è un file che l' Server web Apache capisce
e la lunga storia breve, queste diverse linee
di trick configurazione l'intera directory pubblica
instradamento in quasi tutti HTTP le richieste di prendere una supposizione.
Quale file?
Tutte le richieste HTTP in ingresso con poche eccezioni saranno instradati
a quale file, altrimenti conosciuto come un front controller?
>> Index.
>> Index.php.
Quindi, anche se c'è un foo.php file o un file bar.php
nel mio Directory pubblica, il significato di queste linee
in generale è quello percorso tutte le richieste
a index.php a meno che tali file effettivamente esistono perché le cose
come bang-f significa che se l' filename non esiste,
e se il direttamente non esiste,
percorso tutte le richieste di index.php.
Quindi, in un po 'questo sta per permetterci di avere URL
come http://Catalog/courses/123
dove 123 è l'unica identificatore per un corso
ma non è chiaramente il nome un file in modo che la domanda sta
essere indirizzati a index.php che sta per capire,
grazie a Laravel e si, dove percorso
tale richiesta HTTP in ingresso.
Ma c'è un problema.
Si noti che per impostazione predefinita htaccess non è leggibile
o eseguibile.
Executability non è importante ma io voglio fare chmod644
htaccess sul punto o Un avviso R. Ora più
che se faccio un tutto profilo, ora è leggibile.
Ora, se io incrocio le dita qui e ricarica, wow,
abbiamo installato e funzionante.
Passi così stupido che si necessario passare attraverso un primo momento,
ma il fatto che sorta di andato attraverso di essa
così pedantemente è esattamente tipologie
delle fasi diagnostiche si dovrebbe pensare
circa ogni volta che qualcosa è sbagliato,
e anche quando una directory potrebbe essere a monte,
realizzare ci potrebbe anche i file dot,
in particolare HTAccess dot che sono abbastanza comuni
in qualsiasi distribuzione di Apache,
che potrebbero creare mal di testa come quella.
Così sto diventando un po ' stanco di tornare indietro
e indietro per l'apparecchio.
Preferirei lavorare su il mio MAC o anche sul mio PC.
Così come posso fare questo stesso trucco etc / host?
Bene notare che Prima di tutto lasciatemi figura
che cosa le appliance di Indirizzo IP è.
Posso fare ifcongig, che mostra me qualche uscita piuttosto criptica
ma l'avviso accanto a eth0 o piuttosto accanto a eth1,
c'è questo indirizzo IP qui.
Ho intenzione di andare avanti e copia che e dentro
della finestra del terminale di mia MAC Ho intenzione di modificare sudo etc / hosts
sul mio MAC, che dà me un file simile alla ricerca.
Tutto quello che ho intenzione di fare è questo.
Quindi ho intenzione di ingannare il mio MAC
nel pensare http://Catalog effettivamente mappe
a tale indirizzo IP specifico.
Bene, andiamo avanti e salvare questa, ora lasciatemi chiudere
quella finestra e ora in il mio MAC utilizzando qualsiasi browser che voglio,
http://Catalog e io vedere la stessa cosa.
Ora non ho nemmeno bisogno di preoccuparsi andando indietro nel [incomprensibile]
che si potrebbe non piace faccio comunque, così ora sono tornato
sul mio computer utilizzando veramente l'apparecchio
solo come un server web.
Bene, qui è solo un breve riepilogo di alcuni
dei permessi dei file potremmo voler cambiare
e ho tagliato alcuni angoli in cose come il favicon o tutti
che interessante per ora.
Bene, ora cominciamo
Per configurare questa impostazione predefinita Installazione Laravel
per un database.
Così Tim ha fatto questo breve l'ultima volta troppo e il file
in questione è questa qui.
Così dentro, mi permetta di cambiamento questo per essere coerenti,
Catalogo app config database.php.
Quindi cerchiamo di andare in app, andiamo in config
e andiamo in database.php.
Quindi questo è un tempo piuttosto lungo di file, la maggior parte dei quali è commenti,
ma vedrai se leggere attentamente la situazione
che è possibile configurare Laravel e un sacco a quadri
per supportare diversi tipi di database.
Forse stai usando MySQL, forse stai usando Post [incomprensibile],
Forse stai usando SQL Lite, ci sono altre cose
ma se stiamo usando MySQL