Env
- CodeIgniter 4
- Ubuntu 20.04
- LAMP
- PHP 7.4
- domain site => www.mysite.com
- path web root => /var/www/html
แบบ 1 download zip
- ไปที่ https://codeigniter.com/download
- เราจะได้ zip file มาแบบนี้ framework-4.1.4.zip (ณ วันที่ 12 ต.ค. 64 ได้เวอร์ชั่นนี้)
- ใน zip file จะมี folder เดียวชื่อประมาณ framework-4.1.4 และใน folder นี้ก็จะมี subfolder และ file ประมาณภาพตัวอย่าง
- จากนั้นให้คัดลอกไฟล์ framework-4.1.4 ไปวางไว้ web root path
- rename framework-4.1.4 เป็น ci4
แบบที่ 2 ใช้ composer
- เปลี่ยนพาธไป ที่ web root path ก่อน
$ cd /var/www/html
- จากนั้นใช้คำสั่งนี้และลงท้ายด้วยชื่อ project folder เรา ในที่นี้คือ ci4
$ composer create-project codeigniter4/appstarter ci4
ทั้ง 2 วิธีติดตั้งนี้ พาธเว็บเมื่อเข้าใช้งานก็จะเป็น subfolder และ เข้าพาธแบบนี้ www.mysite.com/ci4
- ในพาธระดับเดียวกับ folder app จะมีไฟล์ env อยู่ให้เรา คัดลอกเนื้อหาในไฟล์ แล้วสร้างไฟล์ใหม่ชื่อ .env สำหรับ คอนฟิกของระบบ ตัวอย่างเช่น config environment ที่ต้องใช้จะมีหลักๆ 2 แบบ ที่ชอบใช้ คือ development เอาไว้แสดง error ว่าอยู่บรรทัดใหน และ เมื่อพัฒนาเสร็จก็เปลี่ยนโหมดเป็น production เอาไว้ปิดบังบั๊ก ประมาณนั้น
# CI_ENVIRONMENT = productionCI_ENVIRONMENT = development
- จากนั้นเปลี่ยน permission folder ci4/writable เป็น 777
$ sudo chmod -R 777 /var/www/html/ci4/writable
- จากนั้นสร้างไฟล์ .htaccess ใน ci4
$ sudo nano /var/www/html/ci4/.htaccess
- และเพิ่มค่าแบบนี้
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
- ทดสอบเว็บทำงานได้หรือยัง โดยไปที่ www.mysite.com/ci4 หรือ www.mysite/ci4/public
เพิ่มเติม(แนะนำวิธีเพิ่มเติม)
- อีกวิธีทำ subfolder site โดยไม่ต้องสร้าง .htaccess ใหม่
- ให้เราทำโดย คัดลอก index.php และ .htaccess ใน public folder ออกมาไว้ใน ci4 เลย
- ให้อยู่ในระดับเดียวกับ app public folder เป็นต้น
- จากนั้นแก้ไขไฟล์ index.php ที่อยู่ใน ci4
// $pathsConfig = FCPATH . '../app/Config/Paths.php';
$pathsConfig = FCPATH . '/app/Config/Paths.php';
อีกเรื่องที่สำคัญคือ timezone ปรับให้เป็นของ thai เราด้วย
- app/Conifg/App.php
- เปลี่ยนจาก America/Chicago เป็น Asia/Bangkok
- ปัญหาที่เกิดถ้าเราไม่เปลี่ยน timezone เป็นของ thai เรา คือ php datediff จะตกไป 1 วันทันที
ปัญหาที่พบในการทำ subfolder ci4 ภายใต้ root
- ใน config httpd เราตั้งพาธ root เป็น /var/www/site.com/html/
- แต่เราดันเอา ci4 site เราไปวางไว้ที่ /var/www/site.com/ci4/ แบบนี้ การ route url ผิดเพี้ยนมากเลย
- ต้องเอา ci4 ไว้ใน /var/www/site.com/html/ci4 แบบนี้จะไม่มีปัญหา
- แต่ปัญหาทั้งหมดนี้จะหมดไป ถ้าเราตั้งค่า root folder ไปที่ ci4 folder เราเลย
Ref
- https://onlinewebtutorblog.com/complete-codeigniter-4-basics-tutorial/
- https://codeigniter4.github.io/userguide/installation/installing_composer.html
- https://www.positronx.io/codeigniter-crud-with-bootstrap-and-mysql-example/
- https://akrabat.com/running-slim-4-in-a-subdirectory/
- https://www.slimframework.com/docs/v4/start/web-servers.html
- https://www.codebee.co.th/labs/codeigniter-4-%e0%b8%a7%e0%b8%b4%e0%b8%98%e0%b8%b5%e0%b8%a5%e0%b8%9a-public-%e0%b8%ad%e0%b8%ad%e0%b8%81%e0%b8%88%e0%b8%b2%e0%b8%81-url/
- https://onlinewebtutorblog.com/codeigniter-4-session-library/
No comments:
Post a Comment