ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

Yiiについて

Yii は、Webアプリケーションをすばやく構築するのに役立つ高性能のPHPオブジェクト指向フレームワークです。 設計方法により、より「退屈な」コード定義タスクを処理しながら、アプリケーションを独自のものにすることに集中できます。 ロジックをプレゼンテーションから明確に分離するためのMVCパターンに従い、非常に多くのセキュリティ強化機能を備えています。

Yiiは、アプリケーションのスケルトン、データベースのモデル、さらにはCRUD(作成、読み取り、更新、削除)関連のコードを自動的に生成できるようにすることで、アプリケーションを大幅に強化します。 その後、あなたがしなければならないのは、アプリケーションが必要とする基本を書く必要なしに、あなたの好みに合わせてすべてをカスタマイズすることです。 それでは、それをインストールしてYiiで開発を開始する方法を見てみましょう(はい、そうです!)

このチュートリアルは、LAMPがインストールされたUbuntu VPSをすでに実行していることを前提としています(ただし、他のLinuxディストリビューションも機能します)。 これらのチュートリアルの手順に従って準備を整えることができる場合:

インストール

Yiiをインストールするには、最新バージョンを入手して、WebサーバーのWebルートのどこかに抽出する必要があります(Apacheを実行している場合はおそらく / var / www )。 それでは、 http://www.yiiframework.com/download/ から最新リリースのzipファイルへのリンクをコピーし、次のコマンドを実行してVPSにダウンロードしましょう。

wget http://yii.googlecode.com/files/yii-1.1.13.e9e4a0.zip

インストール時に、このリンクを最新リリースのリンクに置き換えてください。 次に、次のコマンドを実行してフレームワークを解凍します。

unzip yii-1.1.13.e9e4a0.zip

ファイル名は、ダウンロードしたばかりのファイル名に置き換えてください。 システムにUnzipがインストールされていない場合は、ファイルを解凍する前に次のコマンドを実行してください。

sudo apt-get install unzip

フレームワークを正常に解凍したら、先に進み、フォルダの名前をより適切な名前に変更します。 名前を付けたとしましょう

yii_framework

mv yii-1.1.13.e9e4a0 yii_framework

フォルダー名は、ケース用に抽出したフォルダーの名前に置き換えてください。

要件

YiiではVPSにPHP5.1以降がインストールされている必要があるため、Yii要件チェッカーを使用して私たちの立場を確認しましょう。 ブラウザで次のURLを指定して、チェッカーを表示します。

http://example.com/yii_framework/requirements/index.php

Yiiフレームワークのそれぞれのファイルを指すように、必要に応じてここで置き換えてください。 これで、要件チェッカーページが表示されます。このページですべてがうまくいけば、「サーバー構成はYiiの最小要件を満たしています」のようになります。 この場合、先に進むことができます。

最初のアプリケーションの作成

Yiiには、コンテンツを自動的に生成するための非常に強力な機能があります。 アプリケーションのスケルトンはそのようなものの1つなので、その方法を見てみましょう。 アプリケーションを生成する場所に移動します。 これは、Yiiフレームワークを抽出したフォルダーの外にもある可能性があります。 それでは、サーバーのWebルートに戻って、そこで実行してみましょう。

cd /var/www

アプリケーションフォルダの名前(たとえば、 mysite )を決定し、次のコマンドを実行します。

php yii_framework/framework/yiic webapp mysite

パスが環境に対応していることを確認してください。 プロンプトが表示されたらはいを選択すると、 / var / www /mysiteの下に新しいアプリケーションが表示されます。

テストするには、ブラウザでそのフォルダを指定します。

http://example.com/mysite/index.php

これで、スケルトンアプリケーションのホームページが表示されます。 すでにいくつかのページが作成されており、お問い合わせフォームとログイン/ログアウト機能もあります。 次の資格情報でログインできます。

  • ユーザー名:admin
  • パスワード:admin

これは、自分で作成する必要のない機能です。

構成

LAMPを使用しているため、構成する必要はあまりありません。 ただし、URL構造からindex.phpを削除することをお勧めします。 これを行うには、アプリケーションのルートフォルダー( mysite )に.htaccessファイルを作成し、次のコードを貼り付けます。

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php

ファイルを保存して終了します。

注:Apacheで.htaccess機能を使用するには、VPSでmod_rewriteを有効にする必要があります。 これを確認するには、次のコマンドを実行します。

apache2ctl -M

リストにrewrite_moduleが表示されている場合は、問題ありません。 そうでない場合は、次のコマンドで有効にします。

a2enmod rewrite

次に、変更を有効にするためにApacheを再起動します。

sudo service apache2 restart

さらに、仮想ホストファイルでAllowOverrideAllに設定して、.htaccessファイルが有効になっていることを確認します。

          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          allow from all

次に、URLにindex.phpが不要になったことをアプリケーションに通知する必要があります。 protected /configフォルダーにあるmain.phpファイルを開き、次のブロックのコメントを解除します。

/*
'urlManager'=>array(
  'urlFormat'=>'path',
  'rules'=>array(
    '/'=>'/view',
    '//'=>'/',
    '/'=>'/',
  ), 
),
*/

次に、urlManagerアレイに以下を追加します。

'showScriptName' => false

ブロックは次のようになります。

'urlManager'=>array(
  'urlFormat'=>'path',
  'showScriptName' => false,
  'rules'=>array(
    '/'=>'/view',
    '//'=>'/',
    '/'=>'/',
  ), 			
),

ファイルを保存して終了します。 これで、新しいアプリケーションに移動すると、ページを移動して、構造に index.php がなく、よりクリーンなURLが表示されるようになります。

スケルトンアプリケーションは、デフォルトでアプリケーションに付属のSQLiteデータベースに接続されていますが、MySQLデータベースに接続するためのコメントアウトされたテンプレートも含まれています。 したがって、最初のデータベースをコメントアウトし、後者のコメントを解除し、独自のデータベースに関連する情報を指定する必要があります(次のチュートリアルで作成します)。 これを行うには、アプリケーションの protected /configフォルダーにあるmain.phpファイルを再度開き、次のブロックをコメントアウトします。

'db'=>array(
  'connectionString' => 'sqlite:'.dirname(__FILE__).'/../data/testdrive.db',
),

そして、次のブロックの周りのコメントを削除します。

/*
'db'=>array(
  'connectionString' => 'mysql:host=localhost;dbname=testdrive',
  'emulatePrepare' => true,
  'username' => 'root',
  'password' => '',
  'charset' => 'utf8',
),
*/

ここで、作成するデータベースに接続情報を追加できます。 名前( db_tutorial )を付け、アクセスするためのユーザー名とパスワードを指定します。 これで、この名前で空のデータベースを作成し、パート2でこのチュートリアルを続ける前に、すべてを埋めることができます。

投稿者: Danny