fc2ブログ

仮想環境での MacOS導入予定

 最近は、ipod touch と ipad2 をよくつかうように
 なってきました

 主な使用用途としては ipad は電子書籍や資料
 自炊したものを読むのと、サーバー管理などに使います

 ipod touch は持ち運びしやすいため
 モバイルルーターを使って GPS 機能を使うこと
 音楽関連に使うことが多くなりました

 Android 携帯でもいいのですが
 電池の減りが早いのと、あとフリーズ率高めなので
 通信のよさ以外はまだまだなかんじがします

 もうすぐ、機体 Android 4.0 以降に対応してくれば
 マシンスペックも上がり、安定しそうなので
 それまで機種変は我慢します
 
 現在、充電が micro USB なため
 今後搭載されると思われる充電形式 Qi が搭載されるのを待ちます

 さて、思いっきり脱線しましたが、今回の目的は
 仮想環境に MacOS X を入れるための情報収集をしていて
 参考サイトなどを見つけたので、今後の復習や忘れたときの対策として
 メモしてみました

 仮想環境に windows でもいいのですが
 最近の windows 7 とかだとスペックは要求されるし
 価格が一番の問題です

 ちなみに、比較してみました

 まず MAC OS X 10.6.3 SNOW LEOPARD




まぁ5000円近くですが、頑張ればなんとかなります

 次に Windows7 32bit のほうですが
 パッケージで購入と、DSP 、OEM などの購入方法があります

 これらの解説は
 Windows のパッケージ版、OEM 版、DSP 版の選び方
に載っています
 単純に言ってしまえば、セット販売で買うの DSP と OEM になります
 そのぶん安くはなりますが、ライセンスの問題でパーツの縛りがついてきます

 ちなみに、価格ですが 
 Microsoft Windows7 Home Premium 32bit 日本語 DSP版 + メモリ

 
 

 Windows 7 Home Premium 通常版 Service Pack 1 適用済み


 

となります

すでに倍以上になってしまうため、今回仮想環境の導入には
Mac OS X にする予定です

ちなみに、導入方法については
Windows上のVMWare PlayerでMac OS Xを動かす
に詳しく載っていたので
商品が届いて時間ができたら仮想環境へインストール予定です

もっとも、私の場合ホストOSが ubuntu なので、うまくいくかは微妙ですが....
スポンサーサイト



テーマ : プログラミング
ジャンル : コンピュータ

Java Script ゲームエンジンの入手

週刊アスキーにも掲載されていましたが
Javascirpt を使い、ゲームを作成できるようです

今回は、そのゲームエンジンをダウンロードしてみました

http://enchantjs.com/ja/?s=ja
よりダウンロードが可能です

この enchant.js は UEIで開発された HTML5 + javascript ベース
の開発エンジンです

書籍関連でもしらべてみたのですが
Amazon では
残念ながら売り切れで中古まちの状態でした


HTML5とJavaScriptでスマートフォンゲーム作成! ゼロからはじめるenchant.js入門【公式ガイド】




実際にゲームを作成するには javascript と HTML5
の知識、CSSなども必要になりますが

どんなものかを見てみたい場合には
enchant.js 入門 と検索してみると
サンプルや解説などがでてきます

PHP や Android 開発などについても
大抵は
入門 とか のキーワードを入れることでかなり検索しやすくなります

今回、この
enchant.js 入門で検索してみた結果

「enchant.js」でゲームを作ろう! HTML5とJavaScriptによるアクションゲーム制作入門
という解説サイトがヒットしました

また、
http://9leap.net/

ゲーム開発コンテストが行われていて
2011年には
優秀者には最新型の PC/Mac や図書カード5000円分などが贈呈され
最優秀者3名はアメリカのシリコンバレー視察ツアー、
および世界最大のゲーム開発者会議
Game Developers Conference 2011への参加権を
得ることができたようです

今後もいろいろとありそうなので、スキルアップしたら
こういったものに参加してみるとおもしろいし自信もつくと思います

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP DB接続情報の設定

DBを phpMyAdmin で作成したので
次に、DBへの接続情報の設定を行います
(本来は、SQLコマンドで作成できれば、のちのちsqlファイルから
コマンドで作成できるので、とても役立つのですが、これは今後の課題です)

とりあえず、それは置いておいて
必要なファイルを作成します

DBへの接続情報を設定するには
database.php に記述するのですが
初期の状態ではこのファイルは存在しません

そこで、database.php.default をコピーし
このファイルを作成する必要があります

