วิธีการติดตั้ง Laravel บน Ubuntu 20.04

ทุกสิ่งที่คุณจำเป็นต้องรู้เพื่อปรับใช้เว็บแอปพลิเคชัน Laravel บนเครื่อง Ubuntu 20.04 LTS

Laravel เป็นเฟรมเวิร์ก PHP แบบโอเพ่นซอร์สที่ได้รับความนิยมอย่างมาก โดยมีไวยากรณ์ที่แสดงออกและสวยงาม ซึ่งใช้ในการออกแบบเว็บแอปพลิเคชันที่ทันสมัยและสวยงาม Laravel ตั้งเป้าที่จะขจัดความเจ็บปวดจากการพัฒนาเว็บไซต์ และทำให้เป็นประสบการณ์ที่สนุกสนานและสร้างสรรค์ โดยเปลี่ยนนักพัฒนาเว็บให้เป็นช่างฝีมือเว็บไซต์

ในคู่มือนี้ คุณจะได้เรียนรู้วิธีติดตั้ง Laravel ด้วย LAMP stack บนเซิร์ฟเวอร์ Ubuntu 20.04 เพื่อให้เว็บแอปพลิเคชันของคุณทำงานได้

ข้อกำหนดเบื้องต้น

หากต้องการทำตามคำแนะนำนี้ คุณจะต้องมีเซิร์ฟเวอร์ Ubuntu 20.04 LTS และเข้าสู่ระบบด้วย a sudo ผู้ใช้ ก่อนที่เราจะเริ่มต้น ให้อัปเดตและอัปเกรดแพ็คเกจ Ubuntu 20.04 โดยเรียกใช้:

sudo apt update && sudo apt อัปเกรด

การติดตั้ง LAMP Stack

LAMP ย่อมาจาก หลี่ ระบบปฏิบัติการ inux, อา เว็บเซิร์ฟเวอร์ pache, เอ็ม ฐานข้อมูล ySQL และ พี ภาษาโปรแกรมของ HP เราอยู่บน Ubuntu 20.04 แล้วซึ่งทำเครื่องหมายที่ Linux ใน LAMP stack ดังนั้นเราจะติดตั้งแพ็คเกจที่เหลืออีกสามแพ็คเกจเพื่อให้ LAMP stack สมบูรณ์สำหรับแอปพลิเคชัน Laravel ของเรา

ไม่มีเมตาแพ็คเกจสำหรับติดตั้ง LAMP stack ในที่เก็บ Ubuntu 20.04 แต่เราใช้ฟีเจอร์เล็กๆ น้อยๆ ของ . ได้ ฉลาด ตัวจัดการแพ็คเกจที่เรียกว่างาน งานจะแสดงโดยใช้ชื่อของงานที่มีอยู่กับนักเรียนนายร้อย (^) ผนวกกับมัน

sudo apt ติดตั้ง lamp-server ^

คำสั่งนี้จะค้นหาไฟล์รายการแพ็คเกจสำหรับฟิลด์ “Task:” ทั้งหมด และติดตั้งแพ็คเกจทั้งหมดด้วย “lamp-server” ในฟิลด์งาน ดังนั้น LAMP stack ที่ประกอบด้วยแพ็คเกจ Apache, MySQL และ PHP พร้อมการอ้างอิงทั้งหมดจะถูกติดตั้งบนเซิร์ฟเวอร์ Ubuntu ของคุณ

กำหนดค่าไฟร์วอลล์

เมื่อคุณติดตั้ง LAMP stack แล้ว คุณต้องกำหนดค่าไฟร์วอลล์ที่ไม่ซับซ้อน (UFW) และเปลี่ยนกฎเพื่อให้คุณสามารถเข้าถึงเซิร์ฟเวอร์ Apache จากอินเทอร์เน็ตได้

UFW มีโปรไฟล์แอปพลิเคชันอย่างง่ายที่สามารถใช้เพื่อเปลี่ยนกฎและสลับการรับส่งข้อมูลบนพอร์ตเครือข่าย เรียกใช้คำสั่งต่อไปนี้เพื่อแสดงรายการแอปพลิเคชันทั้งหมดที่เข้าถึงพอร์ตเครือข่าย:

sudo ufw รายการแอพ

คุณจะเห็นผลลัพธ์เช่นนี้:

