ラベル 講座、Symfony、VirtualHost の投稿を表示しています。 すべての投稿を表示
ラベル 講座、Symfony、VirtualHost の投稿を表示しています。 すべての投稿を表示

2011年3月23日水曜日

3/23覚書

腰痛のため4時間目後半から参加。
詳しくは講習の記録をご参照くだされ。

☆準備でちゃんと聞けなかったところ
actions.class.phpの
public function executeIndex()
indexSuccess.php
太字の箇所は同じ名前にする。

ちょっと言い換えてみる。
actions.class.phpで
public function execute動的処理()
出力処理Success.php
この関係は同じ変数で管理するというイメージがいいのかな。
あと大事なこと。executeの後の項目名は最初大文字で。しないと動かないよ。



☆URLとアクションの関係
Symfonyではモジュール+アクションのページ構成が基本となる。
【例】
member_addモジュールのinputアクションにアクセスするとき。
http://www.shonanbbs.com/member_add/input

あと、Virtualhostの設定間違えてた・・・_| ̄|○ゴメンヨー
<VirtualHost *:80>
    ServerName www.kikin.com
    DocumentRoot /home/kikin/web

    <Directory "/home/kikin/web">
        AllowOverride All
        Options -Includes -ExecCGI
    </Directory>

</VirtualHost>

<VirtualHost *:80>
    ServerName www.shonanbbs.com
    DocumentRoot /home/user(要修正)/bbs2/web

    <Directory "/home/user(要修正)/bbs2/web">
        AllowOverride All
        Options -Includes -ExecCGI
    </Directory>
</VirtualHost

以上を踏まえて練習問題。
☆bbs2にblogモジュールを作って出力。

1.PuTTYから一般ユーザーでbbs2に移動→以下実行
symfony init-module front blog
Eclipceに移動→F5で/bbs2/apps/front/modules/blogができてるよ。

2.そこのaction.class.phpを開いたら、
$this->forward('default', 'module');をコメントアウトか
return sfView::SUCCESS;に置き換えちゃおう。

これの意味の詳しいのは基金訓練WEBで。
基本return sfView::SUCCESS;しか使わないようだけどね。

3./blog/templatesのindexSuccess.phpに何か書いてみよう。

4.http://www.shonanbbs.com/blogにアクセス。


5時間目
CSSのこと。

まあこれもFizzBuzzできてりゃなーんとなくわかると思う。
Symfony+CSS使いはかーなーり、重宝されるそうな。
CSSはテンプレサイトいっぱいあるし、見た目で選べるから楽だよ。

CSSでIDは1ページにひとつだけ。クラスは何個でもOK。
実際に作ってみました。

/bbs2/apps/front/templates/layout.php
ちょっとだけ崩れてるかも。ごめんよう。
<div id="header">
SHONANBBS
</div>

<div id="contentWrappr">
<div id="contentLeft">
<?php echo $sf_data->getRaw('sf_content') ?>
</div>

<div id="contentRight">
MENU
<a href="/member_add/input">会員登録</a>
</div>

<div class="clr"></div>
</div>

<div id="footer">
COPYRIGHT © SHONANBBS
</div>

/* */CSSのコメントアウトだよー。
/bbs2/web/css/main.cssの記述
ちょっと違ってるかもだけどごめん。

/* ヘッダ情報 */
#header {
border-bottom:1px solid #ddd;
margin-bottom:10px;
background-color:#228b22;
}
/* ページ全体のレイアウト */
#contentWrappr {
width:850px;
margin:0 auto;
}
/* 左段落レイアウト */
#contentLeft {
width: 600px;
float: left;
}
/* 右段落レイアウト */
#contentRight {
width: 250px;
float: right;
}
/* フッター情報 */
#footer {
border-bottom: 1px solid #ddd;
margin-bottom:10px;
}
/* フロート処理クリア */
.clr {
clear: both;
}

