iwason diary

健康、プログラミング、日常系などなど

memcached をCentosで使ってみる

memcachedをCentOSで使ってみます。

環境

CentOS release 6.3 (Final)

 

参考 

 

yum install libevent libevent-devel
 
2012/11/14現在の最新を取得します。
# wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
# tar zxvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15
# ./configure
# make
# make install
# ls -l /usr/local/bin/memcached
-rwxr-xr-x 1 root root 309228 11月 13 23:03 2012 /usr/local/bin/memcached
 デフォルトだと/usr/local/bin/配下にインストールされます。
デーモンで実行!
# /usr/local/bin/memcached -p 11211 -m 64m -d
 
失敗して以下のメッセージが出ます
can't run as root without the -u switch
 
ユーザを指定する必要がありそう。
デフォルト設定でユーザを追加し、指定して実行します。
# useradd memcached
# /usr/local/bin/memcached -p 11211 -m 64m -d -u memcached
 
動いた!
 
phpで実行するために幾つか追加します
 yum -y install php-pecl-memcached
 
httpdをリスタートして、phpでmemcachedが使えるか確認します。
# /etc/init.d/httpd restart
# php -i | grep memcached
/etc/php.d/memcached.ini,
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcache memcached
実際にサンプルコードを動かします。
# vim test.php
<?php
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);
$memcached->flush();
$number = 100;
$text = 'Hello World !!';
$list = array(1, 2, 3);
 
$memcached->set('number', $number);
$memcached->set(2, $text);
$memcached->set(3, $list);
 
var_dump($memcached->get('number'));
var_dump($memcached->get(2));
var_dump($memcached->get(3));
 
実行結果
int(100) string(14) "Hello World !!" array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
 
 
出来ました!

eclipse3.7 をwindows7 64bit版で使う!

eclipseを日本語で使いたい場合によくPleiades All in Oneを使用しますが、

公式では32bit版しかないようでしたので、

eclipse3.7 をwindows7 64bit版で使う方法を記載しておきます。

 

とおもったらとても詳しくこちらの方が記載していましたので、

参考にさせていただきました。

http://d.hatena.ne.jp/goriponsoft/20111013/1318432116

 

以下作業ログ

1,Java版のためEclipse Indigo (3.7) をここからダウンロード

2,Pleiades All in One 日本語ディストリビューション ダウンロード

JREなし版でOK。

3,JStyleの64bit版をダウンロード

 jstyle_3.7.2.0-64bit.zipをダウンロードしました。

4,ダウンロードしたzipファイルを展開

 

 

Pleiades All in Oneを統合

展開したフォルダの中から

"eclipse\eclipse.ini"、

"eclipse\eclipse.exe -clean.cmd"、

"eclipse\eclipse.exe startup.cmd"

"eclipse\dropin\"、

".metadata.default\"

Eclipseの方に統合・上書き。

 

 eclipse\eclipse.iniを編集

4行目

plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502

↓ 赤字を追加

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502 

 

 JStyleを統合

展開したフォルダの中から"plugins"フォルダをEclipseの方に統合。

 

 これでバッチリ起動しました!!

goriponsoftさん ありがとうございますm(__)m

 

php5.2未満における httpOnly属性設定

Adobe Developer Connection

Securing your applications using HttpOnly cookies with ColdFusion

 javascriptによるsession idの盗聴を防ぐために、HttpOnly属性を設定すべきだということです。

 

PHP5.2以降であれば以下の設定のいずれかにて実現できます。

コード内の場合

ini_set('session.cookie_httponly', 1); 

php.iniで設定

session.cookie_httponly

cookie発行時に設定(第7引数)

setcookie( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )

 

PHP 5.1.x 以前の PHPの場合、上記の方法は使用できませんが、

header() 関数を使用すれば Cookie に HttpOnly 属性を付加することが可能です。

 

header("Set-Cookie: PHPSESSID=".session_id()."; httpOnly; path=/");

 

以前はFireFoxで対応していない等があったが、 

RFC6265 で定義されたため、現在は

Internet Explorer 6 SP1以降
Firefox 2.0.0.5以降
Google Chrome 1.0以降
Safari 4.0以降

では対応済みだそうです。

 

参考サイト

http://www.studyinghttp.net/cookies#Set-Cookie

http://d.hatena.ne.jp/t_komura/20060812/1155349717

http://d.hatena.ne.jp/ryster/20080229/1204304780

 

yii shop を使ってみる

 

前回 yiiのモジュールを配置するところまでやりましたので、

実際にyii shop モジュールを インストールします。

 

まず、設定ファイルにDB接続情報を記入します。

(ここでのユーザにCreate権限がある必要があります。)

# vim protected/config/main.php

f:id:mentai-cream-calamari205:20121027163046p:plain

あとは画面の指示に従うだけですが、

デフォルトのままですと、画面右側のテーブル名に

自動的にされてしまいますので、適宜修正しましよう。

 

テーブル名を指定したら、

[Install WebShop]のボタンを押します。

 

 

f:id:mentai-cream-calamari205:20121028214954p:plain