แอปพลิเคชันที่ใช้ได้: Apache Apache Full Apache Secure OpenSSH

พอร์ตเครือข่ายที่เปิดไว้บนเซิร์ฟเวอร์ Ubuntu 20.04 มีดังต่อไปนี้:

  • Apache: โปรไฟล์นี้เปิดเฉพาะพอร์ต 80 (อนุญาตการรับส่งข้อมูล HTTP)
  • Apache แบบเต็ม: โปรไฟล์นี้เปิดทั้งคู่ 80 & 443 พอร์ต (อนุญาตการรับส่งข้อมูล HTTP และ HTTPS)
  • Apache Secure: โปรไฟล์นี้เปิดเฉพาะพอร์ต 443 (อนุญาตการรับส่งข้อมูล HTTPS)
  • OpenSSH: โปรไฟล์นี้เปิดพอร์ต 22 ซึ่งอนุญาตให้ใช้โปรโตคอล SSH

คุณต้องเปิดใช้งานโปรไฟล์ 'Apache Full' ซึ่งจะอนุญาตให้มีการรับส่งข้อมูลไปยังเว็บเซิร์ฟเวอร์ Apache จากอินเทอร์เน็ต นอกจากนี้ คุณจะต้องเปิดใช้งานโปรไฟล์ 'OpenSSH' ซึ่งอนุญาตให้มีการรับส่งข้อมูลบนพอร์ต 22 (SSH) บนเซิร์ฟเวอร์ Ubuntu 20.04 ของคุณ หากคุณเปิดใช้งาน UFW โดยไม่ได้อนุญาตโปรไฟล์ 'OpenSSH' คุณจะไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณโดยใช้ SSH

หากต้องการเปลี่ยนกฎ UFW และอนุญาตการรับส่งข้อมูลบนพอร์ต 80 และ 22, วิ่ง:

sudo ufw อนุญาต 'Apache เต็ม' sudo ufw อนุญาต 'OpenSSH'

จากนั้นเปิดใช้งานไฟร์วอลล์ UFW โดยใช้คำสั่งต่อไปนี้:

sudo ufw เปิดใช้งาน

คุณอาจได้รับข้อความแจ้งว่า "คำสั่งอาจขัดขวางการเชื่อมต่อ ssh ที่มีอยู่ ดำเนินการต่อไป (y|n)?” กด Y เพื่อดำเนินการต่อ เนื่องจากเราได้เพิ่มกฎเพื่ออนุญาต SSH ใน UFW แล้ว

ตอนนี้คุณสามารถเข้าถึงหน้าเว็บเริ่มต้นของ Apache โดยใช้ที่อยู่ IP ของเซิร์ฟเวอร์ Ubuntu ของคุณจากอินเทอร์เน็ต โดยเปิดเบราว์เซอร์ของคุณและพิมพ์ที่อยู่ IP ของเซิร์ฟเวอร์ Ubuntu 20.04 ของคุณในแถบ URL แล้วกด Enter

//Your_ubuntu_server_ip

หน้านี้ยืนยันว่าเว็บเซิร์ฟเวอร์ Apache ทำงานอย่างถูกต้องและมีการตั้งค่ากฎ UFW อย่างถูกต้อง

การตั้งค่าฐานข้อมูล MySQL สำหรับ Laravel

Laravel 7 ทำให้การโต้ตอบกับฐานข้อมูลทำได้ง่ายมากในแบ็กเอนด์ฐานข้อมูลต่างๆ ที่รองรับ เช่น MySQL เวอร์ชัน 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ และ SQL Server 2017+ เรามีแพ็คเกจ MySQL ล่าสุดติดตั้งพร้อมกับ .แล้ว ไฟตัด^ งาน. ดังนั้น ในส่วนนี้ เราจะกำหนดค่าเซิร์ฟเวอร์ MySQL แล้วดูวิธีตั้งค่าผู้ใช้ MySQL และฐานข้อมูลใหม่สำหรับแอปพลิเคชัน Laravel

กำหนดค่า MySQL

