2009年10月アーカイブ

github my new repos

| コメント(0)
zend fremework default tree

カスタマイズしたzfproject.xml は Zend_Tool_Projectのzf コマンドで create project するときに使えます。


安いVPSのレンタルサーバー 借りてやってみる。


1. ルートでログイン
    # login: root

2. rootでのログインを切り、sshdをリロード
    # vi /etc/ssh/sshd_config
    # /etc/init.d/ssh reload
        - 下記のパラメータを変更
            PermitRootLogin=no

3. apt listをアップデート
    # apt-get update

4. editorとsudoをインストール
    # apt-get install vim sudo

5. ユーザを追加
    # adduser <username>

6. 追加したユーザにsudoでルート権限を与える
    # visudo
        - 下記の設定を追加
            <username> ALL=(ALL) ALL

7. ホスト名を設定
    # echo '<domain.name>' > /etc/hostname
    # hostname -F /etc/hostname
    # vi /etc/hosts
        - ローカルホストの設定を下記に変える
            127.0.0.1  <domain.name>  localhost localhost.localdomain

8. 時刻を合わせる確認する
    # apt-get install ntp
    # ntpq -p

9. ローケルの設定にja_JP.utf8を追加する
    # sudo locale-gen ja_JP.UTF-8

10. 必要なパッケージをインストール
    - web系
    # apt-get install apache2-mpm-prefork

    - 言語系
    # apt-get install php5 php-pear

    - DB系 ※パスワードは設定しない
    # apt-get install mysql-client mysql-server mysql-common php5-mysql

    - 開発系
    # apt-get install subversion libapache2-svn subversion-tools trac trac-ja-resource

    - メール系 ※internet siteでインストール
    # apt-get install postfix

安いVPSのレンタルサーバー

登録した一般ユーザでログインをしなおし、サービスの設定。。。

1. ドキュメントルートのベースを作成

    $ sudo mkdir -p /home/www/<domain.name>/
    $ sudo chown www-data:www-data /home/www/<domain.name>/


2.ZendLibraryをチェックアウトする

    $ cd /home/www/<domain.name>/
    $ sudo -u www-data -H svn checkout http://framework.zend.com/svn/framework/standard/trunk/library


3. subversionの設定の前にsudoに下記の設定を行う

    $ sudo visudo
    # www-data ALL=(ALL) NOPASSWD: /usr/bin/svn
    # <username> ALL=(ALL) NOPASSWD: /usr/bin/svn
    # <username> ALL=(ALL) ALL


4. www-dataグループに<username>を追加しておく

    $ sudo usermod -G www-data <username>


5. レポジトリの作成と属性設定

    $ cd /home/www/<domain.name>/
    $ sudo -u www-data -H mkdir repos
    $ sudo -u www-data -H svnadmin create --fs-type fsfs repos
    $ find ./repos  -type d | xargs sudo chmod 2775
    $ find ./repos  -type f | xargs sudo chmod 664