インストール完了。実際の画面を見てみます。

 

 f:id:mentai-cream-calamari205:20121028231324p:plain

 

商品の選択画面です。

すでにテスト商品が配置され、上のタブでカテゴリがわかれています。

f:id:mentai-cream-calamari205:20121028231446p:plain

商品詳細画面です。

数量選択とオプションの選択肢、

ショッピングカートに追加ボタンがあります。

 

f:id:mentai-cream-calamari205:20121028231639p:plain

 

黄色の枠でメッセージが出ます。しばらくすると

フェードアウトします。

また、右のナビに現在のショッピングカートの情報が載ります。

ショッピングカートを見ると以下の様な画面になりました。

f:id:mentai-cream-calamari205:20121028231823p:plain

 

ユーザ機能以外にも、

管理者用ページがありました。

 

/protected/components/UserIdentity.php がデフォルトのままであれば、

user :admin

pass :admin

でログインし、

index.php?r=shop/shop/admin

にアクセスすると、商品カテゴリ、商品、注文状況などを管理するページにアクセスすることができます。

 

f:id:mentai-cream-calamari205:20121029005445p:plain

 

 

デフォルトでここまでできますので、

使ってみてはいかがでしょうか。

Linux yum mysql インストール

 ささっとmysqlをインストールします。

 

# yum install mysql-server    ← mysqlではないので注意

設定ファイル編集

# vim /etc/my.cnf

#追加
default-character-set=utf8

自動起動の設定

# chkconfig --list mysqld

# chkconfig mysqld on

mysql起動

# /etc/rc.d/init.d/mysqld start

パスワード設定

# mysqladmin -u root password '設定したいrootパスワード'

# mysql -u root -p

 

 インストール完了!!

 

 

yii モジュール インストール

Yii Framework の基本機能のうち、最初から入っていないものに

モジュール(modules)があります。

http://www.yiiframework.com/doc/guide/1.1/ja/basics.module

モジュールは、モデルビューコントローラ およびその他の支援的コンポーネントから構成される自己完結したソフトウェアユニットです。

 

機能毎に完結したサイトをモジュールとして用意し、

親のサイトにくっつけるという印象でしょうか。

 

今回サンプルとしてYii Shop というものをインストールしてみます。

http://www.yiiframework.com/extension/yiishop/

 

説明を読むと、自分のサイトに簡単にWeb Shopが開けるとのことですので、

支払い系の簡単なテストサイトを作るには便利なのではないでしょうか。

 

以下作業手順

検証環境

OS CentOS release 6.2 (Final)

PHP 5.3.3 (cli) (built: Jul  3 2012 16:53:21)

Apache/2.2.15 (Unix)

Yii 1.1.12

DocumentRoot /var/www/html/ 

 

まずprotected配下にmodulesディレクトリを生成します。

# mkdir /var/www/html/protected/modules/

モジュールをwebから取得し、解凍します

# wget http://www.yiiframework.com/extension/yiishop/files/yii-shop_0.7rc3.tar.bz2

# tar jxvf yii-shop_0.7rc3.tar.bz2

 
これで、モジュールが配置できました。 
protected/modules/shop
yii の設定ファイルにこのモジュールを使うための指定をします。
# vim /var/www/html/protected/config/main.php
'modules'=>array(
                 'shop' => array( 'debug' => 'true'),//Yii shop 用指定
),
ブラウザで
index.php?r=shop/install
にアクセスするとインストール画面が出ます。
 

f:id:mentai-cream-calamari205:20121027163046p:plain

 

モジュールの配置はこんな感じです。

 

Yii ShopはDBの設定が必要なので

別回で紹介します。

yii インストールからWebアプリ生成まで

phpフレームワーク

Yii Frameworkをインストールします。

環境 

CentOS release 6.2 

PHP 5.3.3 

 

http://www.yiiframework.com/doc/guide/1.1/ja/quickstart.installation

 

wget http://yii.googlecode.com/files/yii-1.1.12.b600af.tar.gz

# tar zxvf yii-1.1.12.b600af.tar.gz

# mv yii-1.1.12.b600af yii

 

ここで自分の使用しているサーバがYiiの使用要件を満たしているかを確認します。

http://hostname/path/to/yii/requirements/index.php

 

sakuraのデフォルトだといろいろ足りなかったのでyumで追加

yum install php php-pdo php-mysql php-xml

 

結果こんな感じになりました。

 

f:id:mentai-cream-calamari205:20121026005721p:plain

 

 まぁあとは必要になったらということで。

 

 

 ここで適当にアプリを生成します。

# php framework/yiic.php webapp iwason

Your application has been created successfully under /var/www/html/iwason.

 
早速アクセスするもPHP worningが・・・
date(): It is not safe to rely on the system's timezone settings. 

php.iniに追加。

# vim /etc/php.ini

date.timezone = Asia/Tokyo

 
サンプルアプリがさくっと完成しました。
 
簡単ですね!!
 

f:id:mentai-cream-calamari205:20121026010926p:plain

 

  

今回はここまで。