Yii

提供: KZK memo wiki
移動: 案内検索

Yiiを使ってみようとインストールしたときのメモ。あくまでメモ。

前提

  • 作業開始のディレクトリは~/laboとする。
$ pwd
/home/userName/labo
  • yiiインストール作業完了後は~/labo/yiiで作業とする。
$ pwd
/home/userName/labo/yii


インストール

yiiのダウンロードから設置まで

  1. yiiをダウンロードします。
    • version 1.1.12
  2. ダウンロードしたファイルを解凍する。
  3. ディレクトリ名称をyiiに変更する。
$ wget http://yii.googlecode.com/files/yii-1.1.12.b600af.tar.gz
$ tar xvf yii-1.1.12.b600af.tar.gz
$ mv yii-1.1.12.b600af.tar.gz yii


apacheの設定から再起動

  • virtual host の設定
    • /etc/apache2/sites-available/yii
<VirtualHost *:80>
DocumentRoot /home/userName/labo/yii
<Directory /home/userName/labo/yii>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Order allow,deny
	allow from all
</Directory>
 
ErrorLog /var/log/apache2/error-yii.log
 
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
 
LogLevel warn
CustomLog /var/log/apache2/access-yii.log combined
 
RewriteLog "/tmp/rewritelog-yii.log"
RewriteLogLevel 9
  • 有効化
$ sudo a2ensite yii
$ sudo service apache2 restart

接続確認

Yiiアプリケーション作成

Yiiのチュートリアル 初めてのYiiアプリケーションの作成 を元にtestdriveを作成する。

準備

DocumentRoot作成から変更まで

現在yiiのディレクトリがDocumentRootとなっているため。アプリケーション公開用のディレクトリを作成し、変更する。

  • webroot作成
$ pwd
/home/userName/labo/yii
$ mkdir webroot
$ cd webroot
  • apache virtual-hostの再設定
<VirtualHost *:80>
DocumentRoot /home/userName/labo/yii/webroot
<Directory /home/userName/labo/yii/webroot>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride All
	Order allow,deny
	allow from all
</Directory>
 
ErrorLog /var/log/apache2/error-yii.log
 
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
 
LogLevel warn
CustomLog /var/log/apache2/access-yii.log combined
 
RewriteLog "/tmp/rewritelog-yii.log"
RewriteLogLevel 9

apacheを再起動する。

  • webrootのパーミッション変更
    • groupをapacheユーザに変更
    • groupに実行権限を付加する。
$pwd
#> /home/userName/labo/yii
$ sudo chgrp -R www-data webroot
$ sudo chmod -R 775 webroot

testdrive

アプリケーションを作成する

  • yiicを実行する
$ pwd
/home/userName/labo/yii/webroot
$ php ../framework/yiic webapp testdrive
#> Create a Web application under '/home/userName/labo/yii/webroot/testdrive'? (yes|no) [no]:yes

設定する

  • webroot/testdrive/protected/config/main.php
    • データベース(sqliteの場合)
'db'=>array(
        'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),
// uncomment the following to use a MySQL database
/*
'db'=>array(
        'connectionString' => 'mysql:host=localhost;dbname=testdrive',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
),
*/
    • データベース(mysqlの場合)
      • mysqlでデータベースを作成しておく。
mysql> create database testdrive
      • schema.mysql.sqlを利用して実行
$ pwd
#> /home/userName/labo/yii/webroot/testdrive
$ mysql -u root testdrive < protected/data/schema.mysql.sql
      • sqliteの設定をコメントアウトする。1行目と5行目
      • mysqlの設定からコメントアウトを外す。
      • データベース名を設定する。8行目
  1. /*
  2. 'db'=>array(
  3.         'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
  4. ),
  5. */
  6. // uncomment the following to use a MySQL database
  7. 'db'=>array(
  8.         'connectionString' => 'mysql:host=localhost;dbname=testdrive',
  9.         'emulatePrepare' => true,
  10.         'username' => 'root',
  11.         'password' => '',
  12.         'charset' => 'utf8',
  13. ),
  • giiを有効にする。
    • コメントアウトを削除する。3行目と10行目
    • パスワードの設定をする。6行目
    • ipFiltersを確認する。ローカルホスト上で作成していない場合は、自身のIPを追加する必要がある。8行目
  1. 'modules'=>array(
  2.         // uncomment the following to enable the Gii tool
  3.  
  4.         'gii'=>array(
  5.                 'class'=>'system.gii.GiiModule',
  6.                 'password'=>'Enter Your Password Here',
  7.                 // If removed, Gii defaults to localhost only. Edit carefully to taste.
  8.                 'ipFilters'=>array('127.0.0.1','::1'),
  9.         ),
  10.  
  11. ),

blog comments powered by Disqus