安い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のレンタルサーバー