Pages

2013年3月13日水曜日

Zend Framework2 の ZFTool を利用してみる

http://framework.zend.com/manual/2.1/en/modules/zendtool.introduction.html

を参考に今回はComposerを入れるのも嫌だったので、Manual installation コースでお試しです。

vendor 以下に ZFTool というディレクトリで設置。
vendor/ZFTool ってとこですね。

$ php zf.php
と実行するも preg_match のエラーがやたらと出る。。

どうやら
http://d.hatena.ne.jp/kou_i/20111120/1321778316
を見ると PCRE のバージョンが7.0より古いからだと。。
確認すると 6.6 だった。。

仕方ないPCREをアップデートするか。。
ってyumからはちょっとレポ追加する事になりそうだったので、ソースからする事に。

http://d.hatena.ne.jp/IT7C/20101003/1286086401
を参考に入れる。
入らない。。

http://d.hatena.ne.jp/rx7/20081031/p1
を見るとどうやら gcc-c++ が必要だと。。
確認するとたしかに入ってない。。

それはyumから追加

これでpcreを
# ./configure
# make
でエラーが出ない事を確認して、yumで古いPCREを削除して。。。。。。。。
ダメだ関連パッケージがやばすぎる。。

って事でやめました。。
おとなしくCentOS6環境を用意する事に。。

Zend Framework2 チュートリアルのセットアップ

公式のサンプルソースは全て
https://github.com/zendframework
で入手可能。

ひとまずそこから ZendSkeletonApplication を取得
https://github.com/zendframework/ZendSkeletonApplication
※ZIPボタンからダウンロード

これを解凍して設置したい場所にアップロードする。
※別にサーバー上で解凍してももちろんOK。。
※ドキュメントルートは public に設定するので、ドキュメントルートの1階層上になる感じで。

次にサーバーにtera termやらで接続して、アップしたディレクトリ内の composer.phar があるディレクトリに移動する。

で、
$ php composer.phar self-update
$ php composer.phar install
と実行する。

すると vendor 内にフレームワークが取り込まれる。
これで基本設置は完了で、ここからチュートリアルのソースを設置する。
試しにアクセスしてみると、Welcomeなんちゃらってページが表示される。たしかそんなんだった。。

チュートリアルは zf2-tutorial という名前である。
https://github.com/zendframework/zf2-tutorial
からソースを取得して、解凍してアップする。

この時に自分はフレームワークは新しい方が良かったので、
composerなど不要と思われるものはアップしませんでした。
試しにアップして

$ php composer.phar self-update
$ php composer.phar install
してみると解るんだが、ダウングレードされました。

で、このままの状態でアクセスすると下記のようなエラーがでる。。

An exception was raised while creating "Album\Model\AlbumTable"; no instance returned

原因はDBに接続できてないから。
/config/autoload/local.php.dist
の中身を修正してファイル名を
/config/autoload/local.php
に変更する。

これでページにアクセスすると下記のようなチュートリアルページが表示されて終了~。

自分で勉強しながらって人は過去の記事にも書いた気がするけど、
http://framework.zend.com/manual/2.1/en/user-guide/modules.html
を追って行けばできます。






2013年3月12日火曜日

MongoDb を入れてみた


CentOS 5.8 に MongoDb 2.2.3 を入れてみた。

$ su -
# cd /usr/local/src
# wget http://downloads.mongodb.org/linux/mongodb-linux-i686-2.2.3.tgz
# tar zxvf mongodb-linux-i686-2.2.3.tgz
# mv mongodb-linux-i686-2.2.3.tgz ../

# ln -s /usr/local/mongodb-linux-i686-2.2.3 /usr/local/mongodb
# ln -s /usr/local/mongodb/bin/bsondump /usr/local/bin/bsondump
# ln -s /usr/local/mongodb/bin/mongo /usr/local/bin/mongo
# ln -s /usr/local/mongodb/bin/mongod /usr/local/bin/mongod
# ln -s /usr/local/mongodb/bin/mongodump /usr/local/bin/mongodump
# ln -s /usr/local/mongodb/bin/mongoexport /usr/local/bin/mongoexport
# ln -s /usr/local/mongodb/bin/mongofiles /usr/local/bin/mongofiles
# ln -s /usr/local/mongodb/bin/mongoimport /usr/local/bin/mongoimport
# ln -s /usr/local/mongodb/bin/mongorestore /usr/local/bin/mongorestore
# ln -s /usr/local/mongodb/bin/mongos /usr/local/bin/mongos
# ln -s /usr/local/mongodb/bin/mongosniff /usr/local/bin/mongosniff
# ln -s /usr/local/mongodb/bin/mongostat /usr/local/bin/mongostat