ฐานข้อมูล MySQL มาพร้อมกับสคริปต์ความปลอดภัยที่ติดตั้งไว้ล่วงหน้า ซึ่งสามารถใช้เพื่อลบการตั้งค่าเริ่มต้นที่ไม่ปลอดภัยบางอย่าง ขอแนะนำให้คุณเรียกใช้สคริปต์นี้ก่อนที่จะปรับใช้แอปพลิเคชัน Laravel ของคุณ

sudo mysql_secure_installation

คำสั่งดังกล่าวจะดำเนินการสคริปต์ความปลอดภัยซึ่งจะแจ้งให้คุณทราบชุดคำถามสำหรับการกำหนดค่าเซิร์ฟเวอร์ MySQL

อันดับแรก ระบบจะถามคุณว่าต้องการตั้งค่า ตรวจสอบรหัสผ่าน เสียบเข้าไป. ปลั๊กอินนี้จะตรวจสอบรหัสผ่านของคุณและจัดอันดับให้ปลอดภัยหรือไม่ปลอดภัยตามระดับนโยบายการตรวจสอบรหัสผ่านที่คุณจะเลือกในไม่ช้า กดเลย Y หากคุณต้องการเปิดใช้งานปลั๊กอินนี้

เอาท์พุท: การรักษาความปลอดภัยการปรับใช้เซิร์ฟเวอร์ MySQL เชื่อมต่อกับ MySQL โดยใช้รหัสผ่านเปล่า VALIDATE PASSWORD COMPONENT สามารถใช้ทดสอบรหัสผ่านและปรับปรุงความปลอดภัยได้ จะตรวจสอบระดับความปลอดภัยของรหัสผ่านและอนุญาตให้ผู้ใช้ตั้งรหัสผ่านที่มีความปลอดภัยเพียงพอเท่านั้น คุณต้องการตั้งค่าองค์ประกอบ VALIDATE PASSWORD หรือไม่ กด y|Y สำหรับ Yes, ปุ่มอื่นสำหรับ No: Y

จากนั้นตั้งค่าระดับนโยบายการตรวจสอบรหัสผ่านโดยป้อน 0, 1 หรือ 2 ขึ้นอยู่กับความแข็งแกร่งที่คุณต้องการสร้างรหัสผ่านสำหรับฐานข้อมูลของคุณ

เอาท์พุท: นโยบายการตรวจสอบรหัสผ่านมีสามระดับ: LOW Length >= 8 MEDIUM Length >= 8, ตัวเลข, ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และตัวอักขระพิเศษ STRONG Length >= 8, ตัวเลข, ตัวพิมพ์เล็ก, อักขระพิเศษ และไฟล์พจนานุกรม โปรดป้อน 0 = LOW, 1 = ปานกลาง และ 2 = แข็งแรง: 2

ถัดไป คุณจะถูกขอให้ป้อนรหัสผ่านใหม่สำหรับผู้ใช้ root ของ MySQL ป้อนรหัสผ่านที่เหมาะสมสำหรับรูท MySQL ของคุณ ปลั๊กอิน VALIDATE PASSWORD จะทำให้คุณมีความแข็งแกร่งโดยประมาณของรหัสผ่านของคุณตามระดับการตรวจสอบรหัสผ่านของคุณ กด Y เพื่อดำเนินการต่อด้วยรหัสผ่านที่คุณให้ไว้

เอาท์พุท: โปรดตั้งรหัสผ่านสำหรับรูทที่นี่ รหัสผ่านใหม่: ป้อนรหัสผ่านใหม่อีกครั้ง: ความแรงของรหัสผ่านโดยประมาณ: 100 คุณต้องการดำเนินการต่อโดยใช้รหัสผ่านที่ให้มาหรือไม่ (กด y|Y สำหรับใช่ คีย์อื่นใดสำหรับไม่ใช่): Y

กด Y สำหรับข้อความแจ้งที่เหลือ พวกเขาจะลบผู้ใช้ที่ไม่ระบุชื่อและฐานข้อมูลทดสอบ ปิดใช้งานการเข้าสู่ระบบรูทระยะไกล และโหลดการตั้งค่าใหม่สำหรับเซิร์ฟเวอร์ MySQL เมื่อคุณทำเสร็จแล้ว ให้ทดสอบฐานข้อมูลของคุณโดยเรียกใช้:

sudo mysql

คำสั่งข้างต้นจะเปิดคอนโซล MySQL เชื่อมต่อกับฐานข้อมูล MySQL เป็น ราก ผู้ใช้ คุณจะเห็นผลลัพธ์เช่นนี้:

