このセクションでは、開始点となるスケルトンアプリケーションを作成する方法について説明します。簡単にするために、Webサーバーのドキュメントルートは/wwwroot
であり、対応するURLはhttp://www.example.com/
であると想定します。
まず、Yiiフレームワークをインストールします。Yiiのリリースファイル(バージョン1.1.1以上)のコピーをwww.yiiframework.comから入手し、/wwwroot/yii
ディレクトリに解凍します。/wwwroot/yii/framework
ディレクトリがあることを確認してください。
ヒント: Yiiフレームワークは、Webフォルダの下だけでなく、ファイルシステムの任意の場所にインストールできます。その
framework
ディレクトリには、すべてのフレームワークコードが含まれており、Yiiアプリケーションをデプロイする際に必要な唯一のフレームワークディレクトリです。Yiiの単一のインストールは、複数のYiiアプリケーションで使用できます。
Yiiをインストールしたら、ブラウザウィンドウを開き、URL http://www.example.com/yii/requirements/index.php
にアクセスします。Yiiリリースで提供されている要件チェッカーが表示されます。ブログアプリケーションでは、Yiiに必要な最小要件に加えて、SQLiteデータベースにアクセスできるように、pdo
とpdo_sqlite
の両方のPHP拡張機能を有効にする必要があります。
次に、yiic
ツールを使用して、/wwwroot/blog
ディレクトリの下にスケルトンアプリケーションを作成します。yiic
ツールは、Yiiリリースで提供されているコマンドラインツールです。特定の反復的なコーディングタスクを減らすためにコードを生成するために使用できます。
コマンドウィンドウを開き、次のコマンドを実行します。
% /wwwroot/yii/framework/yiic webapp /wwwroot/blog Create a Web application under '/wwwroot/blog'? [Yes|No]y ......
ヒント: 上記のように
yiic
ツールを使用するには、CLI PHPプログラムがコマンド検索パスにある必要があります。そうでない場合は、代わりに次のコマンドを使用できます。path/to/php /wwwroot/yii/framework/yiic.php webapp /wwwroot/blog
作成したばかりのアプリケーションを試すには、Webブラウザを開き、URL http://www.example.com/blog/index.php
に移動します。スケルトンアプリケーションには、ホームページ、概要ページ、問い合わせページ、ログインページの4つの完全に機能するページがすでに存在することがわかります。
次に、このスケルトンアプリケーションにあるものを簡単に説明します。
エントリスクリプトファイル/wwwroot/blog/index.php
には、次の内容があります。
$yii='/wwwroot/framework/yii.php'; $config=dirname(__FILE__).'/protected/config/main.php'; // remove the following line when in production mode defined('YII_DEBUG') or define('YII_DEBUG',true); require_once($yii); Yii::createWebApplication($config)->run();
これは、Webユーザーが直接アクセスできる唯一のスクリプトです。スクリプトは最初にYiiブートストラップファイルyii.php
をインクルードします。次に、指定された構成でアプリケーションインスタンスを作成し、アプリケーションを実行します。
また、アプリケーションのベースディレクトリ/wwwroot/blog/protected
もあります。コードとデータの大部分はこのディレクトリの下に配置され、Webユーザーがアクセスできないように保護する必要があります。Apache httpd Webサーバーの場合、このディレクトリの下に次の内容の.htaccess
ファイルを配置します。
deny from all
他のWebサーバーについては、Webユーザーがアクセスできないようにディレクトリを保護する方法について、対応するマニュアルを参照してください。
Yiiの動作を理解するために、ユーザーが問い合わせページにアクセスするときにスケルトンアプリケーションのメインワークフローを説明します。
http://www.example.com/blog/index.php?r=site/contact
をリクエストします。/wwwroot/blog/protected/config/main.php
で指定された初期プロパティ値で構成されます。site
コントローラーとcontact
アクション(/wwwroot/blog/protected/controllers/SiteController.php
のactionContact
メソッド)として解決されます。SiteController
インスタンスに関してsite
コントローラーを作成し、それを実行します。SiteController
インスタンスは、actionContact()
メソッドを呼び出すことによって、contact
アクションを実行します。actionContact
メソッドは、contact
という名前のビューをWebユーザーにレンダリングします。内部的には、これはビューファイル/wwwroot/blog/protected/views/site/contact.php
をインクルードし、その結果をレイアウトファイル/wwwroot/blog/protected/views/layouts/column1.php
に埋め込むことによって実現されます。タイプミスを見つけたり、このページを改善する必要があると思われる場合は?
githubで編集 !
MAMPでyiicを使用する
PATHにMAMPバージョンのPHPを追加する必要がある場合があります。
例:
export PATH=/Applications/MAMP/bin/php5/bin:${PATH}
xamppを使用する場合のyiicツールに関する追加のヒント
php実行可能ファイルがパスに追加されていない場合は、Windowsのコマンドプロンプトで同様のコマンドを使用します
{php.exeへのパス} {yiic.phpへのパス} {新しいWebアプリへのパス}
例:
E:\xampp\php\php.exe E:\xampp\htdocs\yiicore\framewor\yiic.php webapp E:\xampp\htdocs\yiiapp
発生する可能性のある問題
WebサーバーにSSH接続する方法が必要ですか? PuTTYを使用してください。Googleで検索してください。
PuTTYを使用してサーバーにログインしたら、path/to/phpを簡単に見つけるには、次のように入力します。
which php
次のようなものが返されます:/usr/local/bin/php 実際、必要であればこれを試しても構いません。おそらくあなたのものも同じになるでしょう。
確実ではありませんが、/blogフォルダを事前に作成する必要があるかもしれません。問題が発生し、これが問題を解決した一連の手順の1つでしたが、これが必須であることは確認していません。yiicスクリプトが不足している場合は、yiicスクリプトが実行する可能性があります。
上記のunixコマンドを実行してスケルトンアプリケーションを構築しようとしたときに「Permission Denied」エラーが発生した場合は、/yii/framework/yiicファイルの権限を変更して実行可能にする必要がある可能性があります。ファイルを754に変更すると、問題ないはずです。
WindowsでXAMPPを使用している場合、PHPがPATHにない
HossainKによるコメント#1312は現在古くなっています。
最新バージョンのXAMPPは、多くの操作でPHPコマンドを使用する再発明された
setup_xampp.bat
を使用します。PATH変数にPHP.exeへの有効なパスがない場合は、実行できず、したがってXAMPP自体をインストールできません。PATH変数にPHP.exeへの有効なパスがあることは必須ではありません。
コメントするには、サインアップまたはログインしてください。