cd /var/www/cakephp/app/Config/
で移動して

cp database.php.default database.php
でファイルを作成します

次に。vim database.php でファイルを開き


class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'database_name',
'prefix' => '',
//'encoding' => 'utf8',
);

public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'user',
'password' => 'password',
'database' => 'test_database_name',
'prefix' => '',
//'encoding' => 'utf8',


の部分を変更します

なお、パラメータについては
初心者のためのCakePHP2.0 プログラミング入門:

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

ちなみに、変更するのは default 項目のみ


class DATABASE_CONFIG {

public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'myapps_user',
'password' => 'phpMyAdminで決めたパスワード',
'database' => 'myapps',
'prefix' => '',
'encoding' => 'utf8',
);

というように変更します

変更したら、保存しファイルを閉じます

この状態でブラウザでアクセスしても
Your tmp directory is NOT writable.
となっているので、

次に
Your tmp directory is NOT writable.
の対処を行います

このメッセージは
tmp ディレクトリに書き込み権限がないことが原因です

試しに ls コマンドでパーミッションを調べてみます

ll ../../app/
合計 64
drwxrwxr-x 14 snowpool snowpool 4096 2012-02-05 16:03 ./
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 ../
-rw-rw-r-- 1 snowpool snowpool 141 2012-02-05 16:03 .htaccess
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-24 22:58 Config/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Console/
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-05 16:03 Controller/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Lib/
drwxrwxr-x 3 snowpool snowpool 4096 2012-02-05 16:03 Locale/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Model/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Plugin/
drwxrwxr-x 4 snowpool snowpool 4096 2012-02-05 16:03 Test/
drwxrwxr-x 2 snowpool snowpool 4096 2012-02-05 16:03 Vendor/
drwxrwxr-x 9 snowpool snowpool 4096 2012-02-05 16:03 View/
-rw-rw-r-- 1 snowpool snowpool 642 2012-02-05 16:03 index.php
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 tmp/
drwxrwxr-x 6 snowpool snowpool 4096 2012-02-05 16:03 webroot/

みてのとおり、wの権限がないため、書き込みできません

このため、この権限を変更します


chmod -R 777 /var/www/cakephp/app/tmp/

これで、権限が変更され、再度
http://localhost/cakephp
へアクセスすると、すべてオールグリーンとなり
使用可能となります

テーマ : プログラミング
ジャンル : コンピュータ

wordpress でソースコード表示プラグインの導入をしました

参考サイトは
SyntaxHighlighter Evolved : ソースコードを美しく表示するプラグイン


http://wordpress.org/extend/plugins/syntaxhighlighter/
へアクセスし
syntaxhighlighter.zip
をダウンロードします

次に
cd ~/ダウンロード
unzip unzip syntaxhighlighter.zip
で解凍

sudo cp -rp syntaxhighlighter /var/www/wordpress/wp-content/plugins/
でディレクトリごとプラグインへコピー

ブラウザを開き、wordpress のダッシュボードへログインし
プラグインの項目で
SyntaxHighlighter Evolved
を有効化にします

ちなみに、これだけではダメで
実際にコードの表示をするときには
SyntaxHighlighter Evolved 導入

にあるように
コード言語の指定をする必要があります

[php] コード [/php]

というようにします

<code> コード </code>
では普通のHTMLとなります

CakePHP DB設定

引き続き、CakePHP の設定となります


CakePHP のDB設定を行います

書籍を見ると、phpMyAdmin を使っているので
ここは同じように行います

ちなみに、参考書籍は基礎から学ぶ facebookアプリ開発




書籍ではWindows での XAMPP ですが
私の環境は ubuntu なので

Ubuntu(11.04)でLAMPP(Linux Apache MySQL PHP PHPMyAdmin)を構築!インストールと設定


を参考に設定します

いくつか必要なものもあるので

apt-get install php5-gd phpmyadmin
でインストールしました

インストールしている途中で MySQL の rootパスワードを聞かれるので
入力します
失敗しても、再度設定するか聞かれるので
とくに問題にはならないと思います

続いて
phpMyAdmin へアクセスします

http://localhost/phpmyadmin
でアクセスし

初期状態なら
ユーザ名 root
パスワード 設定したパスワード

としログインします

ログインしたら、データベースタグをクリックし
新規データーベース作成のところで
myapps と入力し作成をクリックします

次に、特権タブをクリックし。新しいユーザを追加する をクリック

