ホームページ  >  記事  >  バックエンド開発  >  Yii の学習 (1) -- インストールと設定

Yii の学習 (1) -- インストールと設定

WBOY
WBOYオリジナル
2016-07-25 09:12:05857ブラウズ

以前SinaブログでYiiに関する記事を書いていましたが、ブログパークに来てから全くYiiに関する記事を書いていませんでしたので、たまたま端午節の休暇中にやることがなかったので、以前のブログを統合しました。 、Yiiの公式ドキュメント、そして最近のYiiから得たものをまとめてシリーズにしましょう~~

Yii は、大規模な Web アプリケーションを開発するための高性能コンポーネントベースの PHP フレームワークです。 Yii は厳密な OOP で書かれており、完全なライブラリ リファレンスと包括的なチュートリアルが含まれています。 MVC、DAO/ActiveRecord、ウィジェット、キャッシュ、階層型 RBAC、Web サービスからテーマ、I18N および L10N まで、Yii は今日の Web 2.0 アプリケーション開発に必要なほぼすべてを提供します。実際、Yii は最も効率的な PHP フレームワークの 1 つです。 Yii は、高性能 PHP5 Web アプリケーション開発フレームワークです。シンプルなコマンド ライン ツール yiic を使用すると、Web アプリケーション コード フレームワークを迅速に作成でき、開発者は生成されたコード フレームワークに基づいてビジネス ロジックを追加して、アプリケーション開発を迅速に完了できます。

Yiiをインストール

Yii をインストールする前に、PHP5.1.0 以降をサポートする Web サーバーなどの開発環境を設定する必要があります。 Yii は、Windows および Linux オペレーティング システム上の Apache Web サーバーでテストされています。他のプラットフォーム上で PHP5 をサポートする Web サーバーでも実行できる場合があります。インターネット上には多くの無料リソースが公開されており、PHP5 で構成された Web サーバー環境を入手できる場合があります。ここでは、Web サーバーと PHP5 のインストールについては脇に置きます。 Yii のインストールは実際には非常に簡単です。必要な手順は次の 2 つだけです。
  • http://www.yiiframework.com/ から Yii Framework をダウンロードします。 ダウンロードしたファイルを Web サーバーにアクセスできるディレクトリに解凍します。
  • インストールが完了したら、現在のサーバーが Yii の要件をすべて満たしているかどうかを確認することをお勧めします。
幸いなことに、これを行うのは簡単で、Yii には簡単な検査ツールが付属しています。これを呼び出すには、ブラウザのアドレス バーに http://yourhostname/path/to/yii/requirements/index.php と入力します。サーバーの設定が下に表示されます。チェック ツールを使用して、サーバーに拡張機能やコンポーネントがインストールおよび使用されていないことを確認しますが、インストールされているかどうかを確認するための提案が提供されるだけです。ご覧のとおり、次のチェック結果のすべてが合格ステータスであるわけではなく、一部には警告が表示される場合もあります。もちろん、構成が若干異なる場合があるため、表示結果も異なります。実際、以下の詳細をすべて渡す必要はありません。しかし、結論の段落の内容によれば、その一部も必要です。あなたのサーバー設定は Yii の最小要件を満たしています。 (サーバー構成は Yii の最小要件を満たしています。)

新しいアプリを作成する

  • Yiiのインストール場所はすでにご存知です
  • WebRoot は Web サーバー設定のルート ディレクトリです
  • コマンドラインからフレームワークディレクトリに移動し、以下を実行します:
  1. % cd Webroot/testdrive/framework
  2. % yiic webapp ../../testdrive
  3. '/WebRoot/testdrive' に Web アプリケーションを作成しますか? [はい|いいえ]
  4. はい
  5. mkdir /WebRoot/testdrive
  6. mkdir /WebRoot/testdrive/assets
  7. mkdir /WebRoot/testdrive/css
  8. css/bg.gif を生成
  9. css/form.css を生成
  10. css/main.css を生成
コードをコピー

アプリケーションは /WebRoot/demo に正常に作成されました。この webapp コマンドの目的は、まったく新しい Yii アプリケーションを作成することです。パラメータを絶対パスまたは相対パスで指定するだけで、アプリケーションが作成されます。生成されるディレクトリとファイルは、アプリケーションの単なるスケルトンです。

  1. testdrive/
  2. index.php Webアプリケーションエントリスクリプトファイル
  3. index-test.php機能テストに使用されるエントリスクリプトファイル
  4. assets/にはパブリックリソースファイルが含まれます
  5. css/にはCSSファイルが含まれます
  6. images/には画像ファイルが含まれます
  7. /が含まれますアプリケーションテーマ
  8. protected/ 保護されたアプリケーションファイルが含まれます
  9. yiic yiic コマンドラインスクリプト
  10. yiic.bat Windows での yiic コマンドラインスクリプト
  11. yiic.php yiic コマンドライン PHP スクリプト
  12. Commands/ カスタム 'yiic' コマンドが含まれます
  13. Shell/ カスタム 'yiic が含まれますシェルコマンド
  14. コンポーネント/ 再利用可能なユーザーコンポーネントが含まれます
  15. Controller.php はすべてのコントローラークラスの基本クラスです
  16. Identity.php は認証に使用される「Identity」クラスです
  17. config/ 設定ファイルが含まれます
  18. console.php コンソールアプリケーションの設定
  19. main .php Web アプリケーションの構成
  20. test.php 機能テストに使用される構成
  21. controllers/ コントローラーのクラス ファイルが含まれます
  22. SiteController.php デフォルトのコントローラーのクラス ファイル
  23. data/ サンプル データベースが含まれます
  24. schema.mysql.sql MySQL の例データベース
  25. schema.sqlite.sql SQLite データベースの例
  26. testdrive.db SQLite データベース ファイルの例
  27. extensions/ サードパーティの拡張機能が含まれます
  28. messages/ 翻訳されたメッセージが含まれます
  29. models/ モデルのクラス ファイルが含まれます
  30. LoginForm .php 'login' アクション フォーム モデル
  31. ContactForm.php 「連絡先」アクション フォーム モデル
  32. runtime/ 一時的に生成されたファイルが含まれます
  33. testing/ テスト スクリプトが含まれます
  34. views/ コントローラー ビューとレイアウト ファイルが含まれます
  35. layouts/ レイアウトが含まれます ビュー ファイル
  36. main.php すべてのビューのデフォルト レイアウト
  37. column1.php 単一列のページに使用されるレイアウト
  38. column2.php 二重列を使用するページに使用されるレイアウト
  39. site/ 「サイト」コントローラーを含むビュー ファイル
  40. Pages/ には「静的」ページが含まれます
  41. about.php 「about」 " ページビュー
  42. contact.php 'contact' アクションビュー
  43. error.php 'error' アクションビュー (外部エラーを表示)
  44. Index.php 'index' アクションビュー
  45. login .php 'login' アクションビュー
  46. system/ システムビューを含むファイル