つかCSS久々過ぎて構文吹っ飛んでたさ・・・。
思い出したら馬鹿さ加減でもうね。・ ゚・。* 。 +゚。・.。* ゚ + 。・゚・(ノД`)

ちょっとメモ。
デバッグ用アドレス*****_dev.php/
【例】front_dev.php/

☆練習問題

user_addモジュールにinput、confirm、resultのactionを入れよう。
ページの内容は名前を入力→確認→完了の流れで作ろう。
できたらMENUの下に会員登録ってリンクつけてね。

ちょwwwレヴェル高杉wwwww
でした。
その前の段階のあることをやってなかったもんで;

同時進行でやるとケアレスミス多発でした。
構文は間違ってないのにページ出ねえぇええええ!

☆どうもPOSTやGETの説明だったみたい。

actionでは
$this->変数 = $this->getRequestParameter("変数");
これだけでPOSTもGETも処理するんだって。

defaultのaction.class.phpに記述。
  public function executeIndex()
  {
 $this->name = $this->getRequestParameter("name");
 $this->address = $this->getRequestParameter("address");
 $this->hobby = $this->getRequestParameter("hobby");
   return sfView::SUCCESS;
  }
で、View側。
HELLO! ENOSHIMA!<br>

私の名前は<?php echo $name;?>です。<br>
住所は<?php echo $address;?>です。<br>
趣味は<?php echo $hobby;?>です。<br>

<hr>

<form action="/" method="POST">
名前:<input type="text" name="name"><br>
住所:<input type="text" name="address"><br>
趣味:<input type="text" name="hobby"><br>
<input type="submit" name="send" value="送信">
</form>

このとき最初は表示されなくて、すごく悩んでいたんでつが・・・気づかなかったんでつよ。
formがfromとか。

なんかね、もう。ばかばかばかばかばかばか。

あとは、別actionのページ作ってください、ってとき。
newsSuccess.phpと書かねばならないところを、
news.Success.phpとか書いてた・・・・・・・・・・・・。


・ ゚・。* 。 +゚。・.。* ゚ + 。・゚・(ノД`)


それからやっとこの意味がわかった。

対応するビューは各モジュールのtemplatesディレクトリに次のような命名ルールで関連付けられています。

アクション名 + ビューの種類.php

わかるとなんでもないことなんだよなああああああああああ。

明日は這ってでも行くんで、腰痛よ、治まってくれ~~~~。


以下超ネタバレ。今後のために自力解決推奨。

1.PuTTY一般ユーザーからbbs2で以下実行
symfony init-module front member_add

2.action.class.phpを下記に変更
  public function executeConfirm()
  {
 $this->name = $this->getRequestParameter("name");
   return sfView::SUCCESS;
  }
  public function executeInput()
  {
   return sfView::SUCCESS;
  }
  public function executeResult()
  {
   $this->name = $this->getRequestParameter("name");
   return sfView::SUCCESS;
  }

3.以下のページ作成
/bbs2/apps/front/modules/member_add/templates/confirmSuccess.php
中身
名前:<?php echo $name;?>です。<br>

<hr>

<form action="/member_add/result/" method="POST">
<input type="hidden" name="name" value="<?php echo $name;?>">
<input type="submit" name="send" value="完了">

</form>

/bbs2/apps/front/modules/member_add/templates/inputSuccess.php
中身
メンバ登録!<br>

<hr>

<form action="/member_add/confirm/" method="POST">
名前:<input type="text" name="name"><br>
<input type="submit" name="send" value="確認">
</form>
/bbs2/apps/front/modules/member_add/templates/resultSuccess.php
中身
完了しました。

4.http://www.shonanbbs.com/member_add/inputでテスト。

2011年3月22日火曜日

3/22覚書

