>> בסדר.
אז הקורסים של הוראה.
יש הקטלוג כמובן של הרווארד כמה אלפי קורסים,
יש כמה מאות של סגל
ויש כמה עשרות שדות,
מדעי מחשב פשוט להיות אחד מהם,
וחשבתי שכדאי להשתמש בזה בתור הזדמנות להתחיל לחשוב
על איך מיישם יישום מבוסס אינטרנט סטנדרטי
באמצעות PHP ו Laravel ו גם כיצד ייתכן שאנו מודל מסוים
של ישויות בעולם האמיתיים אלה.
אז כדי לעשות את זה אנחנו נשתמש Laravel, וזה רק מסגרת
שמוסיף המון תכונות ל-PHP,
ממש כמו ג'נגו מוסיף את אותו הדבר לפייתון,
מסילות מוסיפה את אותו לרובי.
אז יש כמה דרכים שונות
שבו אתה יכול להתקין Laravel.
התיעוד Laravel, כפי שאתם אולי זוכרים
משבוע שעבר, הוא למעשה די עשיר
ואתה בהחלט יכול בכוחות עצמך במשחק הבית
מסתובבים עם זה ופעל ההוראות ספציפיות,
אבל אני הולך קדימה ופשוט לתת לנו מהיר,
סיור מערבולת של חלק מהם,
בדומה למה טים עשיתי לפני כמה הימים,
ואני הולך ראשון שהשתמשתי בזה.
אז מלחין הוא סוג של תכונה חדשה ומשופרת
לעולם PHP שעושה זה קל יותר להתקין דברים.
אם אתה מכיר את החוק קבל ב[ לא ברור] בעולם
או [לא ברור] בעולם או יאם ב[ לא ברור]
ועולם כובע אדום, זה הוא עדיין רק עוד כלי
המאפשר לך להתקין דברים
לסביבה המסוימת הזה.
אז אם אני עושה את המלחין, יצירת פרויקט וכן הלאה,
שאני אעשה כאן, בואו נלך קדימה ופשוט, אני אלווה אותך
דרך כמה מהם צעדים כפי שעשינו בפעם האחרונה
ללא סימן האחוזים, לכל הרוחות, ללא לחן.
אז עם מלחין אני משתמש מכונה וירטואלית שונה
מאשר שעשיתי בעבר.
בואו נעשה מהר זה אמיתי.
בסדר, אז התקנה מלחין הוא פשוט כמו זה.
אז אני אעשה, אני אקום על הארגז שלי לזמן מה מדי.
זהו למעשה מאוד הפרדיגמה נפוצה יותר ויותר
להתקנת דברים על המחשבים של אנשים בימים אלה,
שבו אתה בעצם לאחזר שרירותי של כתובות אתר,
צינור זה באמצעות מתורגמן ואז פשוט לעשות את מה
שנתח שרירותי של קוד אתה פשוט הורדת אומר לעשות.
זה קל מאוד כפי שאתה עומד לראות אבל מבין הספקן
בך צריך לחשוב שזה הוא בין בטוח יותר
דברים שאתה יכול בכלל לעשות; הורדת קובץ שרירותי
מהאינטרנט ולאחר מכן באופן עיוור מפעיל אותו בדרך
של הצינור, אבל אנחנו סומך שהמתקין הוא
למעשה היום לגיטימי.
אני הולך קדימה תריץ את זה וזה הולך
כדי להוריד את התכנית.
זה הולך להוריד קובץ קרא composer.farphparchive,
ואני מתכוון ללכת קדימה ולעשות את זה,
sudo-ראשון למעשה chmod755composer.far,
שהוא הולך לעשות את זה הפעלה על ידי כולם,
ולאחר מכן אני הולך לעשות מלחין MV sudo
למלחין סל המקומי משתמש, ומה בן המשתמש המקומי
למי שמכיר את לינוקס?
כדי להיות ברורים שאני עושה בתוך זה
של המכשיר למרות אני משתמש במסוף שלי על מק.
[אודיו נמוך] בדיוק, כך בספרייה,
למעשה הבהרה קלה.
בספרייה בדרך כלל בשם / bin
או / userbin אכן חלק מתוכניות הפופולריות מאוד
כמו CD וLS וכן הלאה.
בסל מקומי המשתמשים על ידי אמנה שום דבר כברירת מחדל, ואנחנו,
המשתמשים של המערכת, יכול לשים את כל מה שאנחנו רוצים שנופיע שם
וברירת מחדל זה בך נתיב חיפוש שנקרא כך
כאשר אתה פשוט להקליד מלחין מערכת ההפעלה, לינוקס,
הוא הולך להיראות שב ספרייה בין יתר
כדי למצוא את התכנית בשאלה, ומתברר שזה בסדר
כדי לשנות את זה עם סיומת הקובץ
בגלל שעשינו זה הפעלה.
יהיה הדבר הזה ממש לרוץ כמו שאנחנו מתכוונים.
אוקיי אז עכשיו אני הולך לחזור
אל הקו הצעתי לנו לבצע קודם לכן, שהוא זה;
מלחין ואז זה לוקח ויכוח שורת הפקודה,
שאני יודע רק מ קריאת התיעוד,
קרא ליצור פרויקט.
אני צריך לציין את שמו של הפרויקט שבו אני רוצה
לשלי בסיס וLaravel / Laravel למעשה מתייחס
למאגר רכזת גט שבקוד שחי.
קטלוג הוא שם שרירותי אני הולך לתת לפרויקט שלי,
הקטלוג כמובן, אבל אפשר לקרוא לזה foo
או כל דבר אחר, ומעדיף-dist.
זה קצת מנותק.
זה רק אומר שמעדיף ההפצה האחרונה.
אז אני הולך קדימה, על Enter וכמו טים אמרו
ביום רביעי שהוא יכול לפעמים לוקח זמן,
במיוחד אם אתה בחיבור איטי
או אם אתה לא במטמון כמה מהדברים האלה,
אבל מה זה עושים זה בודק
מתוך כל חבורה של קוד מהאינטרנט.
זה הולך לאט להוריד אותו למחשב שלי
וכאשר הוא סוף סוף עושה את זה,
אני הולך להיות מדריך נקרא קטלוג בתוך
מהן, אופס, זה למה.
קטלוג, בואו נעשה את זה שוב.
אוקיי לא להפעיל את זה.
ככל הנראה יש לך קיימים קטלוג ספרייה וזה מבחין
כי ברגע האחרון.
זה הולך להיות עבורי ספרייה בשם קטלוג בתוך
שבם הוא כל הקוד שאני צריך
להתחיל לכתוב מבוסס אינטרנט יישום עם Laravel.
אז תוך כמה שניות זה צריך לבעוט ב
וברגע שיש לנו את זה, ושוב אם אתה לא בנקודה
שבו אתה יכול פעל יחד ברגע זה,
זה בסדר גמור, זה די קל
ליצור מחדש את הפעולות הבאות לאחר מכן במכשיר שלך.
בסדר. בסדר ב בינתיים, כפי שאנו עושים זאת,
אני הולך למשוך עד רמז אחד אחר.
אז אולי יש לך אזכור טים ראה
או לערוך קובץ זה בפעם האחרונה.
מהו קובץ etc / מארח ואיפה זה לחיות?
בסדר בואו לגלגל אחורה בזמן.
מהו ה-DNS, שבו אנו נדון לא מזמן?
בסדר, אז את שם הדומיין של מערכת.
זוהי רק תשתית באינטרנט
שעושה את מה במשפט?
כן. [אודיו נמוך] בדיוק.
הוא ממיר שמות דומיין ל כתובות IP ולהיפך,
כך שזה יעיל טבלת מסד נתונים גדולה
עם שתי עמודות אלה שיש להם שמות תחום מלאים
על כתובת ה-IP והשמאל מימין, למשל,
וזה פשוט ממיר את שני.
עכשיו זה כל מה שטוב ויפה אבל אם אתה באמת רוצה
כדי ליצור שמות מארח חדשים על האינטרנט, שמות מתחם חדשים
באינטרנט, אתה בדרך כלל צריך לתת כסף למישהו,
אתה צריך להגדיר את הדברים על השרת שלהם, שם השרתים שלהם
וכן הלאה, שהוא כאב אמיתי, ובמיוחד
אם אנחנו לא באמת רוצים לקנות שם תחום, אנחנו רק רוצים
להעמיד פן שיש לנו תחום שלנו מקומי,
למשל נקרא קטלוג או Catalog.com
או משהו כזה.
ובכן etc / מארח מאפשר לך קשה מיפויי קוד בין שמות מארח
וכתובות IP עליך מחשב המקומי שלו כדי
להערים על מהות מחשב לחשיבה
כי שם הדומיין אכן קיים ב-IP ש.
הוא בדק ראשון לפני מערכת DNS למעשה עצמו
מסומן.
אז תן לי להיכנס לזה חלון מסוף וזה נראה
כמו ברקע,
כל מה שהוריד בהצלחה,
אז מה אני הולך עכשיו לעשות זה את הדברים הבאים.
אם אתה מכיר עוד מ50th או 51 ימים
עם G עריכה, אני הולך ללכת קדימה ולעשות את זה עם G עריכה
בהתחלה, אבל אני הולך קדימה
ולעשות עריכה גרם sudo / etc / מארחים פנימי של המכשיר,
וכשאני עושה את זה אני הולך לקבל את חלון
שנראה כמו זה כאן.
קווים מעט נסתרים רק בגלל שהם ארוכים,
אבל בעצם זה 127.0.0.1 מיפוי
לכמה שמות מארחים שונים, אחד מהם הוא מארח מקומי,
אחד מהם הוא מכשיר ולאחר מכן עוד כמה;
localhost.localdomain, appliance.localdomain.
אלה הם רק מוסכמות להשתמש בדברים כמו localhost
כשם מארח ברירת מחדל וlocaldomain
כברירת מחדל עליונה תחום ברמה או TLD.
אז שים לב למה שאני כבר עשה מראש כאן.
אם אני רוצה להערים מכשיר לחשיבה
קטלוג שאכן אתר אמיתי באינטרנט,
אני יכול להגיד שהמכשיר כתובת ה-IP שלו היא 127.0.0.1.
עכשיו למה כתובת ש?
מהו ה-IP ש?
מאיפה זה בא?
את מי אני צריך לבקש את זה?
[אודיו נמוך] מה זה?
[אודיו נמוך] זה בחזרה כתובת לולאה,
אשר פשוט אומר את זה הוא כתובת ה-IP ברירת המחדל שניתן
לרוב כל מחשב ב העולם שתומך ה-IP,
פרוטוקול אינטרנט, ו זה כתובת בחזרה לולאה
במובן זה הוא משקף אותו.
הוא מתייחס לעצמו.
אז כל אחד מאיתנו, אם יש לנו מכשיר או אפילו MAC
או שיש לי מחשב כתובת IP מקומית של 127.0.0.1 וזה נעשה שימוש רק
כך שאתה יכול לדבר לעצמך.
שיכולתי בדמות התאוריה
מה ה-IP של המכשיר כתובת היא וסוג ב192.168
או מה מספר ש הוא אבל זה לא הכרחי.
אחד זה הולך להיות בלתי משתנה ופשוט תמיד עובד.
אז ברגע שאני שומר כי זה אומר שסופו של דבר
כי בדפדפן אני יכול ללכת http://Catalog, כפי שאני אעשה כאן,
אבל כמה דברים הם פרץ את השערים.
אז מה עושה את זה בדרך כלל מתכוון,
כאשר אין לי הרשאות, אסור, לעשות משהו,
מה האינסטינקט הראשון שלך לפתרון בעיה זו?
אני לא להוריד ספרייה בשם קטלוג
לתוך ספריית המארחים V שלי, שבו מהשבוע האחרון שאתה זוכר הוא
שבו כל הסוג שלנו אתרים מקומיים יחיו.
מה יכול להיות שבור?
איך לתקן?
[אודיו נמוך] הרשאות.
הרשאות של מה?
קבצים אוקיי פוטנציאלי.
אז בואו נחזור לשלנו חלון מסוף כאן.
אני בספרייה מארח V שלי.
תן לי לעשות LS והודעה יש כמה דברים.
מארח מקומי, אשר מגיע עם המכשיר, אנחנו שמים אותו שם.
Catalog.original, אשר שמתי שם קודם לכן,
זה סוג של מוגמר גרסה של מה שאנחנו
עומד לצלול לתוך וקטלוג, שאני רק הורדתי.
אם אני רוצה להסתכל בהרשאות
בקטלוג הספרייה, אני יכול לעשות LS-L והודעה
שהם קצת שונה מהאחרים.
מה רשות היא, ככל הנראה, קטלוג הספרייה,
שאנחנו פשוט הורידו, חסר כברירת מחדל?
גם אם יש לך מושג מה המילה היא זועף אתה יכול להסיק
מה ששונה לגבי כל אחת משלוש שורות אלה?
אוקיי מה חסר בין הקו אחת ושני קו של הפלט?
כן? [אודיו נמוך] כן, אז זה חסר X, העומד
להפעלה ו מה זה אומר
אם ספרייה היא הפעלה?
זה רק אומר שאתה יכול לפתוח אותו.
אתה יכול תקליטור לתוך זה.
אתה יכול לגשת לקבצים בתוכו.
אז אם ההפעלה, האמצעים של קובץ זה כמו תכנית שאתה יכול לרוץ.
ספרייה היא הפעלה אם אתה יכול להיכנס לזה.
אז אני יכול לתקן את זה עם כמה דרכים.
אני יכול לעשות את chmod בתוספת X, מה שאומר שהפעלה כל תוספת
ולאחר מכן אני יכול לומר קטלוג.
או זוכר מCS50 או סוגים אחרים,
אני יכול להיות קצת להשתכלל ו אומרים 0711 או יותר פשוט 711
בקטלוג, לחץ על Enter, לא קורים כלום
אבל אם אני עושה LS-L שוב, שם לב שזה הפעלה
בקבוצה שלי, שהוא אמצע שלוש חתיכות ועל כולם,
אשר שלוש החתיכות הנכונות, וזה מספיק למי
להיות זהה עבור המטרות שלנו.
בסדר אני מרגיש כאילו אנחנו במצב די טוב.
בואו נחזור ל הדפדפן ובואו נטען מחדש
לכל הרוחות, עדיין אסור.
אז מה עוד יכול להיות שבור?
איפה עוד יכול אנחנו רוצים להיראות?
אז אנחנו קבועים קטלוג, כך אם אני נכנסתי לקטלוג,
בואו נעשה LS אחר, עכשיו יש יותר דברים לכאן ולמען האמת
במבט ראשון זה מכריע
ואני מעז לומר שזה אחד כאבי הראש של מסגרות
את השער ושאתה ממיין יש לי של הרבה להתמודד איתו,
אבל נצטרך לחדד על מה חשוב היום
והדבר החשוב ביותר לעת עתה היא בספרייה זו.
אם השתמשת במכשיר לפני שאתה אולי יודע
שנגיש לציבור ספרייה נקראת ציבורית,
או בשנים האחרונות זה נקרא HTML אבל אנחנו כבר מאז שינינו אותו
לציבור הנפוץ יותר.
אז אם אני עושה chmod 711 ציבור
שהיה נראה לתקן את הבעיה.
אז עכשיו הציבור ספרייה היא גם הפעלה
ולכן נגיש.
בואו תראו אם אנחנו צעד אחד קרוב יותר אחד.
בואו מחדש, עדיין אין טוב ועכשיו זה הולך
כדי לקבל קצת מאתגר; זה אחד זה קצת יותר קשה.
אם אני הולך לציבור, כזכור כי טים הראו לנו את זה.
אם אני עושה LS-AL, שרשימות כל הקבצים בפורמט הארוך,
יש קובץ נקודה כביכול
שם קובץ נקודה הוא רק קובץ הקובץ ששמו מתחיל
עם נקודה.
מה htaccess עושה?
ובכן בואו נסתכל בזה.
במקום להשתמש G עריכה, אני הולך להשתמש VIM,
אתה יכול להשתמש Emax או ננו או כל אחד מהעורכים המועדפים עליך,
אבל אם אני מסתכל כאן זה יש כל מיני דברים ברמה הנמוכה
שהגיע עם Laravel של הפצה.
זהו קובץ ש שרת האינטרנט Apache מבין
וסיפור ארוך קצר, כמה שורות אלה
טריק של תצורה הספרייה הציבורית כולו
לניתוב כמעט כל HTTP בקשות לקחת ניחוש.
איזה קובץ?
כל בקשות HTTP נכנסות עם כמה יוצא מכלל הייתי להיות מנותב
למה קובץ, אחרת ידוע כבקר קדמי?
>> מדד.
>> Index.php.
אז גם אם יש foo.php קובץ או קובץ bar.php
בספרייה הציבורית שלי, המשמעות של שורות אלה
באופן כללי הוא מסלול כל הבקשות
לindex.php אלא אם כן קבצים אלה אכן קיימת בגלל דברים
כמו המפץ-f משמעות היא שאם שם קובץ לא קיים,
ואם באופן ישיר לא קיימת,
מסלול כל הבקשות לindex.php.
אז בקטע הזה הולך כדי לאפשר לנו לקבל את כתובת האתר של
כמו http://Catalog/courses/123
בי 123 הוא ייחודיים מזהה עבור קורס
אבל זה בבירור לא את שמו של קובץ, כך הבקשה כי הוא הולך
כדי להיות מנותב לindex.php מי הולך להבין,
הודות לLaravel ו לך, שבו למסלול
שבקשת HTTP נכנסת.
אבל יש בעיה.
שים לב כברירת מחדל, כי קובץ htaccess הוא לא קריא
או הפעלה.
Executability לא חשוב אבל אני רוצה לעשות chmod644
על htaccess או נקודה הודעת ר עכשיו בתוספת
כי אם אני עושה את כל רישום, עכשיו זה קריא.
עכשיו, אם אני חוצה את האצבעות שלי פה ורענן, וואו,
יש לנו אותו ולהפעלתו.
צעדים כל כך טפשים שאתה צריך לעבור בהתחלה,
אבל העובדה שאני סוג של עבר את זה
כך בדקדקנות הוא בדיוק הסוגים
צעדי אבחון אתה צריך לחשוב
על כל פעם שמשהו לא לא נכון,
וגם כאשר ספרייה יכול להיות עקום,
מבין שיש אולי גם מנקדים קבצים,
בנקודה מסוימת htaccess שהם נפוצים למדי
בכל חלוקה Apache,
אשר עשוי ליצור כאבי ראש כמו שאף אחד.
אז אני מקבל קצת עייף חוזר
ושוב למכשיר.
אני הרבה יותר מעדיף לעבוד על MAC שלי או אפילו במחשב שלי.
אז איך אני יכול לעשות את זה אותו תרגיל וכו '/ מארח?
ובכן להבחין כי תן לי דמות הראשונה
מה המכשיר של כתובת IP היא.
אני יכול לעשות ifcongig, המראה לי קצת פלט די סתום
אבל הודעה לצד eth0 או ליתר דיוק ליד eth1,
יש כתובת ה-IP זה כאן.
אני הולך קדימה ולהעתיק את זה ובתוך
של חלון המסוף של MAC שלי אני הולך לערוך sudo etc / מארחים
ב-MAC שלי, אשר נותן לי שלי קובץ מחפש דומה.
כל מה שאני הולך לעשות את זה.
אז אני הולך להערים על ה-MAC שלי
לחשוב http://Catalog מפות למעשה
כדי שכתובת ה-IP הספציפית.
בסדר, אז בואו נלך קדימה ו להציל את זה, עכשיו תן לי לסגור
שחלון מסוף ועכשיו על MAC שלי באמצעות כל דפדפן שאני רוצה,
http://Catalog ואני לראות את אותו הדבר.
עכשיו אני אפילו לא צריך לטרוח חוזר ל[ לא ברור]
שבו אתה לא אולי תרצה לעשות בכל מקרה, אז עכשיו אני חוזר
במחשב שלי באמצעות באמת המכשיר
כפשוט שרת אינטרנט.
בסדר, אז הנה רק סיכום מהיר של כמה
של הרשאות הקבצים אנחנו אולי רוצים לשנות
וחתכתי כמה פינות ב דברים כמו favicon או כל
מעניין כי לעת עתה.
בסדר, אז עכשיו בואו נתחיל
כדי לקבוע את תצורת ברירת מחדל זו התקנת Laravel
למסד נתונים.
אז טים עשו בקצרה זה הפעם האחרונה וגם את הקובץ
בשאלה הוא זה כאן.
אז בתוך, תן לי שינוי זה להיות עקבי,
database.php config אפליקציה קטלוג.
אז בואו ניכנס לאפליקציה, בואו נלך אל config
ובואו נלך לdatabase.php.
אז זה קובץ די ארוך, רובן הוא תגובות,
אבל תצטרך לראות אם אתה לקרוא את זה מקרוב
כי אתה יכול להגדיר מסגרות Laravel והרבה
כדי לתמוך שונה סוגים של מסדי נתונים.
אולי אתה משתמש MySQL, אולי אתה משתמש בהודעה [לא ברור],
אולי אתה משתמש SQL לייט, יש דברים אחרים
אבל אם אנו משתמשים MySQL