ユーザ名 myapps_user
パスワード 任意のパスワード
で設定

上に sql コマンドがでるけど
たぶんこれは
実行結果だと思う


CREATE USER 'myapps_user'@'%' IDENTIFIED BY '***';

GRANT USAGE ON * . * TO 'myapps_user'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

GRANT ALL PRIVILEGES ON `myapps` . * TO 'myapps_user'@'%';

次は作成したDBを設定ファイルへ書き込みを行います

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP 初期設定

CakePHP を使うため、初期設定を行います


download 完了後、
unzip コマンドで解凍
unzip cakephp-cakephp-2.0.6-0-g5886b25.zip

次にディレクトリの名前が非常に長いため
mv cakephp-cakephp-4ed3d35 cakephp
で名前変更

このままでは使えないため、初期設定を行います
参考サイトは
cakePHPの初期設定【オールグリーンにする方法】
http://www.nandani.sakura.ne.jp/web_all/php/1555/

そして
CakePHP インストール
http://www.kaasan.info/archives/134

設定ファイルを変更し。セキュリティを固めないとダメみたいなので
vim cakephp/app/Config/core.php

/.salt で検索し
187行めの

Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0 FgaC9mi');
の部分で 英数字の部分
DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi
を変更します
どれか1文字変更でもOK

また
Configure::write('Security.cipherSeed', '76859309657453542496749683645');

76859309657453542496749683645
の数字を変更し保存します

ここまで完了したら
この cakephp ディレクトリを
web サーバーのルート直下にアップロードします
とはいっても、ファイルコピーするだけですが

cp -rp cakephp /var/www/

この状態でアクセスすると
URL rewriting is not properly configured on your server.

と真っ赤に表示されている

対策は
Ubuntu11.04のapache2、PHP5、cakePHPのインストールについて(備忘録)
http://tyukudiary.at.webry.info/201109/article_6.html
を参考に

sudo a2enmod rewrite
で rewrite を有効化

次に

sudo vim /etc/apache2/sites-available/default
で開いて

<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>



<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

へ変更

最後に
sudo /etc/init.d/apache2 restart
で設定反映

次にDB設定が必要
これは、また明日

テーマ : プログラミング
ジャンル : コンピュータ

CakePHP の基礎知識

CakePHP について調べてみました

CakePHP は
OSSのPHPフレームワーク

Ruby on rails の概念を取り入れたMVC」アーキテクチャのFW

CakePHPを使うと
記述するコード格段に減らせるらしい

MVC ATはappの構造を 
model
view
Controller
3つの要素に分割して実装する
というプログラミング技法のこと

model は
データ操作(入手流直や整形加工)

veiw は
データの出力

controller は
model と view の制御を行う

ちなみに、model は データベースと呼ばれる低レベルレイヤーでDBと対話を行う
これにより、どの種類のDBでm、お同じ記述でアクセス可能になるというものです

ダウンロードは
http://cakephp.jp/
からとなります

今回は、最新の安定版になる
2.0.6 安定版をダウンロードしました

もし、不具合がありそうなら
1.3.14 安定版を使ってみます

テーマ : プログラミング
ジャンル : コンピュータ

Ustream API で番組検索

Data API(Ustream Data API ) にアクセスして
データを取得するには
リクエストに応じたパラメータを付加して HTTP GETリクエストを
以下のURLへ送信

http://api.ustream.tv/レスポンスフォーマット

レスポンスフォーマットには
xml
json
php
html
を指定可能

設定できるパラメータは
以下のとおり

subject
検索対象のリソースを指定

uid
subject で指定したID、もしくはscope(範囲)の指定

command
指定したsubject に大して行う操作の指定

params
検索条件など、その他のパラメータ指定

limit
1頁あたりのページ数

page
取得するページ番号を指定

key
APIキーの指定


ちなみに。以下は subject の設定値
channel
番組

user
ユーザ

video
過去のビデオ

stream
ライブ配信

system
システム


番組(Channel)を検索したいなら
subject パラメータに channel
command パラメータに search
というように指定

テーマ : プログラミング
ジャンル : コンピュータ

iPod touchでvim

iOS5からの機能ですが
Vimがアプリで使えるようになりました

ESCキーがないため
\が代わりとなります

変更点については
Vim iPhone 使い方
で検索するとでてきます

iOS5以前の場合、
OSアップデートでアップデートすれば
使えるようになりますが
ネット回線が遅い場合
iCloud へ同期するようにしてしまうと
かなり動きが遅くなるため
注意が必要です