เอาท์พุท: ยินดีต้อนรับสู่มอนิเตอร์ MySQL คำสั่งลงท้ายด้วย ; หรือ \g รหัสการเชื่อมต่อ MySQL ของคุณคือ 10 เวอร์ชันของเซิร์ฟเวอร์: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) ลิขสิทธิ์ (c) 2000, 2020, Oracle และ/หรือบริษัทในเครือ สงวนลิขสิทธิ์. Oracle เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle Corporation และ/หรือบริษัทในเครือ ชื่ออื่นๆ อาจเป็นเครื่องหมายการค้าของเจ้าของที่เกี่ยวข้อง พิมพ์ 'ช่วย' หรือ '\h' เพื่อขอความช่วยเหลือ พิมพ์ '\c' เพื่อล้างคำสั่งอินพุตปัจจุบัน mysql>

คุณอาจสังเกตเห็นว่าคุณไม่จำเป็นต้องป้อนรหัสผ่านที่คุณตั้งไว้สำหรับผู้ใช้ root ของ MySQL นั่นเป็นเพราะวิธีการรับรองความถูกต้องเริ่มต้นสำหรับผู้ใช้ root ของ MySQL ที่เป็นผู้ดูแลระบบคือ caching_sha2_authentication แทน mysql_native_password วิธีที่ใช้รหัสผ่านในการเข้าสู่ระบบ

ดังนั้นตามค่าเริ่มต้น คุณสามารถเข้าสู่ระบบในฐานะผู้ใช้รูท MySQL ด้วย . เท่านั้น sudo ผู้ใช้ที่เปิดใช้งานซึ่งทำหน้าที่เป็นความปลอดภัยเพิ่มเติมสำหรับเซิร์ฟเวอร์ MySQL แต่ไลบรารี MySQL PHP ไม่รองรับ caching_sha2_authentication กระบวนการ. เลยต้องใช้ mysql_native_password เมื่อเราสร้างผู้ใช้ใหม่สำหรับ Laravel เนื่องจากใช้รหัสผ่านเพื่อเชื่อมต่อและโต้ตอบกับฐานข้อมูล

สร้างผู้ใช้ MySQL & ฐานข้อมูลใหม่

ถือเป็นแนวทางปฏิบัติที่ดีเสมอที่จะสร้างผู้ใช้ใหม่และฐานข้อมูลเฉพาะสำหรับแอปพลิเคชันของคุณ แทนที่จะใช้ผู้ใช้รูท MySQL และฐานข้อมูลทดสอบ ดังนั้นเราจะตั้งค่าผู้ใช้ MySQL ใหม่ชื่อ laravel_user และฐานข้อมูลที่เรียกว่า laravel. หากคุณได้ปฏิบัติตามบทช่วยสอนจนถึงจุดนี้ คุณควรเปิดคอนโซล MySQL เพื่อสร้างผู้ใช้ชื่อ laravel_user เรียกใช้แบบสอบถามต่อไปนี้ในคอนโซล MySQL:

บันทึก: แทนที่ ทดสอบผ่าน ในแบบสอบถาม MySQL ด้านล่างด้วยรหัสผ่านที่คาดเดายาก

สร้างผู้ใช้ 'laravel_user'@'%' ระบุด้วย mysql_native_password โดย 'testpass';

จากนั้นสร้างฐานข้อมูลชื่อ laravel สำหรับแอปพลิเคชัน Laravel ของเราโดยเรียกใช้แบบสอบถามนี้:

สร้างฐานข้อมูล laravel;

เฉพาะผู้ใช้ root ของ MySQL เท่านั้นที่มีสิทธิ์เข้าถึง laravel ฐานข้อมูลที่สร้างขึ้นใหม่ ให้สิทธิ์ทั้งหมดบน laravel ฐานข้อมูลไปยัง laravel_user โดยการวิ่ง:

ให้สิทธิ์ laravel ทั้งหมด* ถึง 'laravel_user'@'%';

ตอนนี้เรามีผู้ใช้ MySQL ใหม่และฐานข้อมูลแล้ว ออกจากคอนโซล MySQL โดยเรียกใช้:

ออก;