コードをコピー

現時点では、コードを 1 行も記述することなく、ブラウザで次の URL にアクセスして、最初の Yii アプリケーションを確認できます。

    http://hostname/testdrive/index.php
コードをコピー

これから説明するように、このアプリケーションにはホームページ、連絡先ページ、ログイン ページの 3 つのページが含まれています。ホームページには、アプリケーションとユーザーのログイン ステータスに関する情報が表示され、問い合わせページには、ユーザーが問い合わせを記入して送信するための問い合わせフォームが表示されます。また、ログイン ページでは、ユーザーは最初に認証を行ってから、承認されたコンテンツにアクセスできます。

設定

このアプリケーションでは、どのページの URL にアクセスしても、index.php が含まれています。これを削除したい場合はどうすればよいですか?

1. Apache の mod_rewrite モジュールを開き、LoadModule rewrite_module modules/mod_rewrite.so の前にある「#」記号を削除し、

に「AllowOverride All」があることを確認します。 2. プロジェクトの /protected/config/main.php にコードを追加します。
    'components'=>array(
  1. ...
  2. 'urlManager'=>array(
  3. 'urlFormat'=>'path',
  4. 'showScriptName'=>false,// false であることに注意してくださいは許可されていません 引用符で囲んでください
  5. 'rules'=>array(
  6. 'sites'=>'site/index',
  7. ),
  8. ),
  9. ...
  10. ),
コードをコピーします

3. サーバーを設定します。Yii は Apache と Nginx で設定できます

1)アパッチ

Apache サーバーの下で、Yii は .htaccess ファイルを設定する必要があります。構成は以下の通りです

  1. RewriteEngine on
  2. # httpd がドットファイル (.htaccess、.svn、.git など) を提供しないようにします
  3. RedirectMatch 403 /..*$
  4. # ディレクトリまたはファイルが存在する場合は、それを直接使用します
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. # それ以外の場合は、index.php
  8. RewriteRule に転送します。コードをコピーします
2) Nginx
Yii は Nginx と PHP の FPM SAPI を使用できます。構成は以下の通りです


server {
set $host_path "/www/mysite";
    access_log /www/mysite/log/access.log main;
  1. server_name mysite;
  2. root $host_path/htdocs;
  3. set $yii_bootstrap "index. php";
  4. charset utf-8;
  5. location / {
  6. Index Index.html $yii_bootstrap;
  7. try_files $uri $uri/ /$yii_bootstrap?$args;
  8. }
  9. location ~ ^/(protected|framework|テーマ/w+/ビュー) {
  10. すべて拒否;
  11. }
  12. #yii
  13. location ~ による存在しない静的ファイルへの呼び出しの処理を回避します。(js|css|png|jpg|gif|swf|ico|pdf|mov|fla |zip|rar)$ {
  14. try_files $uri =404;
  15. }
  16. # 127.0.0.1:9000 をリッスンする FastCGI サーバーに PHP スクリプトを渡します
  17. #
  18. location ~ .php {
  19. fastcgi_split_path_info ^(.+.php) (.*)$;
  20. #yii に存在しない PHP ファイルへの呼び出しをキャッチさせます
  21. set $fsn /$yii_bootstrap;
  22. if (-f $document_root$fastcgi_script_name){
  23. set $fsn $fastcgi_script_name;
  24. }
  25. fastcgi_pass 127.0 .0.1:9000;
  26. include fastcgi_params;
  27. fastcgi_param SCRIPT_FILENAME $document_root$fsn;
  28. #PATH_INFO と PATH_TRANSLATED は省略できますが、RFC 3875 では CGI に対して指定されています
  29. fastcgi_param PATH_INFO $fastcgi_path_info;
  30. fastc gi _param PATH_TRANSLATED $document_root$fsn;
  31. }
  32. # nginx がドットファイル (.htaccess、.svn、.git など) を提供しないようにします
  33. location ~ /. {
  34. すべて拒否;
  35. access_log off;
  36. log_not_found off;
  37. }
  38. }
  39. コードをコピーします
上記の設定を使用すると、php.ini で cgi.fix_pathinfo=0 を設定でき、これにより多くの不要なシステム stat() 呼び出しを回避できます。

基本的なインストールと設定はここで終了です~~

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。