2012年7月3日火曜日

2012年07月03日 講義090日目

2012年07月03日
講義090日目
------------------------------1H------------------------------
★SVN
●VMwareにSVNサーバーをインストール
・現在google codeにリポジトリを作成してるが、
  VMwareにSVNサーバーを立ててそちらにリポジトリを作成する
●SVNクライアント
・eclipceもプラグインを入れるとクライアントに出来たりする
・windowsだとtortoisesvnがある
☆今まではクライアントのみ使ってた
  サーバ機能はこれから設定する
●SVNサーバの設定
・リポジトリの作成
suでルートになる
[root@localhost  ユーザ名]# cd /var/www
この下にリポジトリを作る
[root@localhost www]# mkdir svn
[root@localhost www]# cd svn
・svnadminコマンド
[root@localhost svn]# svnadmin create shonanbbs
[root@localhost svn]# ls
shonanbbs
[root@localhost svn]# ls shonanbbs/
README.txt  conf  dav  db  format  hooks  locks
↑confをいじっていく
・権限を書き換える
  wwwからリポジトリを書き換えるためapacheに権限を与える
[root@localhost svn]# ls -l
合計 4
drwxr-xr-x 7 root root 4096  7月  3 10:54 shonanbbs
chown -R apache:apache shonanbbs
-Rでディレクトリ全てを指定
[root@localhost svn]# ls -l
合計 4
drwxr-xr-x 7 apache apache 4096  7月  3 10:54 shonanbbs
●用語復習
コミットする→リポジトリのバージョンを上げる
チェックアウトする→リポジトリからダウンロードする
パーミッション→アクセス権のこと
------------------------------2H------------------------------
★SVN
●SVNサーバの設定
・conf
[root@localhost svn]# cd shonanbbs/conf/
[root@localhost conf]# vi svnserve.conf
・読み込み書き込みの設定
# anon-access = read
# auth-access = write

anon-access = none
auth-access = write
(#の後のスペースは消さないと挙動しない)
・パスワードの設定
# password-db = passwd

password-db = passwd
・passwd
[root@localhost conf]# vi passwd
[users]
# harry = harryssecret
# sally = sallyssecret
ユーザ名 = パスワード
・bachの設定に追加
  rootでsvnを使うときのために環境変数を追加
[root@localhost ~]# vi .bash_profile
export SVN_EDITER="vi"
[root@localhost ~]# source .bash_profile
・SVNサーバーを起動させる
[root@localhost ~]# svnserve -d -r /var/www/svn

●ソースの管理と開発環境
・SVNの構成
trunk
本番
branches
開発
tags
バックアップ
・staging環境
テストのサーバーで本番ソース、本番DBによってテストする環境
ベータ版
------------------------------3H------------------------------
★SVN
●リポジトリの作成
・svn mkdir svn://サーバのアドレス/shonanbbs/trunk
rootでifconfigでサーバのアドレスを参照して入力
☆ifconfigはrootでしか動かない
・コミットする
  viでコメント入力画面が開くので何かを入力して終了
  エラーが出た場合にはコメントがsvnコマンドを打った場所に残るので
  これらがコミットされないように消すようにする
・sf.shonanbbs.comが別のsvnサーバと紐付いてるかどうか確認する
[ユーザ名@localhost ~]$ ls -a sf.shonanbbs.com/
.svnが無ければ紐付いてない
・svn import
svn import 元になるソースのパス リポジトリのパス
でコミットできる
------------------------------4H------------------------------
★SVN
●svnコマンド
・svn list リポジトリのパス
  コミットした内容を表示するコマンド
  [サーバ名@localhost ~]$ svn list svn://svnサーバIP/shonanbbs/trunk
  で/trunkの内容が表示される
 
☆linuxで日本語の文字でディレクトリを作成すると文字化けなどを起こす場合がある
ファイル名が指定出来ない
  もし作った場合には、そのディレクトリのほかの内容を退避させて
  そのディレクトリごと消すなどの対応になってしまうので注意
●tagsの作成
・svn mkdir svn://svnサーバIP/shonanbbs/tags -m ""
●リポジトリのコピー
・svn cp コピー元 コピー先
  svn cp svn://svnサーバIP/shonanbbs/trunk svn://svnサーバIP/shonanbbs/branches -m ""
●リポジトリの削除
  svn rm 削除したいリポジトリのパス

●開発環境のディレクトリを作成
sf.shonanbbs.comの開発環境として
[サーバ名@localhost ~]$ mkdir dev.shonanbbs.com
を作成
本番環境  sf.shonanbbs.com
開発環境  dev.shonanbbs.com
●check outコマンド
svn co check out元 check out先
●svn info
色々情報が出てくる

●dev.shonanbbs.comのパスを通す
  /etc/httpd/conf.d/httpd-vhost.confを編集
  /etc/init.d/httpd restart
  hostsファイルの編集
 
  開発環境のプロジェクト下で
  symfony fix-perms
  symfony cc
------------------------------5H------------------------------
★SVN
●本番環境と開発環境での注意点
・接続先のDB
操作→データベースのコピー先:
dev_studyと名付けた開発用のDBを作成
☆設定ファイルを変更したら
  symfony fix-perms
  symfony cc
☆symfonyでの本番環境と開発環境での注意点
・config.php
  $sf_symfony_lib_dir  = '/usr/share/pear/symfony';
  $sf_symfony_data_dir = '/usr/share/pear/data/symfony';
  などのディレクトリの変更
・database.yml
  dsn:でDBの変更
・propel.ini
  propel.database.createUrl  = 開発用のDB
  propel.database.url        = 開発用のDB/DB名
・setting.yml
  hostname:でアプリケーション間のhostnameを設定してるのでurlが違えば要変更
☆設定ファイルを変更したら
  symfony fix-perms
  symfony cc
 
●staging環境の作成
本番環境と同じソース、本番に上げる目前のテスト
/home/ユーザ名/staging.shonanbbs.com
のディレクトリを作成し。trunkのソースをチェックアウトしておく

http-vhost.confおよびhostsを編集し、ブラウザから確認できるようにする
サイトが表示されない場合
symfony fix-perms
symfony cc

config/settings.yml
らを変更する。データベースは本番の「study」DBを使用する
☆basic認証をかけたりする
staging環境と本番環境は
------------------------------6H------------------------------
★SVN
●デバックフラグ
・本番環境では見せてはいけないもの
・symfony
/web/index.php
/web/backend/index.php
の記述を変更する
define('SF_ENVIRONMENT', 'dev');
define('SF_DEBUG',       true);

define('SF_ENVIRONMENT', 'prod');
define('SF_DEBUG',       false);
●本番環境にsvnを反映させる
[サーバ名@localhost dev.shonanbbs.com]$ svn ci -m ""
・svnが反映されてないsf.shonanbbs.comの内容を全て削除
[サーバ名@localhost sf.shonanbbs.com]$ rm -rf *
フォルダごとでもかまわないが、ファイルを全て消すコマンドで対応
・trunkからチェックアウトする
[サーバ名@localhost sf.shonanbbs.com]$ svn co svn://サーバIP/shonanbbs/trunk
・色々と本番用に整える
  symfony fix-prems
  symfony cc
  hostnameの場所をなどを変更
-----------------------------memo------------------------------

2 件のコメント:

  1. i was searching for some stuff about symfony developer and landed here from google and translated your post and i found this very informative, keep up the good work

    返信削除
  2. thanks for the comment, I am still learning but i will keep up my post.

    返信削除