CakePHP 3 – Hướng dẫn cài đặt

Xin chào, bài đầu tiên của series CakePHP 3 sẽ là hướng dẫn cài đặt. Về môi trường thì ở phiên bản mới này yêu cầu của nó là:

  • HTTP Server.
  • PHP 5.6.0 hoặc cao hơn (PHP 7.2).
  • mbstring PHP extension
  • intl PHP extension
  • simplexml PHP extension

Ở phần hướng dẫn của mình tiếp tục sử dụng MySQL để là database nhá.

Nói thêm là mình cũng đang tìm hiểu và tìm tới đâu viết bài tới đó nên có khi còn sai nhá. Ai thấy sai thì hỗ trợ lại mình, mình cảm ơn và sẽ tiến hành sửa.

1. Cài đặt 

Cài đặt thì có 2 cách: cài đặt bằng công cụ Composer(nó rất được ưu thích hiện nay) đương nhiên yêu cầu là các bạn phải biết sử dụng nó và cách còn lại thì truyền thống cứ tải source về rồi đưa vào thư mục root, cấu hình host, và tiến hành chạy thôi.

Mình sẽ sử dụng cách truyền thống, đầu tiên tải về ở đây mình tải bản mới nhất ở thời điểm hiện tại là CakePHP 3.7.2, giải nén và đưa vào thư mục root, ở đây mình không chạy tên miền ảo luôn chạy trực tiếp với url là http://localhost:8888/cakephp_3_7_2, đương nhiên chắc chắn sẽ có lỗi xuất hiện.

2. Cấu hình

Xem qua các file và thư mục của source trước, nó khác nhiều so với phiên bản 2

/cakephp_3_7_2/
    bin/
    config/
    logs/
    plugins/
    src/
    tests/
    tmp/
    vendor/
    webroot/ (this directory is set as DocumentRoot)
    .gitignore
    .htaccess
    .travis.yml
    composer.json
    index.php
    phpunit.xml.dist
    README.md

Kiểm tra trong thư mục config có file app.php chưa, chưa có thì tạo file đó rồi copy nội dung trong file app.default.php vào, nếu có rồi thì mở lên. Tiến hành thay đổi các thông số như sau:

'Security' => [
'salt' => env('SECURITY_SALT', '__SALT__'),
],

thay đổi __SALT__ thành chuỗi nào khác bất kỳ.

Sau đó tìm đến đoạn cấu hình Datasources và tiến hành cấu hình database: gồm host, username, password, database. Sửa trong phần default của Datasources thôi nhá.

3. Tạo database: ở đây mình xin lấy database giống trên https://cakephp.org cho tiện.

Các bạn sử dụng phpmyadmin để tạo database có tên là cake_cms, sau đó tạo thêm cái table như bên dưới.


CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    email VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created DATETIME,
    modified DATETIME
);

CREATE TABLE articles (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    title VARCHAR(255) NOT NULL,
    slug VARCHAR(191) NOT NULL,
    body TEXT,
    published BOOLEAN DEFAULT FALSE,
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (slug),
    FOREIGN KEY user_key (user_id) REFERENCES users(id)
) CHARSET=utf8mb4;

CREATE TABLE tags (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(191),
    created DATETIME,
    modified DATETIME,
    UNIQUE KEY (title)
) CHARSET=utf8mb4;

CREATE TABLE articles_tags (
    article_id INT NOT NULL,
    tag_id INT NOT NULL,
    PRIMARY KEY (article_id, tag_id),
    FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
    FOREIGN KEY article_key(article_id) REFERENCES articles(id)
);

INSERT INTO users (email, password, created, modified)
VALUES
('[email protected]', 'sekret', NOW(), NOW());

INSERT INTO articles (user_id, title, slug, body, published, created, modified)
VALUES
(1, 'First Post', 'first-post', 'This is the first post.', 1, now(), now());

Ghi chú:

Tên bảng và cột trong database cũng giống như cakephp 2 đều có quy ước, nếu tuân theo quy ước đặt tên thì chúng ta sẽ tiết kiệm được time rất nhiều trong lập trình.

Đến đây thì các bạn có thể chạy project được rồi. Mình chạy với url: http://localhost:8888/cakephp_3_7_2

Xuất hiện như bên trên là chúng ta đã thành công cho Bài 1 của series Cakephp Framework 3.

Nếu có lỗi về thư mục tmplogs, thì tiến hành phân quyền lại 2 thư mục này để user có thể đọc và ghi nó nha.

Bài này mình xin kết thúc tại đây. Chúc thành công và cảm ơn.

[thongbao]

  1. Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
  2. Cảm ơn các bạn đã đọc.

[/thongbao]

[Cakephp 3] Bài 1 – Hướng dẫn cài đặt