もし、iCloudの設定を変えたいなら
アプリで
設定の 中から変えることができます

サーバーIPアドレス取得

スクリプトを使ってIPアドレスの取得ができないか調べてみました

ipアドレスの取得
に答えが載っていました

vim getip.sh
でファイルを作成

#!/bin/sh
. /etc/sysconfig/network-scripts/ifcfg-eth0
echo $IPADDR

でIPアドレスの表示ができるようになりました

これで、応用で web サーバーの設定やIPアドレスを設定するところが
簡略化できます

テーマ : プログラミング
ジャンル : コンピュータ

便利な tee コマンド

同じサーバー構築するときに何度も実行するのは面倒なので
スクリプトを作成するとかなり便利になります

ほとんどの場合、コマンドをつかうことになれる必要があります
そんなときに役立つのが tee コマンドです

これをつかうと
コマンドの実行結果をファイルに保存することができます

例えば
echo $HOSTNAME | tee host.txt
とすると
ホスト名がファイルに保存され、端末にも実行結果が得られます

また、
echo $HOSTNAME | tee -a host.txt
というように -a オプションをつければ
>> を使ったファイルへのリダイレクトのように
末尾への追記もできます

参考サイトは
UNIXの部屋 コマンド検索: teeです

テーマ : Linux
ジャンル : コンピュータ

Ustream API

Ustream API (Ustream Data API) を使うと
Ustrem でライブ配信されている番組、
そして過去に配信されたビデオを検索、表示するアプリを作成できます

Ustream API の詳細については
http://developer.ustream.tv/home
に載っています(英語サイトです)

ちなみに、このAPIを使うには
アカウントを登録して APIキーを取得する必要があります

アカウント登録に関しては以下のURLから行います

http://developer.ustream.tv/user/register

ust.png

username にユーザ名

Email address にメルアドを入力し

Create new accounts を押すと
登録したメルアドに
devsupport@ustream.tv
から
初期パスワードつきのメールが届くので
これにログインします

ついでに、パスワードも変更しておきます

ログインしたら
右上のほうにある MyAccount をクリックし
History
Ustream Data API Key
You currently do not have an API key. Generate one!
をクリックします

すると
Ustream Data API Key
の下にAPIキーがでますので
以降このAPIキーを使ってアプリ作成をおこないます


登録や使い方に関しては
ustream api などで検索するとかなりでてきます

テーマ : プログラミング
ジャンル : コンピュータ

iPod touch のOSアップデート

iCloud と iTune U を使うため
2年前に購入した iPod touch のiOS をアップデートしました

このとき、中のデータが初期化されることも考え
いろいろとバックアップとかしてみたのですが

アップデートして消去されたのは、
パソコン経由で入れた音楽だけでした

まぁこれは iTunes で後で同期すれば元通りです

動画や撮影した写真、メモなどについては
アップデートのときにバックアップされるため
元通り復元されています

ただし、アップデートには2時間程度かかりますし
バックアップのためのデータが6GB程度必要なため
時間とHDDの容量には余裕を持って行いましょう

テーマ : PC周辺機器
ジャンル : コンピュータ

Google Ajax Fed API の処理の流れ

Google Ajax Feed API の処理の流れです

まず、google.load() を使って feeds モジュールをロード
コードにすると
google.load"feeds"."1");

第一引数のfeeds はモジュール名で
第2引数の 1 はAPIバージョン番号になります


次に
google.feeds.feed() でフィードのインスタンス生成
次に読み込みフォーマットや取得エントリ数などを設定

これをコードにすると
google.feeds.feed("http;//読み込ませたいURL");

load() でフィードをダウンロードして
コールバック関数を実行

テーマ : プログラミング
ジャンル : コンピュータ

HTML でリンク先を別のタグで開く場合

<a href="http://fortune.jp.msn.com/" target=_blank">MSN占い</a>
というように

target=_blank をリンク先の後に指定すれば
新しいタグでリンク先が開くようになります
ちなみに、以下を押すと実感できます

MSN占い

HTMLのちょっとしたメモでした

先月、プログラミングを覚えるのにどうやって
覚えたか?
という話題があったのを思い出したので、
ちょいメモです

実感を得るのが一番効率的かつモチベーション維持できそうなので
実感わきやすい
HTML(HTML5)
次に
CSS

javascript
PHP
mysql
java
Android
というようなかんじだと実感がわきやすいと思います

コンソールで hello world とかでてもうれしくないと
思うし...