1時間目
1.USBからkikinフォルダをコピー
・rootからkikinユーザー作成(パスワードは任意)
2.FFFTPをあげてkikinで新規ホスト作成。IPアドレスはVMWare playerと一緒
3.接続できたらkikinディレクトリへ1.でコピーした中身をすべてアップロード
4.vi /etc/httpd/conf/httpd.conf
を開き下記追加
<VirtualHost *:80>

    DocumentRoot /home/kikin/web
    ServerName www.kikin.com
    ErrorLog logs/kikin.com-error_log
    CustomLog logs/kikin.com-access_log common

    <Directory ~/home/kikin/web~>
        AllowOverride All
        Allow from All

        Options -Includes -ExecCGI
    </Directory>
</VirtualHost>
ちょっと上にあるNameVirtualHost *:80の前の#取ってね。

5.Apache再起動
/etc/init.d/httpd restart
実行

httpd を停止中: [ OK ]
httpd を起動中: [ OK ]

ってなればおkだよ
6.C:\WINDOWS\system32\drivers\etc\hosts\hosts.confをエディタで開いて
192.168.***.***(自分のIP) www.kikin.com
を入れて保存。

2時間目
開始8分で停電。
今後の課題用WEBアプリの設計図を作成。
自分の好きなこと、やりたいことでおkだけど、思いつかない人はブログ。

3時間目
お昼挟んで停電復旧。
1~2時間目でやりきれなかった処理を終わらせる。

4時間目
パーミッション変更コマンド
cd /home/でhomeディレクトリに移動して、以下コマンド実行
chmod -R 755 kikin
kikinディレクトリのパーミッション(アクセス権)を775に変更する。

cd /home/kikin/config/
でディレクトリ移動し、
vi config.php
でconfig.phpを開く。
su - kikin
でkikinユーザーへ移動し、
symfony fix-perms
でパーミッション修正。
symfony cc


5時間目
cd /home/kikin/web/
に移動
tar -xvzf img.tar.gz
で解凍
一般ユーザーへ変更し以下を実行
mkdir bbs2
bbs2ディレクトリ作成
cd bbs2
bbs2ディレクトリへ移動

symfony init-project bbs2
symfonyプロジェクト作成


アプリケーションファイル作成
symfony init-app front

アプリケーションの中にデフォルトモジュール作成
symfony init-module front default


6時間目

vi /etc/httpd/conf/httpd.conf
を開いて下記追加
<VirtualHost *:80>
        ServerName www.shonanbbs.com
        DocumentRoot /home/自分のユーザー名/bbs2/web

        <Directory ~/home/自分のユーザー名/bbs2/web~>
                AllowOverride All
                Options -Includes -ExecCGI
        </Directory>
</VirtualHost>

/etc/init.d/httpd restart
で再起動


リモート・システム・エクスプローラー

リモート・システム・エクスプローラーは、Eclipse3.4で新設された機能。
Eclipseのワークスペースの外のディレクトリーやファイルを参照できる。
(要するにWindowsのエクスプローラーやftpツールと同じ)
リモート・システム・パースペクティブ

メニューバーの「ウィンドウ(W)」→「パースペクティブを開く(O)」→「その他(O)」で
「リモート・システム・エクスプローラー」を選択すると「リモート・システム」パースペクティブが開く

左側ウィンドウで右クリック→新規→接続→SSHのみでOK→ホスト名は自分のIP。
貼り付ければ接続名も勝手に入る。ID/PASS保存チェック。で完了。

確認メッセージはすべてはい。
/home/ユーザー名/bbs2/apps/front/modules/defalut/actions/actions.class.phpを開き、
$this->forward('default', 'module');を削除して
return sfView::SUCCESS;に置き換え。
/home/ユーザー名/bbs2/apps/front/modules/defalut/actions/indexSuccess.phpに
hello enoshima!
とでもいれませう。
保存したら次にPuTTYで一般ユーザーでbbs2フォルダへ移動し、
symfony fix-perms
symfony cc
実行。
これでhelloでたらおk。

※なぜかうまくいかーん状況。
理由はタイプミスですた;
cd apps/front/modules/
でモジュールの中見たらdefalutになってた_| ̄|○
rm -rf defalut/でリネームして落ち着きますた。

明日は地震の埋め合わせの開講。木曜日3/24と5/9は7時間授業やるぞー。