บางครั้งการกำหนดสิทธ์ (Permission) ก็อาจจะเป็นปัญหาที่มือใหม่หลาย ๆ คนต้องเจอ เช่น อัพโหลดไฟล์ขึ้นไปที่ Production แล้ว ทำไมยังรันไม่ได้ แถมยังไม่ยอมแสดง Error อีก วันนี้เราจะมาลอง Deploy Yii2 Prject ลงบน VPS ของ Digital Ocean กันครับ (LAMP Stack)
ขั้นตอนการอัพโหลดไฟล์
การอัพโปรเจคอาจจะใช้การอัพโหลดผ่าน FTP หรือใช้ Git Clone ก็ได้นะครับ แต่ในตัวอย่างนี้จะเป็นการอัพผ่าน FTP โดยใช้ File Zilla นะครับ
ขั้นตอนการกำหนดสิทธิ์
- ทำการ login เขา server ผ่าน command line
- ทำการ Change Directory ไปยัง Root ของ Project Yii2
- ใช้คำสั่งสำหรับกำหนดสิทธิ์ Directory ทั้งหมดให้เป็น 755 ด้วยคำสั่ง
1find . -type d -exec chmod 0755 {} \; - ใช้คำสั่งสำหรับกำหนดสิทธิ์ File ทั้งหมดให้เป็น 644 ด้วยคำสั่ง
1find . -type f -exec chmod 0644 {} \; - ใช้คำสั่งสำหรับเปลี่ยนแปลง Owner ไปเป็น www-data (กรณีใช้ Apache) ด้วยคำสั่ง
1chown -R www-data:www-data ../projectname/
โดยที่ projectname คือชื่อ directory ที่เก็บโปรเจค Yii2 ของเราไว้นะครับ - ทำการสร้างไฟล์ .htaccess ใน Directory /web ด้วยคำสั่ง
1sudo nano web/.htaccess - ให้ทำการ Copy โค้ดด้านล่างไปวาง จากนั้นกด CTRL+X และพิมพ์ Y จากนั้นกด Enter เป็นอันเรียบร้อยครับ
1234567RewriteEngine on# If a directory or a file exists, use it directlyRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d# Otherwise forward it to index.phpRewriteRule . index.php - ทดสอบเข้าเว็บผ่าน Url domain/web
เนื้อหาทั้งหมดนี้ไม่ได้ตรวจสอบเรื่องความปลอดภัย และเป็นการทดลองทำบน Environment ของผมเองหากมีข้อผิดพลาดประการใดก็ต้องขออภัยด้วยนะครับ
0 Comments