ทดสอบผู้ใช้ MySQL ใหม่ของคุณโดยลงชื่อเข้าใช้คอนโซล MySQL โดยเรียกใช้คำสั่งนี้ในเทอร์มินัล:

mysql -u laravel_user -p

สังเกต -p ตั้งค่าสถานะในคำสั่ง มันจะพร้อมท์ให้คุณใส่รหัสผ่านที่คุณใช้ขณะสร้าง laravel_user (ทดสอบผ่าน ในแบบสอบถาม) หลังจากที่คุณได้เข้าสู่ระบบในคอนโซล MySQL เป็น laravel_user, ยืนยันว่าผู้ใช้สามารถเข้าถึง laravel ฐานข้อมูลโดยเรียกใช้:

แสดงฐานข้อมูล;
เอาท์พุท: +--------------------+ | ฐานข้อมูล | +--------------------+ | laravel | | information_schema | +--------------------+ 2 แถวในชุด (0.01 วินาที)

ผลลัพธ์ข้างต้นยืนยันว่าผู้ใช้ MySQL laravel_user มีสิทธิ์เข้าถึงฐานข้อมูล laravel. ออกจากคอนโซล MySQL โดยใช้คำสั่ง ออก; แบบสอบถามเพื่อให้เราสามารถดำเนินการสร้างแอปพลิเคชัน DemoApp Laravel

การติดตั้ง Laravel

เฟรมเวิร์ก Laravel ใช้ Composer เพื่อดาวน์โหลดและจัดการการพึ่งพา ดังนั้น เราต้องติดตั้ง Composer บนเครื่อง Ubuntu 20.04 ก่อนจึงจะสามารถสร้างแอปพลิเคชัน Laravel ได้

ติดตั้งผู้แต่ง

Composer เป็นเครื่องมือจัดการการพึ่งพาสำหรับ PHP ซึ่งทำให้การติดตั้งและอัปเดตเฟรมเวิร์กและไลบรารี PHP ง่ายขึ้นมาก เราจะมาดูวิธีการติดตั้ง Composer อย่างรวดเร็วในบทช่วยสอนนี้ เพื่อให้เราสามารถใช้เพื่อดาวน์โหลดและจัดการเฟรมเวิร์ก Laravel

คุณต้องติดตั้งแพ็คเกจเพิ่มเติมบางอย่างที่ Composer ต้องการเพื่อให้ทำงานได้เช่น php-cli เพื่อเรียกใช้สคริปต์ PHP ในเทอร์มินัลและ เปิดเครื่องรูด เพื่อช่วย Composer แยกแพ็คเกจ ติดตั้งทั้งคู่โดยเรียกใช้:

sudo apt ติดตั้ง php-cli เปิดเครื่องรูด

จากนั้นในการติดตั้ง Composer ทั่วโลก ให้ดาวน์โหลดสคริปต์การติดตั้ง Composer ด้วย ขด และติดตั้งโดยใช้คำสั่งต่อไปนี้:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

สุดท้าย ตรวจสอบว่าผู้แต่งติดตั้งอย่างถูกต้องโดยการเรียกใช้:

นักแต่งเพลง
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / / / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.10.8 2020-06- 24 21:23:30 น. การใช้งาน: คำสั่ง [ตัวเลือก] [อาร์กิวเมนต์]

ผลลัพธ์นี้เป็นการยืนยันว่า Composer ทำงานอย่างถูกต้องบนเซิร์ฟเวอร์ Ubuntu 20.04 ของคุณ คุณสามารถเริ่มใช้งานเพื่อติดตั้งและจัดการ PHP framework และไลบรารี่ได้

สร้างแอปพลิเคชัน Laravel

เรามีทุกอย่างที่จำเป็นในการสร้างแอปพลิเคชัน Laravel บนเซิร์ฟเวอร์ Ubuntu 20.04 ของเราเกือบทั้งหมด ยกเว้นส่วนขยาย PHP บางส่วน ติดตั้งส่วนขยายที่ขาดหายไปโดยใช้คำสั่งต่อไปนี้:

sudo apt ติดตั้ง php-mbstring php-xml php-bcmath php-zip php-json

ตอนนี้ เราสามารถติดตั้ง Laravel และสร้างแอปพลิเคชัน Laravel ใหม่ได้ด้วยความช่วยเหลือของ Composer ขั้นแรก ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฮมไดเร็กทอรีของผู้ใช้ของคุณ:

