Trung tâm lập trình Đào tạo lập trình Thực hành không giới hạn

Cài đặt Yii 2.0 trên Centos 7.2

20/04/2017 14:55

[Môi trường]

Ở đây tôi cài đặt Yii 2.0 trên Centos 7.2. Sử dụng lệnh sau để biết môi trường OS Linux.

[root@daotao.jujube.com.vn ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

[Điều kiện ban đầu]

Trước khi cài đặt Yii 2.0, bạn phải đảm bảo đã cài đặt MySQL, PHP, Apache. Nếu bạn chưa cài có thể tham khảo bài viết của tôi trên Blogspot. http://vtgdb.blogspot.com/2016/05/installation-mysql-php-apache.html

[Các bước cài đặt]

Phần 1: Cài đặt Composer

Bước 1: Download Composer. ( Đương nhiên cách cài đặt yêu cầu server đã kết nối được internet)

[root@daotao.jujube.com.vn ~]# curl -s http://getcomposer.org/installer | php 
All settings correct for using Composer
Downloading...

Composer (version 1.4.1) successfully installed to: /root/composer.phar
Use it: php composer.phar

[root@daotao.jujube.com.vn ~]# ls
composer.phar

 

Bước 2: Move composer.phar đến thư mục /usr/local/bin/composer
[root@daotao.jujube.com.vn ~]# mv composer.phar /usr/local/bin/composer

 

Phần 2: Cài đặt các gói còn thiếu 

Bước 1: Kiểm tra Git đã cài trên OS chưa

Khi cài đặt Yii 2.0, bắt buộc OS của bạn phải cài git. Ví dụ ở đây tôi kiểm tra bằng lệnh sau thì thấy rằng OS vẫn chưa cài GIT.

[root@daotao.jujube.com.vn ~]# rpm -qa | grep git
[root@daotao.jujube.com.vn ~]# 

Bước 2: Cài đặt Git

Để cài đăt Git chỉ cần bạn chạy lệnh sau:

[root@daotao.jujube.com.vn html]# yum install git

Sau khi cài xong bạn kiểm tra lại gói Git bằng lệnh sau:

[root@daotao.jujube.com.vn ~]# rpm -qa | grep git
linux-firmware-20150904-43.git6ebf5d5.el7.noarch
net-tools-2.0-0.17.20131004git.el7.x86_64
git-1.8.3.1-6.el7_2.1.x86_64
crontabs-1.11-6.20121102git.el7.noarch
php-pecl-memcache-3.0.9-0.7.20161124gitdf7735e.el7.remi.7.1.x86_64

Phần 3: Cài đặt Yii 2.0

Ở đây, bạn có thể cài đặt Yii2 - app - basic hoặc cài đặt Yii2 - app - advance. Đối với tôi, tôi cài đặt cả 2. Lý do, tôi muốn hỏi Yii2 từ cơ bản đến nâng cao.

Bước 1: Cài đặt Yii2 -app - basic

Để cài đặt Yii2 - app - basic, tôi cd vào thư mục web public trên apache. Thư mục này trên máy tôi là /var/www/html. Vì tôi chưa cài gì trên này nên trong thư mục này đang trống.

[root@daotao.jujube.com.vn ~]# cd /var/www/html/

[root@daotao.jujube.com.vn html]# ls

[root@daotao.jujube.com.vn html]#

[root@daotao.jujube.com.vn html]# composer create-project --prefer-dist yiisoft/yii2-app-basic

Quá trình cài đặt sẽ hỏi Key Public từ Github. Thông thường nó sẽ bị lỗi như sau:

Could not fetch https://api.github.com/repos/jquery/jquery-dist/commits/9690801db01709bfbff5f977d07fb7cc14472908, please create a GitHub OAuth token to go over the API rate limit
Head to https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+vps.sdns.vn+2017-04-18+0729
to retrieve a token. It will be stored in "/root/.config/composer/auth.json" for future use by Composer.

 

 

Lúc này, bạn copy đường dẫn  https://github.com/settings/tokens/new?scopes=repo&description=Composer+on+vps.sdns.vn+2017-04-18+0729 từ đoạn lỗi trên paste vào trình duyệt, đăng nhập với tài khoản Github để lấy Key. Đương nhiêu nếu chưa có tài khoản thì bản phải đăng ký tài khoản Github rồi.

Sau khi đã paste Key thì nó sẽ báo thành công giống như sau:

Token (hidden): 
Token stored successfully.                                                                   Package operations: 59 installs, 0 updates, 0 removals    

Quá trình cài sẽ mất một số thời gian nhất định. Sau khi cài xong, bạn sẽ có một thư mục yii2-app-basic.

Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y
> yii\composer\Installer::postCreateProject
chmod('runtime', 0777)...done.
chmod('web/assets', 0777)...done.
chmod('yii', 0755)...done.
[root@daotao.jujube.com.vn html]# ls
yii2-app-basic
[root@daotao.jujube.com.vn html]# du -sh
437M    .
[root@daotao.jujube.com.vn html]# cd yii2-app-basic/
[root@daotao.jujube.com.vn yii2-app-basic]# ls
assets           commands       composer.lock  controllers  mail    README.md         runtime  vendor  web  yii.bat
codeception.yml  composer.json  config         LICENSE.md   models  requirements.php  tests    views   yii

Chúc mừng bạn, đến đây bạn đã cài đặt xong Yii2 - app - Basic. Để dễ nhớ, tôi đổi tên thư mục thành basic và truy cập địa chỉ:

[root@daotao.jujube.com.vn html]# mv yii2-app-basic/ basic

Đến đây, tôi chỉ cần truy cập địa chỉ: 

http://YOUR_IP/basic/web/

Bước 2: Cài đặt Yii2 - app - Advance

[root@daotao.jujube.com.vn html]# composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced

Sau khi cài đặt xong, bạn sẽ có thêm thư mục advanced

Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]? Y
[root@daotao.jujujube.com.vn html]# ls
advanced  basic
[root@daotao.jujujube.com.vn html]# du -sh *
437M    advanced
441M    basic