テーマ : プログラミング
ジャンル : コンピュータ

Google Ajax Fed API

Google Ajax Feed API は
フィード(RSSとか ATOM) を java script だけでダウンロードすることが
できるAPI

Google Ajax Fed API を使うと
フィードで提供されるコンテンツを web サイトとかアプリに組み込める

Google Ajax Feed API に関しては
http://code.google.com/intl/ja/apis/feed/
を参考にしましょう

ちなみに、Google Ajax Feed API を使うにはAPIキーが必須です

テーマ : プログラミング
ジャンル : コンピュータ

地図座標の取得

住所から地図座標を取得するには
google.maps.Geocoder オブジェクトの
Geocoder.geocode() を使う

引数には
GeocodeRequest オブジェクト定数と
レスポンスの受け取り時に実行するコールバック関数を渡す

GeocodeRequest オブジェクト定数には
次のフィールドがあります

address
ジオコーディングする住所

bounds
この LatLngBounds内でジオコーディングの結果に
大きくバイアスをかける

language
結果を返す言語
region
IANA言語 region サブタグで指定された地域コード


ちなみに、address の代わりに latLng を渡すと
ジオコーダにより逆ジオコーディング可能

テーマ : プログラミング
ジャンル : コンピュータ

Google Eath API の処理の流れ

Google Earth API の処理の流れ

google.load() でearth モジュールをロード

google.earth.createInstance()で plugin の新しいインスタンスを生成

インスタンスが正常に作成されると
google.earth.createInstance() で指定した
コールバック関数 initCallback() を実行する

goole.load() の第1引数のロードするモジュール名には
earth

第2引数のAPIバージョン番号には1を指定


google.earth.createInstance() の第1引数には
インスタンスを追加するdiv要素

第2に引数には
インスタンスが正常に作成された時に呼び出されるコールバック関数
(成功のコールバック関数)の名前を指定する

成功のコールバック関数
initCallback() には
最初の表示に必要な処理を記述する
この処理には
GEWindow.setVisibility
ge.getWindow().setVisibility() が必要で
ウィンドウの表示を true にして
プラグインが div 要素内で表示されるようにする

テーマ : プログラミング
ジャンル : コンピュータ

google.load メソッドの使用

Google Earth API
Google Ajax API など
Google の提供する Ajax API 群を利用するには
まず
<script type="text/javascript" src="https://www.google.com/jsapi?key=APIキー"></script>
のタグをHTMLページの head 要素内に配置する

APIキーの場所へ取得したAPIキーに置き換えればOK

これで google.load メソッドをもつ javascript ファイルを参照できる

google.load メソッドは
指定した Ajax API モジュールロードに使用します

続いて
Google MAps API v3 のロードについて

Google Maps API ver3 を使うには
以下のコードを HTML ページの head 要素内に配置します

<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js/sensor=false"></script>

ちなみに
https://maps.googleapis.com/maps.api/js

javascirpt の位置になります

Linux で wget で取得するときのファイルのパスみたいなものです

ちなみに、最後の
sensor=false にしていますが
位置情報センサーを使いたいなら
sensor=true
にします

位置情報アプリとかだと true にします

テーマ : プログラミング
ジャンル : コンピュータ

AWS のポート設定

今回、AmazonEC2 のポート開放を行って気づいたのが
自宅サーバーの iptables 設定と ルータのポート開放に似ていると
いうことです

先日試した結果
3000番ポートを開放するには iptables の設定を変更し
セキュリティグループで Custom port の設定を行いました

どうやら、ウェルノウンポートと呼ばれる
一般的なポートについては、セキュリティグループの設定だけでもつながるようですが
それ以外の場合、両方設定する必要があるようです

例えば tomcat の 8080
ssh のポート変更などです
ssh はデフォルトの22番ポートの場合
すさまじい数のログになることがあります

念のため、公開鍵認証のみにして、パスワードログインを禁止していますが
やはり、ポートは変更したほうが無難と思われます

テーマ : Linux
ジャンル : コンピュータ

Google Earth API

Google Earth API を使うことで
Web ページに Google Earth を埋め込んで使えます

これにより
マーカーや線の描画、地形へのが王の重ね合わせ
3Dモデル追加、KMLファイルの読み書きが可能になり
3Dマップアプリなどがつくれるようになります

Google Earth API の詳細については
http://code.google.com/intl/ja/apis/earth

webページに埋め込まれた Google Earth をブラウザで表示するには
Google Earth プラグインが必要