ซีดี ~

จากนั้นสร้างโปรเจ็กต์ Laravel ใหม่โดยใช้ Composer's สร้างโครงการ สั่งการ:

นักแต่งเพลง create-project --prefer-dist laravel/laravel LaravelApp

คำสั่งดังกล่าวจะสร้างโปรเจ็กต์ใหม่ที่เรียกว่า LaravelApp และจะติดตั้งและกำหนดค่า Laravel Framework ให้คุณด้วย คุณจะเห็นผลลัพธ์ที่คล้ายกับสิ่งนี้:

เอาท์พุท: การสร้างโปรเจ็กต์ "laravel/laravel" ที่ "./LaravelApp" การติดตั้ง laravel/laravel (v7.12.0) การติดตั้ง laravel/laravel (v7.12.0): กำลังดาวน์โหลด (100%) สร้างโปรเจ็กต์ใน /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" กำลังโหลดที่เก็บผู้แต่งพร้อมข้อมูลแพ็คเกจ กำลังอัปเดตการพึ่งพา (รวมถึง require-dev) การทำงานของแพ็คเกจ: การติดตั้ง 97 ครั้ง, การอัปเดต 0 ครั้ง, การลบ 0 ครั้ง การติดตั้ง voku/portable-ascii (1.5.2): กำลังดาวน์โหลด (100%) การติดตั้ง symfony/polyfill-ctype (v1 .17.1): กำลังดาวน์โหลด (100%) กำลังติดตั้ง phpoption/phpoption (1.7.4): กำลังดาวน์โหลด (100%) การติดตั้ง vlucas/phpdotenv (v4.1.7): กำลังดาวน์โหลด (100%) การติดตั้ง symfony/css-selector (v5.1.2) : กำลังดาวน์โหลด (100%) ....

เมื่อการติดตั้งเสร็จสิ้น ไปที่ไดเร็กทอรีรากของแอปพลิเคชันแล้วเรียกใช้ Laravel's ช่าง คำสั่งเพื่อตรวจสอบว่าส่วนประกอบทั้งหมดได้รับการติดตั้งอย่างถูกต้อง:

cd LaravelApp/ php artisan
เอาท์พุท: Laravel Framework 7.18.0 การใช้งาน: คำสั่ง [ตัวเลือก] [อาร์กิวเมนต์] ตัวเลือก: -h, --help แสดงข้อความช่วยเหลือนี้ -q, --เงียบ อย่าส่งข้อความใด ๆ -V, --version แสดงเวอร์ชันแอปพลิเคชันนี้ --ansi บังคับเอาท์พุต ANSI --no-ansi ปิดใช้งาน ANSI output -n, --no-interaction อย่าถามคำถามแบบโต้ตอบใด ๆ --env[=ENV] สภาพแวดล้อมที่คำสั่งควรทำงานภายใต้ -v|vv|vvv, --verbose Increase ความละเอียดของข้อความ: 1 สำหรับเอาต์พุตปกติ 2 สำหรับเอาต์พุต verbose และ 3 สำหรับ debug ....

ผลลัพธ์นี้ยืนยันว่าการติดตั้งสำเร็จและไฟล์ทั้งหมดอยู่ในตำแหน่งที่ถูกต้องและเครื่องมือบรรทัดคำสั่ง Laravel ทำงานอย่างถูกต้อง อย่างไรก็ตาม เรายังต้องกำหนดค่าแอปพลิเคชันเพื่อตั้งค่าฐานข้อมูลและการตั้งค่าอื่นๆ อีกสองสามรายการ

กำหนดค่าแอปพลิเคชัน Laravel

ไฟล์คอนฟิกูเรชัน Laravel อยู่ในไดเร็กทอรีชื่อ config ภายในไดเร็กทอรีรากของแอปพลิเคชัน นอกจากนี้ เมื่อเราติดตั้ง Laravel ผ่าน Composer จะสร้างไฟล์สภาพแวดล้อมที่เรียกว่า '.env' ในไดเร็กทอรีรากของแอปพลิเคชัน ไฟล์สภาพแวดล้อมประกอบด้วยการกำหนดค่าเฉพาะสภาพแวดล้อมและมีความสำคัญเหนือการตั้งค่าในไฟล์การกำหนดค่าปกติที่อยู่ภายในไดเร็กทอรี config