[root@daotao.jujujube.com.vn html]# cd advanced/
[root@daotao.jujujube.com.vn advanced]# ls
backend          common         composer.lock  docs          frontend  init.bat    README.md         vagrant      vendor
codeception.yml  composer.json  console        environments  init      LICENSE.md  requirements.php  Vagrantfile  yii.bat

Bước 3: Cấu hình Yii2 - app - advance

[root@daotao.jujube.com.vn advanced]# php init
Yii Application Initialization Tool v1.0

Which environment do you want the application to be initialized in?

  [0] Development
  [1] Production

  Your choice [0-1, or "q" to quit] 0

  Initialize the application under 'Development' environment? [yes|no] yes

  Start initialization ...

   generate yii
   generate yii_test
   generate console/config/params-local.php
   generate console/config/main-local.php
   generate backend/web/index.php
   generate backend/web/index-test.php
   generate backend/config/params-local.php
   generate backend/config/main-local.php
   generate backend/config/test-local.php
   generate common/config/params-local.php
   generate common/config/main-local.php
   generate common/config/test-local.php
   generate frontend/web/index.php
   generate frontend/web/index-test.php
   generate frontend/config/params-local.php
   generate frontend/config/main-local.php
   generate frontend/config/test-local.php
   generate yii_test.bat
   generate cookie validation key in backend/config/main-local.php
   generate cookie validation key in frontend/config/main-local.php
      chmod 0777 backend/runtime
      chmod 0777 backend/web/assets
      chmod 0777 frontend/runtime
      chmod 0777 frontend/web/assets
      chmod 0755 yii
      chmod 0755 yii_test

  ... initialization completed.

[root@daotao.jujube.com.vn advanced]# 

Bước 4: Cấu hình Yii 2.0, và tạo CSDL cho Yii

[root@daotao.jujube.com.vn html]# cd advanced/
[root@daotao.jujube.com.vn advanced]# cat common/config/main-local.php 
<?php
return [
    'components' => [
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=localhost;dbname=daotao',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8',
        ],
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'viewPath' => '@common/mail',
            // send all mails to a file by default. You have to set
            // 'useFileTransport' to false and configure a transport
            // for the mailer to send real emails.
            'useFileTransport' => true,
        ],
    ],
];

[root@daotao.jujube.com.vn mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.73-community MySQL Community Server (GPL)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database daotao default character set utf8 default collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> 

[root@daotao.jujube.com.vn advanced]# ./yii migrate
Yii Migration Tool (based on Yii v2.0.11.2)

Creating migration history table "migration"...Done.
Total 1 new migration to be applied:
    m130524_201442_init

Apply the above migration? (yes|no) [no]:yes
*** applying m130524_201442_init
    > create table {{%user}} ... done (time: 0.854s)
*** applied m130524_201442_init (time: 0.869s)


1 migration was applied.

Migrated up successfully.

Các bước trên đã tạo CSDL daotao, và tạo bảng user cho Yii2 - app - advance.

Bây giờ bạn vào trình duyệt đánh địa chỉ sau để kiểm tra:

Front-end:

http://YOUR_IP:8080/advanced/frontend/web/

Back-end:

http://YOUR_IP/advanced/frontend/web/

 

Chúc bạn thành công!

Nếu có vấn đề gì mời bạn comment phía dưới nhé. Cảm ơn!