# useradd mongod
# mkdir -p /var/lib/mongo
# mkdir -p /var/log/mongo
# chown mongod.mongod /var/lib/mongo
# chown mongod.mongod /var/log/mongo

自動起動のためにソース版からちょこっとファイルを拝借。。

# cd /usr/local/src
# wget http://downloads.mongodb.org/src/mongodb-src-r2.2.3.tar.gz
# tar zxvf mongodb-src-r2.2.3.tar.gz
# cd mongodb-src-r2.2.3/rpm
# cp init.d-mongod /etc/rc.d/init.d/mongod
# vi /etc/rc.d/init.d/mongod
-----
mongod=${MONGOD-/usr/bin/mongod}
-----
↓ 修正

-----
mongod=${MONGOD-/usr/local/bin/mongod}
-----


# chmod +x /etc/rc.d/init.d/mongod
# cp mongod.conf /etc/mongod.conf

# service mongod start
# chkconfig mongod on

Redisを入れてみた

今回入れたサーバーは CentOS 5.8 32bit です。


$ su -
# cd /usr/local/src
# wget http://download.redis.io/redis-stable.tar.gz
# tar zxvf redis-stable.tar.gz
# cd redis-stable
# make

CC sentinel.o
LINK redis-server
zmalloc.o: In function `zmalloc_used_memory':
/usr/local/src/redis-stable/src/zmalloc.c:223: undefined reference to `__sync_add_and_fetch_4'
collect2: ld returned 1 exit status
make[1]: *** [redis-server] Error 1
make[1]: Leaving directory `/usr/local/src/redis-stable/src'
make: *** [all] Error 2
こんなエラーで中断
一先ず
# make clean

http://stackoverflow.com/questions/13472631/redis-installation-error-on-centos-5-8
を参考に

# cd src
# vi Makefile

-----
$(MAKE) CFLAGS="-m32" LDFLAGS="-m32"
-----

-----
$(MAKE) CFLAGS="-m32 -march=i686" LDFLAGS="-m32"
-----
に修正

続いて
# vi .make-settings

-----
OPT=-O2
-----

-----
OPT=-O2 -march=i686
-----
に修正

# cd ..
# make 32bit
# make test

tcl8.5が必要ってエラー出るのでテストはやめて

# make install

動作確認
redis-server
これでサーバを起動

起動させたまま、別のターミナルで
$ redis-cli
$ redis> ping
PONG
$ redis> set foo bar
OK
$ redis> get foo
"bar"
$ redis> quit

自動起動の設定
# cd /usr/local/src/redis-stable/utils
# ./install_server.sh

全部デフォルトで

Please select the redis port for this instance: [6379]
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf]
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log]
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379]
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server]
s#^port [0-9]{4}$#port 6379#;s#^logfile .+$#logfile /var/log/redis_6379.log#;s#^dir .+$#dir /var/lib/redis/6379#;s#^pidfile .+$#pidfile /var/run/redis_6379.pid#;s#^daemonize no$#daemonize yes#;
which: no chkconfig in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/goontic/bin)
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
which: no chkconfig in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/goontic/bin)
./install_server.sh: line 178: update-rc.d: command not found
 exists, process is already running or crashed
Installation successful!

# vi /etc/init.d/redis_6379

何故か上の方の改行がおかしかったので、修正して

2行目に下記を追加
-----
# chkconfig:    345     80      20
# description: anything
-----

-----

#/bin/sh
# chkconfig:    345     80      20
# description: anything

#Configurations injected by install_server below....

EXEC=/usr/local/bin/redis-server
CLIEXEC=/usr/local/bin/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis/6379.conf"

REDISPORT="6379"

###############

-----

# service redis_6379 start

# chkconfig redis_6379 on

Followers