今度こそインストールしてみる。
今朝日本語化のパッチだったことが判明して、ショックも覚めやらない間に今度こそとチャレンジ。
まずはダウンロード
ダウンロード
% wget http://codeigniter.com/download.php -O codeigniter.zip
解凍したら適当な場所に置く。
ちなみに、一昨日まで、自分のMacにMySQLやらPHPやらをインストールしていたけど、
よくよく考えると、会社のみんなで使っているレンサバがあって、PHPとか、MySQLやら環境がそろっているし、なにより、外からもアクセスできるから
そっちでよくね?ということに気がついたので、そのレンサバで勉強することにしました。
なぜあんな無駄な時間を・・・
とは思いませんが、はじめからそうしたら良かったとちょっと後悔。
話は戻って、今回はこんな感じでセットアップ。
まずはサーバーの環境
サーバーのディレクトリ構成
~/htdocs # 自分用DocumentRoot ~/var/apps # いろんなアプリケーション置き場
マニュアルみたら、解凍してできたフォルダをごっそりDocumentRoot配下に置きなさい的なことが書いてあったが、
いろんなソースをDocumentRoot配下に置くのは好きくないので、エントリポイントだけDocumentRootにおいて、アプリ部分を外から見れない他のディレクトリに展開することにする。
まずは解凍したフォルダをアプリ置き場に展開
cp -Rp ~/tmp/CodeIgniter_1.7.1 ~/var/apps/hello_igniter
エントリポイントのファイルをいじる
単純に考えてエントリポイントのindex.phpにアプリへのパス的なものが書いてあるんだろうと思って開いて見ると案の定パスが書いてあったので、パスを修正
% vim ~/htdocs/index.php
14〜26行目付近を見てみると、
systemのフォルダがこのファイル(index.php)と違うディレクトリにあるなら、ここを書き直せよ的なことが書いてあったので
この$system_holderってところを修正する
<?php ・・・ /* |--------------------------------------------------------------- | SYSTEM FOLDER NAME |--------------------------------------------------------------- | | This variable must contain the name of your "system" folder. | Include the path if the folder is not in the same directory | as this file. | | NO TRAILING SLASH! | */ # $system_folder = "system"; $system_folder = "../../var/apps/hello_igniter/system";
これでおk
ブラウザで確認
あとはブラウザでアクセスするとwelcomeページが見れる。
http://hogehoge/hello_igniter/
ばっちり
一つのプロジェクトで複数のRailsアプリを管理したい
ひとつのプロジェクトで複数のRailsアプリケーションを開発する際のお約束ふたつ
を読んで、フムフムとおもっていたけど、
branchとかtag切ったときはexternalsの設定ってどうなるんだろうと思って試してみたら
externalsの設定はそのまま引き継がれてしまうので、branche側でもexternalsのところはtrunkを向いたままになる。
こいつは微妙だと思って調べたらexternalsは相対パスが切れるとのこと。
おぉ!すげー!これでバッチリじゃん。
とおもったけど会社のsubversionは1.4でした。
ほんとに残念。
さてどうするか。。。
そろそろ本気出す。
いい加減MySQLやらApacheやらPHPやらを入れて勉強した気になっているのもまずいかな?
とおもって、そろそろ冗談抜きにCodeIgniterをやってみよう。
で、さっそくCodeIgniterでググる。
なんかチュートリアルの動画があったので見てみたが、一番はじめの動画を半分くらいみて挫けた。
挫けたとはいいつつも、なんなくノリがわかったので早速使ってみる。
マニュアルをみる
zipを解凍したらuser_guide_jaというマニュアルが入ってた。
HTMLなので、いつでも見れるように適当なサーバーにアップしておく。
えらいおれ。
で、ちょっとやってみようと思ったが、上記のURLでとってきたファイルの中身が全然足りない気がする。
マニュアルに載っているファイルがふつうにない。。。
要調査だなぁ。
今日は劇的に眠いのでねることにするけど、
きっと明日朝起きたらファイルができているに違いない。
今日はApacheとPHPを入れてCodeIgniterを勉強した気になることにする
昨日はMySQLを入れてただけでCodeIgniterをだいぶ勉強した気になったので
今日はApacheとPHP5を入れてCodeIgniterを勉強した気になってみることにした。
ApacheもPHPもMacには標準で入っているけど、あえてportで入れ直すんだ。
ちなみに今回はid:unlearnedのブログを参考にした。というかまんま。
id:unlearnedはほんとにおもしろい人で、ほんとにおもしろい人なんだ。
どれくらいおもしろいかって言われても僕の安っぽい比喩ではとても表現しきれないくらいおもしろいんだ。
さて、インストールをしよう。
インストール
% sudo port install php5 +pear +apache2
途中、port clean php5しろ、とか言われる。port installedで見ても入っていないのに何でだろうと思いながらも
言われたとおりにやる。
% sudo port clean php5
今度はsqlite3をcleanしろとか言われたので、こちらも実行
% sudo port clean sqlite3
自分のよくわかっていなさにびっくりだ。
apxsを使ってhttpd.confに書き込む
% cd /opt/local/apache2/modules % sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
apache起動
% sudo /opt/local/apache2/bin/apachectl start
ブラウザで確認
http://localhost/hoge.php
MySQLをインストール
そういえば、インターンではMySQLを使うと聞いたような気がするのでMySQLの環境も作ることにする。
家ではたいしたコードを書かないのでいつもSQliteにお世話になっていたため、MySQLの環境を作らないといけない。
漢はだまってMacPorts。
インストール
% sudo port install mysql5-devel +server
初期化
% sudo /opt/local/bin/mysql_install_db5 --user=mysql
my.cnfの編集
defaultのやつをコピー
% sudo cp /opt/local/share/mysql5/mysql/my-medium.cnf /opt/local/etc/mysql5/my.cnf
innoDBを使いたいので[mysqld]の以下のコメントアウトをはずしてencodingの設定をしておく
#innodb_data_home_dir = /opt/local/var/db/mysql5/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /opt/local/var/db/mysql5/ #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit = 1 #innodb_lock_wait_timeout = 50 # set encode default-character-set=utf8
そういえば、起動したときに
#innodb_log_arch_dir = /opt/local/var/db/mysql5/
パーミッションを変更
% sudo chown -R mysql:mysql /opt/local/var/db/mysql5/ % sudo chown -R mysql:mysql /opt/local/var/run/mysql5/
起動
% sudo /opt/local/bin/mysqld_safe5 --user=mysql &
接続してみる
% mysql5 -u root
終了
% sudo /opt/local/bin/mysqladmin5 -u root shutdown
今日はここまで。
デプロイにはrsyncを使う予定
ステージングから本番にアップするときはrsyncを使う予定。
と言われるかもしれないけど、
capistranoは使わない。
こまごまと理由はあるけど、一番大きな理由はコレ↓
svnにコミットはされていてもアップしたくないファイルがある。
本番にあげる要件、機能毎にブランチ切るべきなんだろうけど、結構細かい修正が多いので
その運用は億劫。そもそもデザイナにそれを強要できないし、毎回システム側でそれをやるのも
めんどくさい。
分散環境で運用するので、capistranoを使ってデプロイするのが楽なんだけど
諸所考えてrsyncを使う。
というわけでrakeにデプロイ用のタスクでも作ることにする。
capistranoでrsyncのexcludeみたいにできればいいのだが。。。