6. フレームワークを準備しプロジェクトをインポートしておく

    - ユーザホームに bin を作りZend_Toolを使えるようにする
    - [参照サイト] http://framework.zend.com/manual/ja/
    $ cd $HOME
    $ mkdir bin
    $ cd /home/<username>/bin
    $ wget http://framework.zend.com/svn/framework/standard/trunk/bin/zf.sh
    $ wget http://framework.zend.com/svn/framework/standard/trunk/bin/zf.php
    $ mv zf.sh zf
    $ chmod 755 zf

    - zf.phpのzf_main()の上に下記のコードを追加
    set_include_path('/home/www/<domain.name>/library');

    - 環境変数を再読み込み
    $ source .profile
    - 起動を確認する

    $ zf show version
    output: Zend Framework Version: 1.X.X

    - ローカルにworkingディレクトリを作りレポジトリをチェックアウト
    $ cd
    $ mkdir -p work/www
    $ cd work/www
    $ svn co file:///home/www/<domain.name>/repos <domain.name>

    - チェックアウトしたレポジトリに入りプロジェクト追加
    $ cd <domain.name>
    $ zf create project trunk

    - libraryはエイリアスで指定するので消す
    $ cd trunk
    $ rm -r library

    - trunkと同じ階層にディレクトリを追加
    $ cd ../trunk
    $ mkdir scripts tags

    - プロジェクト初期ディレクトリ構造
     scripts
     tags
     trunk
     |-- application
     |   |-- Bootstrap.php
     |   |-- configs
     |   |   `-- application.ini
     |   |-- controllers
     |   |   |-- ErrorController.php
     |   |   `-- IndexController.php
     |   |-- models
     |   `-- views
     |       |-- helpers
     |       `-- scripts
     |           |-- error
     |           |   `-- error.phtml
     |           `-- index
     |               `-- index.phtml
     |-- public
     |   `-- index.php
     `-- tests
         |-- application
         |   `-- bootstrap.php
         |-- library
         |   `-- bootstrap.php
         `-- phpunit.xml

    - 初期ディレクトリをreposに追加する
    $ svn add ./*
    $ svn ci

    - 初期タグを作っておく
    $ sudo -u www-data -H svn copy -m "Creating tag:1.0.0" file:///home/www/<domain.name>/repos/trunk file:///home/www/<domain.name>/repos/tags/1.0.0

    - 次にテストサイトに初期プロジェクトを反映させる
    $ sudo -u www-data -H svn checkout file:///home/www/<domain.name>/repos/trunk /home/www/<domain.name>/test
    $ sudo -u www-data -H svn checkout file:///home/www/<domain.name>/repos/scripts /home/www/<domain.name>/scripts

    - test以下にlibraryのシンボリックリンクを設定する
    $ cd /home/www/<domain.name>/test
    $ sudo -u www-data -H ln -s ../library library

7. post-commitの設定に下記を追加

    - これによりコミットログをメールにて通知することが可能
    - また、コミットごテストサイトをアップデートかけるので動作確認とれる
    $ cd /home/www/<domain.name>/repos/hooks
    $ sudo -u www-data -H cp post-commit.tmpl post-commit
    $ sudo chmod 755 post-commit

    - 下記のコードをpost-commitの一番下に追加
    /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" --from commit-watcher@<mailhost.name> commit-watcher@<domain.name>
    sudo -u www-data -H svn update /home/www/<domain.name>/test/
    sudo -u www-data -H svn update /home/www/<domain.name>/scripts/

    - メールの設定で/etc/aliasesに下記を追記
    $ sudo vi /etc/aliases
    commit-watcher: <watcher.mail.1>,<watcher.mail.2>

    - メールaliase追加後設定を反映させる
    $ sudo newaliases
    $ sudo /etc/init.d/postfix reload

8. tracの設定

    $ sudo -u www-data -H trac-admin /home/www/<domain.name>/trac initenv
    $ cd /home/www/<domain.name>/trac
    $ sudo -u www-data -H mkdir tmp
    $ sudo -u www-data -H touch passwd.db
    $ sudo -u www-data -H chmod 2775 tmp

    - trac.iniの文字コードを変更しておく
    default_charset = UTF-8

    - passwd.dbにユーザを追加しておく
    $ sudo -u www-data -H htpasswd -m /home/www/<domain.name>/trac/passwd.db <username>

    - 上記で追加したユーザにTRAC_ADMINの権限を与える
    $ sudo -u www-data -H trac-admin /home/www/<domain.name>/trac/
    Trac [/home/www/<domain.name>/trac]> permission add <username> TRAC_ADMIN


9. tracのユーザアカウント管理設定をする

    - アカウントマネージャープラグインをインストールして置く
    - [参照サイト] http://trac-hacks.org/wiki/AccountManagerPlugin
    $ sudo easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11

    - tracにログインし上部の管理メニューに入り左メニューのプラグインを選択する
    - TracAccountManagerを選び AccountManagerAdminPage / AccountManager / HtPasswdStore 有効にする
    - tracをリロードする
    - 左メニューにAccountが出てくるので、そこのconfigurationを選択し、htpasswdstorgを[1]にしfilenameに[passwd.db]と入力
    - 次にusersを選びユーザ管理の設定を行う


10. apacheの設定

    - rewriteを有効にする
    $ sudo a2enmod rewrite

    - <domain.name>のファイルを/etc/apache2/sites-availableに置く
    $ cd /etc/apache2/sites-available
    $ sudo touch test.<domain.name>

    - 設定後、設定ファイルを有効にする
    $ sudo a2ensite test.<domain.name>
    $ sudo a2dissite default
    $ sudo /etc/init.d/apache2 reload

10. apacheの設定

    - rewriteを有効にする
    $ sudo a2enmod rewrite

    - <domain.name>のファイルを/etc/apache2/sites-availableに置く
    $ cd /etc/apache2/sites-available
    $ sudo touch test.<domain.name>

    - 設定後、設定ファイルを有効にする
    $ sudo a2ensite test.<domain.name>
    $ sudo a2dissite default
    $ sudo /etc/init.d/apache2 reload

11. subversionサーバーの設定

    - apacheモジュールをインストール
    $ sudo a2enmod dav dav_fs dav_svn
    $ sudo /etc/init.d/apache2 restart


12. zfにlayouts追加
    - [参照サイト] http://framework.zend.com/manual/ja/zend.application.quick-start.html
    - 下部の説明を参照
    - layoutsはviews以下に作る

13.apache  config sample

<VirtualHost *:80>

    <IfModule mod_headers.c>
        Header set X-Powered-By "PHP5 ZendFramwork"
    </IfModule>

    ServerName <domain.name>
    ServerAlias www.<domain.name>
    ServerSignature Off
    RewriteEngine On
    RewriteRule ^(.*)$ http://<domain.name>$1 [R]
</VirtualHost>

<VirtualHost *:80>

    ServerName <domain.name>
    ServerAdmin www-data@<domain.name>

    DocumentRoot /home/www/<domain.name>/test/public

    <IfModule mod_headers.c>
        Header set X-Powered-By "PHP5 ZendFramwork"
    </IfModule>

    ErrorLog /var/log/apache2/<domain.name>-error.log
    CustomLog /var/log/apache2/<domain.name>-access.log combined env=!nolog

    <Directory /home/www/<domain.name>/test/public>

        ServerSignature Off

        Options FollowSymLinks
        AllowOverride ALL
        DirectoryIndex index.php
        AddType application/x-httpd-php .php

        AuthType Basic
        AuthName "<domain.name> Login"
        AuthUserFile /home/www/<domain.name>/trac/passwd.db
        Require valid-user

    </Directory>

    alias /tracdocs /usr/share/trac/htdocs/
    ScriptAlias /trac /usr/share/trac-ja-resource/cgi-bin/trac.cgi
    <Location /trac>
        SetEnv PYTHON_EGG_CACHE /home/www/<domain.name>/trac/tmp
        SetEnv TRAC_ENV "/home/www/<domain.name>/trac/"
    </Location>

    <Location /svn>
        DAV svn
        SVNPath /home/www/<domain.name>/repos
        AuthType Basic
        AuthName "Svn Repository"
        AuthUserFile /home/www/<domain.name>/trac/passwd.db
        Require valid-user
    </Location>

</VirtualHost>

安いVPSのレンタルサーバー


http://framework.zend.com/manual/ja/zend.application.available-resources.html#zend.application.available-resources.session

INIスニペット・サンプル

resources.session.saveHandler.options.primary.session_id = "session_id"
resources.session.saveHandler.options.primary.save_path = "save_path"
resources.session.saveHandler.options.primary.name = "name"
resources.session.saveHandler.options.primaryAssignment.sessionId = "sessionId"
resources.session.saveHandler.options.primaryAssignment.sessionSavePath = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.sessionName = "sessionName"

http://framework.zend.com/manual/ja/zend.session.savehandler.dbtable.html
のconfigのサンプルと比べると違う。なのでこのconfigサンプルあわせると、

resources.session.saveHandler.options.primary.0 = "session_id"
resources.session.saveHandler.options.primary.1 = "save_path"
resources.session.saveHandler.options.primary.2 = "name"
resources.session.saveHandler.options.primaryAssignment.0 = "sessionId"
resources.session.saveHandler.options.primaryAssignment.1 = "sessionSavePath"
resources.session.saveHandler.options.primaryAssignment.2 = "sessionName"

が正しくなる。

ただ、ソースをまだちゃんと読んでいないので、正確な理由は不明。

twitterアカウント

| コメント(0)
http://twitter.com/kiyotaman

です。

このアーカイブについて

このページには、2009年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年9月です。

次のアーカイブは2009年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。