テーマ : プログラミング
ジャンル : コンピュータ

RHELへDBと開発環境導入 その4

RHELへDBと開発環境導入 その3

ひととり設定できたので、動作確認します

mkdir ~/rails
cd ~/rails
rails sample -d postgresql
cd sample

ruby script/server mongrel

rails用 webサーバー Mongel を起動します

次に iptables を設定します

別の端末を開いて
vim /etc/sysconfig/iptables

開きます

Generated by iptables-save v1.4.7 on Sun Jan 8 18:54:31 2012
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:148]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -m limit --limit 3/hour -j LOG --log-prefix "[INPUT Dropped] "
COMMIT
# Completed on Sun Jan 8 18:54:31 2012


となっているので


# Generated by iptables-save v1.4.7 on Sun Jan 8 18:54:31 2012
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:148]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT

-A INPUT -m limit --limit 3/hour -j LOG --log-prefix "[INPUT Dropped] "
COMMIT
# Completed on Sun Jan 8 18:54:31 2012

というように追記します

追記後
service iptables restart
で iptable を再起動します

AWSを使っているので、さらにセキュリティグループの設定で
80
3000
のポートも開放します

これで、ブラウザからサーバーのIPアドレスへアクセスすればページが表示されます
ちなみに
http://サーバーIPアドレス:3000
というように、最後に3000ポートを指定する必要があります

似たようなもので
tomcat のときにも 8080 版ポートを指定することもあります

テーマ : Linux
ジャンル : コンピュータ

RHELへDBと開発環境導入 その3

RHELへDBと開発環境導入 その2

postgresql 設定ができたので
次に ruby on rails を導入します

最初に
useradd rails
passwd rails

rails ユーザを作成し

vim /etc/ssh/sshd_config
でファイルを開き

DenyUsers rails
を最下行に追記します

service sshd restart
で設定を反映するのを忘れずに

では、ruby on rails の導入になります


yum install ruby ruby-lib postgresql-devel ruby-devel
を実行し
RPMパッケージを導入します

次に
RubyGems ruby on rails を導入するのですが
ここから先は rails ユーザで行いますので
su - rails で
パスワードを入力し
rails ユーザで行います

環境変数を設定するため
vim .bashrc
で設定ファイルを開き

export PATH=$PATH:~/gems/bin
export RUBYLIB=$RUBYLIB:~/gems/lib
export GEM_HOME=~/gems

を最下行へ追記

source .bashrc
で設定反映します

mkdir ~/gems
mkdir ~/work
で必要なディレクトリ作成し


wget http://rubyforge.org/frs/download.php/70696/rubygems-1.3.7.tgz
でファイル取得

tar zxvf rubygems-1.3.7.tgz -C ~/work/
で work ディレクトリに解凍

ruby work/rubygems-1.3.7/setup.rb --prefix=~/gems
で rubygemsを導入します

続いて
ruby on rails と 関連パッケージを導入します

gem install rdoc postgres mongrel
gem install rake -v0.8.7
gem install rails -v2.3.14

続いてサンプルアプリで動作確認します

テーマ : Linux
ジャンル : コンピュータ

RHELへDBと開発環境導入 その2

RHELへDBと開発環境導入
の続きを行います

今回はログ出力とローテーション設定です

vim /var/lib/pgsql/data/postgresql.conf
で設定ファイルを開き
最終行へ

log_destination = 'syslog'
syslog_facility = 'LOCAL0'
syslog_ident = 'postgres'
log_line_prefix = '%u %d '
log_connections = on
log_disconnections = on
log_statement = 'all'

を追記し保存します

続いて rsyslog のファイル出力設定です
vim /etc/rsyslog.conf
でファイルを開き
/info;mail
で検索し

*.info;mail.none;authpriv.none;cron.none /var/log/messages



*.info;mail.none;authpriv.none;cron.none;local0.none /var/log/messages

というように追記します
そして 次の行へ

local0.* -/var/log/postgresql

を追記します

-/var/log/postgresql
というように - がファイルパスの前についているのは
ログをファイルに書き出す際に
ディスクキャッシュのフラッシュを抑制するため

ここまで追記したら保存し

service rsyslog reload
service postgresql restart
で設定を反映するためのサービス再起動をします

続いて、ログローテーションの設定をします
これをやらないと、ログファイルがどんどん肥大化していきます


vim /etc/logrotate.d/syslog
でファイルを開き

/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}



/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/postgresql {
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}


というように
追記して保存します