หมายเหตุ: ไฟล์การกำหนดค่าสภาพแวดล้อมมีข้อมูลที่ละเอียดอ่อนเกี่ยวกับเซิร์ฟเวอร์ของคุณ เช่น รหัสผ่านฐานข้อมูล คีย์แอปพลิเคชัน Laravel เป็นต้น ดังนั้นจึงไม่ควรแชร์แบบสาธารณะ

ตอนนี้เราจะแก้ไข .env ไฟล์เพื่อเปลี่ยนการกำหนดค่าและเพิ่มข้อมูลรับรองฐานข้อมูลลงไป เปิดไฟล์โดยใช้โปรแกรมแก้ไขนาโนโดยเรียกใช้:

นาโน .env

มีตัวแปรการกำหนดค่ามากมายในนี้ .env ไฟล์. เราไม่จำเป็นต้องเปลี่ยนแต่ละรายการ เนื่องจาก Composer ได้กำหนดการตั้งค่าส่วนใหญ่โดยอัตโนมัติ ดังนั้น นี่คือรายการของตัวแปรคอนฟิกูเรชันหลักบางตัวที่คุณต้องรู้เกี่ยวกับ:

  • APP_NAME: ชื่อแอปพลิเคชันที่ใช้สำหรับการแจ้งเตือนและข้อความ ดังนั้นเราจะตั้งค่าเป็น 'LaravelApp'
  • APP_ENV: ตัวแปรนี้ใช้เพื่อระบุสภาพแวดล้อมของแอปพลิเคชันปัจจุบัน สามารถตั้งค่าเป็นสภาพแวดล้อมภายใน การพัฒนา การทดสอบ หรือการผลิตได้ เราจะตั้งค่าให้อยู่ในสภาพแวดล้อมการพัฒนาในตอนนี้
  • APP_KEY: รหัสแอปพลิเคชันที่ไม่ซ้ำที่ใช้ในการสร้างเกลือและแฮชสำหรับเว็บแอป มันถูกสร้างขึ้นโดยอัตโนมัติเมื่อคุณติดตั้ง Laravel ผ่าน Composer ดังนั้นจึงไม่จำเป็นต้องเปลี่ยนแปลงสิ่งนี้
  • APP_DEBUG: สามารถตั้งค่าเป็น true หรือ false ขึ้นอยู่กับว่าคุณต้องการแสดงข้อผิดพลาดในฝั่งไคลเอ็นต์หรือไม่ ตั้งค่าเป็นเท็จเมื่อคุณย้ายไปยังสภาพแวดล้อมการใช้งานจริง
  • APP_URL: URL ฐานหรือ IP สำหรับแอปพลิเคชัน เปลี่ยนเป็นชื่อโดเมนของคุณ ถ้าคุณมีหนึ่งชื่อสำหรับแอป Laravel ของคุณ มิฉะนั้น ให้ไม่ต้องถูกแตะต้องในตอนนี้
  • DB_DATABASE: ชื่อของฐานข้อมูลที่คุณต้องการใช้กับแอปพลิเคชัน Laravel เราจะใช้ฐานข้อมูล MySQL 'laravel' ที่เราสร้างขึ้นขณะกำหนดค่า MySQL
  • DB_USERNAME: Username เพื่อเชื่อมต่อกับฐานข้อมูล เราจะใช้ผู้ใช้ MySQL 'laravel_user' ที่เราสร้างขึ้น
  • DB_PASSWORD: รหัสผ่านเพื่อเชื่อมต่อกับฐานข้อมูล
 APP_NAME= LaravelApp APP_ENV= การพัฒนา APP_KEY= base64:Application_unique_key APP_DEBUG=จริง APP_URL= //domain_or_IP LOG_CHANNEL=สแต็ค DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= ทดสอบผ่าน

ทำการเปลี่ยนแปลงกับ .env ไฟล์ตามลำดับและเมื่อคุณแก้ไขเสร็จแล้วให้บันทึกและออกจากไฟล์โดยใช้ CTRL+X แล้วกด Y และกด Enter เพื่อยืนยัน ตอนนี้ สิ่งที่เหลืออยู่ก็คือการกำหนดค่าเซิร์ฟเวอร์ Apache และสร้างโฮสต์เสมือนสำหรับแอปพลิเคชัน Laravel ของเรา

