เริ่มต้นกับ CakePHP

ผมเขียน entry นี้เพื่อที่จะเป็น tuturial เบื้องต้นให้กับ entry เกี่ยวกับ Access control list อีกที โดยดัดแปลง เพิ่มต้มมาจาก http://blog.vee-u.com/2008/02/23/cakephp_acl/ มาเป็นส่วนมาก

เริ่มจากเราไป download CakePHP 1.2.6311B มาจาก http://cakeforge.org/frs/download.php/595/cake_1.2.0.6311-beta.tar.bz2 แล้วก็เอาแกะหีบห่อด้วยคำสั่ง tar xjvf cake_1.2.0.6311-beta.tar.bz2 เราก็จะได้ folder (directory) ชื่อ cake_1.2.0.6311-beta ขึ้นมา. เพื่อที่จะได้เข้าไปใช้ง่ายๆ เราก็สามารถเปลี่ยนชื่อ folder ก่อนได้ เช่น เปลี่ยนไปเป็นชื่อ my_project ด้วยคำสั่ง mv cake_1.2.0.6311-beta my_project เป็นต้น.

เวลาลง CakePHP แล้วต้องเปลี่ยนค่า Salt คืออะไรก็ไม่รู้อะใน app/config/core.php


Configure::write('Security.salt', 'เปลี่ยนค่าตรงนี้');  

แล้วก็ตั้งค่า database ใน app/config/database.php แต่ว่าทีแรกไม่มีไฟล์ database.php เราก็ copy มาจาก database.php.default  (ด้วยคำสั่ง cp app/config/database.php.default app/config/database.php) ได้เลย แล้วก็แก้ค่าข้างในเอา. ถ้าไม่มี database ก็อาจจะไปสร้างรอไว้ก่อน เช่น สร้าง database ด้วยคำสั่ง mysql -umyuser -pmypassword -e ‘create database my_project’ เป็นต้น

class DATABASE_CONFIG {
   var $default = array(
     'driver' => 'mysql',
     'persistent' => false,
     'host' => 'localhost',
     'port' => '',
     'login' => 'ชื่อผู้ใช้ของ database',
     'password' => 'password',
     'database' => 'ชื่อ database',
     'schema' => '',
     'prefix' => '',
     'encoding' => ''
   );
   ...
}

จากนั้นถ้าจะใช้ acl ก็ต้องแบบแก้ source code นิดหน่อย ที่ดูแล้วคงเป็น bug (ที่ผม CakePHP ที่ผมนำมาใช้เป็น beta version ด้วย) แก้แบบไม่ยากไปตามเว็บนี้ http://seeknstrike.net/archives/20
เพียงแต่ใส่ uses(’string’) เข้าไปในบรรทัดล่างจาก uses(’set’) ในไฟล์
cake/libs/model/datasources/dbo_source.php ตามนี้

uses('set');
uses('string'); // เพิ่มเข้าไป

ตอนนี้ code ส่วน CakePHP ก็พร้อมแล้ว. แต่ว่า Apache กับ Ubuntu ก็ต้องแก้ๆ หน่อย. ปกติ mod_rewrite ที่จำเป็นสำหรับ CakePHP มากๆ ไม่ได้ถูก enable มาให้แต่แรกเราก็เลยต้องไปแก้. วิธีแก้สามารถอ่านเพิ่มเติมได้ที่ blog entry http://bact.blogspot.com/2008/04/enable-modrewrite-in-apache.html ของ bact. อย่างไรก็ตามผมก็จะเขียนสั้นๆ เท่าที่ผมเข้าใจไว้ด้วย.

เริ่มจากสั่ง sudo a2enmod rewrite

a2enmod เป็นคำสั่งของ Debian ที่ Ubuntu ก็รับมาด้วย เอาไว้แก้ configuration ให้ Apache เรียก mod_rewrite ขั้นตอนต่อไปก็แก้ไฟล์  /etc/apache2/sites-enabled/000-default ใน tag  <Directory /var/www/> …. </Directory> มีอยู่บรรทัดนึงเขียนว่า  AllowOverride None เราก็ไปแก้เป็น AllowOverride All เสีย. เพื่อที่ CakePHP จะได้ควบคุม mod_rewrite จากไฟล์ .htaccess ได้. หลังจากนั้นก็ restart Apache ด้วยคำสั่ง sudo /etc/init.d/apache restart ก็น่าจะพอใช้ได้.

หลังจากนั้นก็ย้าย my_project เข้าไปใน /var/www ( ด้วยคำสั่ง mv my_project /var/www ). และแก้ folder ของ tmp เสียหน่อย ด้วยคำสั่ง sudo chown -R www-data:www-data /var/www/my_project/app/tmp

เท่านี้ก็น่าจะพอเปิดเว็บดูได้แล้ว โดยเข้าไปดูที่ url: http://localhost/my_project ได้เลย

ถ้าไม่มีข้อความเตือนความผิดพลาด ก็เป็นสัญญาณบอกแล้วว่าพร้อมที่จะเริ่มใช้ CakePHP ในขั้นต่อไปแล้ว😉.

ป.ล. entry หายไปซะงั้นงงเลย T_T ต้องกลับมา post ใหม่

3 thoughts on “เริ่มต้นกับ CakePHP

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s