次は Ruby on Rails を導入します

テーマ : Linux
ジャンル : コンピュータ

RHELへDBと開発環境導入

今月の日経Linux に先月号からの特集で
RHEL(Red Hat Enterprise Linux) でサーバー構築
が載っていましたので
実践しています

ちなみに、今月号は

です

通常はOSが有償であまり使うことはないのですが
AmazonEC2 で時間単位で借りれるため、これを使って
構築していきます

今回は PostgreSQL のインストールからです
ただし SELinux は停止しておきましょう
これが原因で初期化失敗がおきるリスクがあります


まず、最初に停止しているインスタンスを起動します
ちなみに、時間単位で課金されるため、稼働時間が
1分でも1時間と変わりませんので
注意しましょう

yum install postgresql-server postgresql-docs
で導入

次に
service postgresql initdb

DB初期化

chkconfig postgresql on

次回から起動時にスタートするように設定
(これをやらないと、またコマンドでサービス立ち上げが必要になります)

service postgresql start
で postgresql をスタート

次にユーザ作成します
su - postgres
でユーザを root から postgres へ切り替え

psql -c "ALTER USER postgres encrypted password '任意のパスワード'"
でパスワードを設定します

psql -c "CREATE USER rails encrypted password '任意のパスワード' createdb"

rails ロールを作成、DB作成権限を与えます

次に、認証方式の設定ファイルを変更します
vim /var/lib/pgsql/data/pg_hba.conf
でファイルを開き
最下行付近にある設定を変更します


# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all ident
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident


これを


# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5

というように
最後の
METHOD を md5 に変更します

ちなみに、md5はパスワード認証という意味です

ここまで完了したら、設定反映のため、サービスの再起動をします

一度
su -
で管理者権限 root へ戻り

service postgresql restart
を実行します

postgres ユーザだと、エラーになります

接続確認のため

psql -l -U rails
を実行し、パスワードを入力してDB一覧が出れば成功です

テーマ : Linux
ジャンル : コンピュータ

Metasploit ダウンロード

今回購入した Hacker Japan には、
脆弱性ツールをつかったローカル環境での
セキュリティ関連特集が載っています



今回、実験をするOSは windows xp です
(個人的には ubuntu などでおこなってみたいのですが)

まず、必要なものを揃える必要があります

ある程度のツールは、付録DVDに収録されていますが
Metasploit はダウンロードする必要があります

付録DVDにある index.html にもリンクがありますが
普通にダウンロードすることも可能です

ダウンロード先は
http://www.metasploit.com/download/
(ちなみに英語のページになります)

いくつかフリーだったり。有料だったりしますが
windows で使えるものとなると
Metasploit Communitiy Editionだけになります

OSSなので、ソースコードはフリーで入手できます

ちなみに、ダウンロードそのものはフリーなのですが
Web UI を使うには。ユーザ登録とアクティベーションが必要になります

あと、インストールするときに
アンチウィルスソフトは停止しておいたほうがよいそうです

著者の環境によれば
インストールは正常に終了しないのに各種プロセスが稼働し
コントロールパネルからもアンインストールできないという
悲惨な状況に陥ったそうです

あと、ユーザ登録して、これを使えるようになるのですが
もうひとつ。
脆弱性調査をするのに必要なNexpose Community Edition
これをつかうときもユーザ登録が必要になります

ただし。Metasploit がメルアドだけに対して
こちらは
フリーメール以外のメルアド(Gmail もNGです)
氏名
会社名
役職
電話番号
の登録が必要になります

本格的にやるなら使うかもしれませんが
今回の特集では、こちらのツールはつかわれませんでした

ちなみに、metasploit インストールで検索すれば
ubuntu 関連でのインストールもでてきます

参考サイトとしては
UbuntuにMetasploit Frameworkをインストールする方法
セキュリティ診断ソフト「metasploit」
installed metasplit4 in ubuntu 11.04

また、英語の動画となりますが Youtube にもアップされています
以前、動画でわかるというプログラミングなどの学習教材を買ったことがありますが
動画だと、イメージしやすいので覚えやすいかもしれません

ちなみに、いかがその動画リンク先です
Ubuntu: Metasploit Framework installieren

テーマ : Linux
ジャンル : コンピュータ

HTMLコードで Windows7 ダウン?

MicroSoft の OS
Windows 7 64bit にて HTMLタグ1つで攻撃できる脆弱性が
発見されたようです

情報元は、今回購入した Hakcer Japan