การตั้งค่าเว็บเซิร์ฟเวอร์ Apache

เราได้ติดตั้ง Laravel ในโฟลเดอร์ในเครื่องของโฮมไดเร็กทอรีของผู้ใช้แล้ว แม้ว่าจะใช้งานได้ดีสำหรับการพัฒนาในพื้นที่ ขอแนะนำให้ปฏิบัติให้มีไดเรกทอรีเว็บแอปพลิเคชันอยู่ใน /var/www. สาเหตุที่เราไม่ได้ติดตั้ง Laravel ใน /var/www โดยตรงเพราะเป็นเจ้าของโดยรูทและไม่ควรใช้ Composer กับ sudo.

ดังนั้นใช้ mv คำสั่งย้ายโฟลเดอร์แอปพลิเคชัน Laravel และเนื้อหาไปที่ /var/www:

sudo mv ~/Laravel/ /var/www

ผู้ใช้เป็นเจ้าของไดเร็กทอรี LaravelApp คุณจึงยังคงแก้ไขและเปลี่ยนแปลงไฟล์ได้โดยไม่ต้องใช้ปุ่ม sudo สั่งการ. แต่เว็บเซิร์ฟเวอร์ Apache ต้องการการเข้าถึงแคชและไดเร็กทอรีการจัดเก็บของแอปพลิเคชัน เนื่องจาก Laravel เก็บไฟล์ที่สร้างโดยแอปพลิเคชันไว้ เปลี่ยนเจ้าของโฟลเดอร์เหล่านี้เป็น www-data ผู้ใช้ที่ใช้ chown สั่งการ:

sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache

หลังจากเปลี่ยนเจ้าของไดเร็กทอรีเหล่านี้แล้ว ให้เปิดใช้งาน Apache's mod_rewrite เนื่องจาก Laravel กำหนดให้แปลง URL อย่างถูกต้องเพื่อให้ตีความโดยฟังก์ชันการกำหนดเส้นทางผ่าน .htaccess ไฟล์.

sudo a2enmod เขียนใหม่

ต่อไป เราต้องตั้งค่าโฮสต์เสมือนสำหรับแอปพลิเคชัน Laravel การกำหนดค่าโฮสต์เสมือนอยู่ที่ /etc/apache2/sites-available. เราจะแก้ไขไฟล์โฮสต์เสมือนเริ่มต้นเพื่อปรับใช้แอปพลิเคชัน Laravel เปิดไฟล์การกำหนดค่าโฮสต์เสมือนเริ่มต้นโดยใช้โปรแกรมแก้ไขนาโน:

sudo nano /etc/apache2/sites-available/000-default.conf

เปลี่ยนรูทเอกสารจาก /var/www/html ถึง /var/www/LaravelApp/public และเพิ่มข้อมูลโค้ดต่อไปนี้ใต้บรรทัด DocumentRoot:

 AllowOverride All 

ของคุณ 000-default.conf ควรมีลักษณะเช่นนี้ในขณะนี้โดยมีความคิดเห็นเล็กน้อย

 ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน 

รีสตาร์ทเว็บเซิร์ฟเวอร์ Apache โดยรันคำสั่งต่อไปนี้:

sudo systemctl รีสตาร์ท apache2

ไปที่เบราว์เซอร์ของคุณและพิมพ์ที่อยู่ IP ของเซิร์ฟเวอร์ Ubuntu 20.04 ของคุณ คุณจะเห็นหน้าเริ่มต้น Laravel แทนที่จะเป็นหน้าต้อนรับเริ่มต้นของ Apache

สมมติว่าคุณได้ทำตามคำแนะนำนี้แล้ว คุณควรมีแอปพลิเคชัน Laravel ที่ใช้งานได้กับฐานข้อมูล MySQL ชื่อ laravel สำหรับมัน. จากจุดนี้ คุณสามารถเริ่มพัฒนาแอปพลิเคชัน Laravel ได้ด้วยตัวเอง หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเฟรมเวิร์ก Laravel และการใช้งาน โปรดไปที่หน้าเอกสาร Laravel