Friday, October 8, 2021

เริ่มต้นกับ Slim Framework 4 : การติดตั้งบน Ubuntu 20.04

  • Slim framework คือ RESTFul php framework ตัวหนึ่ง ที่ลองหัดติดตั้งและใช้งานครั้งแรก
  • เอาไว้เขียน RESTFul service ไว้ใช้งานเอง
  • Slim 4 ใช้ php 7.2++ นะคับ

Env

  • Slim 4
  • Ubuntu 20.04 + LAMP
  • apache enabled mod_rewrite
  • PHP 7.4.x
  • path doc root => /var/www/html
  • domain =>  www.mysite.com

การติดตั้งทำได้หลายวิธี แต่จะนำเสนอแค่ 2 วิธี

Method 1  downlaod zip file แตกไฟล์ใช้เลย

  • https://github.com/slimphp/Slim-Skeleton



  • จากภาพดาวน์โหลดมาจะได้ไฟล์ Slim...zip ในนั้นจะมี 1 folder
  • ให้แตกไฟล์ โดยเอา folder Slim-Skeleton-master ไปวางไว้ www root path
  • แล้วเปลี่ยนชื่อ folder ให้เป็นตามที่เราต้องการ เช่น myslim
  • เราจะได้ พาธอยู่ประมาณนี้ /var/www/html/myslim

Method 2 ด้วย composer

  • ในกรณีไม่มี composer ในระบบให้เราติดตั้งด้วยคำสั่งแบบนี้

$ curl -sS https://getcomposer.org/installer | php

$ mv composer.phar /usr/local/bin/composer

$ chmod +x /usr/local/bin/composer

  • หรือ สั้นๆ ง่ายๆ ก็ apt install ซะ

$ sudo apt install composer

  • จากนั้นติดตั้ง Slim ด้วยคำสั่งประมาณนี้

composer create-project slim/slim-skeleton [my-app-name]

  • ตัวอย่างเช่น

$ cd /var/www/html

$ composer create-project slim/slim-skeleton myslim

  • เราจะได้ folder ตามนี้ /var/www/html/myslim

ทดสอบระบบติดตั้งเรียบร้อย

  • โดยเข้าไปที่ www.mysite.com/myslim จะได้ผลประมาณนี้ 


  • หรือต้องเข้าไป public แบบนี้หว่า www.mysite.com/myslim/public จะได้ประมาณนี้
  • แก้ไขเวลาเข้า public ให้แสดงผลได้ก่อนแล้วกัน โดย $app->setBasePath('/[myapp/public]');
  • ในไฟล์ public/index.php หรือ app/routes.php
  • ใน public/index.php เพิ่ม $app->setBasePath('/myslim/public'); ประมาณบรรทัด 39
  • หรือใน app/routes.php เพิ่ม $app->setBasePath('/myslim/public'); ประมาณบรรทัด 12

  • เพิ่มที่ไฟล์ใด ไฟล์หนึ่งก็พอนะ
  • ที่นี้ลองเข้า www.mysite.com/myslim/public
  • ขึ้นแบบนี้แสดงว่าใช้งานได้แล้ว ให้เพิ่ม method get post put ใน app/routes.php ได้เลย
  • แต่ตอนเรียกใช้งานต้องเรียผ่าน myapp/public นี่แหละ ไม่ค่อยเข้าท่าเลย
  • ซึ่งเราแก้ไขโดยเพิ่ม .htaccess ภายใต้ myapp ของเราในที่นี้คือ myslim/.htaccess และเพิ่มคอนฟิกแบบนี้ในไฟล์นี้
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
  • จากนั้นแก้ไข $app->setBasePath('/myslim/public'); แก้เป็น $app->setBasePath('/myslim');
  • เรียกใช้งานโดย www.mysite.com/myslim/ อันนี้เค้าเรียก ทำเป็น subdirectory
Ref

  • https://app.wftutorials.com/Getting-started-with-the-PHP-Slim-framework-version-4
  • https://www.slimframework.com/docs/v4/start/web-servers.html

No comments:

Post a Comment

Popular Posts