Windows 7 64bit で safari をインストール 使用している場合
iframe の高さ属性を巨大にすることにより
windows7 がクラッシュし
昔なつかしいブルースクリーンになるようです

テーマ : Windows 全般
ジャンル : コンピュータ

Amazon Advertising API の Amazonクラス

Amazon クラスば Product Advertising API を利用するための
汎用的なクラス

実装しているメソッドは以下のとおり

setAcessKeyId
アクセスキー設定
引数はアクセスキー

getAccessKeyId
設定したアクセスキーを取得
引数はなし

setSecretAccessKey
シークレットキーを設定
引数はシークレットキー

getSecretAccessKey
設定したシークレットキーを取得する
引数はなし

setAssociateTag
アソシエイトタグを設定
引数はアソシエイトID

getAssociateTag
設定したアソシエイトタグを取得する
引数はなし

ItemSearch
商品を検索する
引数は API の ItemSearch オペレーションのパラメータ

ItemLookup
特定の商品の詳細を検索する
引数は API の ItemLookup のオペレーションのパラメータ

SimilarityLookup
特定の商品の関連商品を検索する
引数は API の SimilarityLookup のオペレーションパラメータ

JavariItemSearch
Javari の商品を検索
引数は API の ItemLookup のオペレーションパラメータ

JavariItemLookup
Javari の特定の商品の詳細検索
引数は API の ItemLookup オペレーションパラメータ

getUrl
署名つきリクエストURLを取得
引数は API のオペレーションおよびそのパラメータ

request
API にリクエストを送信

urlencode_rfc3986
文字列をRFC3986形式でURLエンコードする
引数は文字列

参考サイトも検索してみました

Product Adverstising API で検索すると結構でてきます

参考サイトは
PHPでAmazon Product Advertising APIを使う

Amazon product advertising api で遊んでみる

また、これらのAPIをつかうにはPHPの知識が必要ですので
PHP講座
などを参考に、PHP関連を学習することをおすすめします

テーマ : プログラミング
ジャンル : コンピュータ

curl_setopt() について調べました

基礎から学ぶ facebookアプリ開発
を参考に facebook アプリを作成してみます



今回、Facebook アプリを作成する項目の中に
Amazon の API を使ったサンプルがありました

そして、その中で
curl_setopt() があったので、これの意味を調べるため
リファレンス本である
PHP逆引き大全 516の極意




こちらを探したのですが
関数が見当たらないため検索

今回の参考サイトは
curl_setopt: cURL 転送用オプションを設定する

こちらの内容によりますと
bool curl_setopt ( resource $ch , int $option , mixed $value )
指定した cURL セッションハンドルのオプションを設定

というもののようです

この中で
サンプルに使用されていたオプションを
メモしてみました

CURLOPT_URL
取得するURL

CURLOPT_BINARYTRANSFER
TRUE を設定すると、
CURLOPT_RETURNTRANSFER が使用された場合に
出力結果を何も加工せずに返す

CURLOPT_HTTP_VERSION
CURL_HTTP_VERSION_NONE
(デフォルト。 使用するバージョンを決めるのは cURL にまかせる)、
CURL_HTTP_VERSION_1_0 (HTTP/1.0 を使用する)、
あるいは CURL_HTTP_VERSION_1_1 (HTTP/1.1 を使用する)
のいずれか

テーマ : プログラミング
ジャンル : コンピュータ

AmazonEC2 一般ユーザログインについて

AmazonEC2 で公開鍵認証で root ログインはできるものの
一般ユーザでは、ログインできないということでかなり悩みましたが
解決策が見当たりました

SSHでPermission denied (publickey,gssapi-keyex,gssapi-with-mic)の対処法
を参考にさせていただきました

リモートサーバの
ユーザのホームディレクトリに
公開鍵ファイルを置いてないと原因となるようです
(/home/ユーザ名/.ssh/公開鍵)
というように設定します

$ mkdir /home/ユーザ名/.ssh
$ su -
$ cp /root/.ssh/公開鍵 /home/ユーザ名/.ssh/
$ chown ユーザ名.ユーザ名 /home/ユーザ名/.ssh/公開鍵
$ chmod 0700 /home/ユーザ名/.ssh
$ chmod 0644 /home/ユーザ名/.ssh/公開鍵

ちなみに AmazonEC2 の場合、SSHポート開放状態になるので
パスワード認証はかなり危険と思われます

今月の日経 Linux - 2012-03 にも
クラッキングされた事例が掲載されました

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック