「サンプルコード」タグアーカイブ

Electric Imp でI2C

Electric Imp でI2Cを動かす方法

下記は参考に書いたサンプルソースで実際に動く保証をするものではありません
——————————————————————
[Device]
——————————————————————

//6軸加速度センサMPU-6050の値を想定しています。
i2c <- hardware.i2cQP;

//最初に、I2Cを使うことを宣言します。
//i2cQPは、使用するI2Cのポート番号です。
//imp004m impExplorer Kitで使用できるI2Cは i2cQPの
//みなので問題ありませんが、
//モジュールや基板によってはポート番号が変わる場合
//がありますのでご注意が必要で

i2c.configure(CLOCK_SPEED_400_KHZ);
//I2Cのクロックを設定します。I2Cのクロックはセンサーの
//仕様に合わせて設定しますが、基本は400KHzで動作します。

local address = (0x68<<1);
//I2Cでアクセスするセンサーのアドレスを指定します。
//今回使用するセンサーはMPU-6050です。MPU-6050のアドレス
//は b1101000 であり、
//16進数で記述すると0x68になります。 ここではI2Cのアドレス
//を8ビットで表記するので、1ビット分左にずらして指定します。
//readとwriteを使ってデータのやりとりを行います。

i2c.write(address,"\x6B\x00");
//MPU-6050のデーターシートより、0x6Bに0x00を書き込むことで
//Resetが解除され使用開始することができます。
//I2Cでのデータのやりとりは文字列で行います。16進数のデータ
//を\x00と表記して記述します。癖がありますが、慣れると書き
//易いです。
//続いて、readですが、

local result = i2c.read(address,"\x3b", 14);
//と記述します。"/x3b"は、読み出したいレジスタのアドレスで、
//その次の14で読み出すデータサイズを指定します。
//これにより、3軸の加速度データとジャイロデータを読み出す
//ことができます。
//その後、センサーより受け取ったデータを Agent Codeに転送します。
agent.send("reading.sent", result);

——————————————————————
[Agent]
——————————————————————

device.on("reading.sent",stream);
//で受け取り、指定したstream関数を読み出します。

function stream(data) {
server.log(data);
}

//これにより、センサーを受け取ったデータを確認することができます。

文・ソース:北神

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

ImpにArduinoからデータ送りたい。超簡単サンプル。

Arduinoから生き死をアナログデータで送って、imp で受信する方法
ツイッターに送信するサンプル。
impExplorer Kitを使った場合です。

Arduinoのプログラムは送信アナログで3V程度以内の通信にして下さい。
——————————————————————
Device
——————————————————————


#require "WS2812.class.nut:3.0.0"
// スリ―プタイム
const sleepTime = 60;

//はじから3つ目のポート
pot <- hardware.pinK;

// アナログのポート宣言
pot.configure(ANALOG_IN);

// ledの点滅
led <- null

function flashLed() {
    led.set(0, [0,0,128]).draw();
    // Wait 50 ms
    imp.sleep(0.05);
    led.set(0, [0,0,0]).draw();

}

//サーバ側に送る

function poll() {
    // Read the pin and log its value
    server.log("poll read");
    local pot =pot.read()
    server.log(pot);
    agent.send("analog_reading.sent",pot);
    // 送ったらLED光る
    flashLed();
    //impのサーバ待ち時間を設定
    imp.onidle(function() {
        server.sleepfor(sleepTime);
    });

}

// Start of program
// Configure SPI bus and powergate pin for RGB LED
local spi = hardware.spiAHSR;
spi.configure(MSB_FIRST, 6000);
led <- WS2812(spi, 1);

poll();

——————————————————————
Agent
——————————————————————

// ツイッターにクラス
#require "Twitter.class.nut:1.2.1"

// ツイッターの送信
tweeter <- null;
// Define functions

function tweetback(data) {
// ツイッター送った表示
server.log("Tweet tweeted");
}
function motion(data) {
server.log(data);
if(data&amp;amp;gt;100){
local message = format("まだ生きてるぜ[アナログ: %5u]",data);
tweeter.tweet(message, tweetback);
server.log(message);
}
else{
local message = format("死んだぜ[アナログ: %5u]",data);
tweeter.tweet(message, tweetback);
server.log(message);
}

}

// Twitter の own access credentials
// apps.twitter.comでキーをゲットしてね。
tweeter = Twitter("Consumer Key (API Key)***********",
"Consumer Secret (API Secret)***********",
"Access Token***********",
"Access Token Secret***********");

// デバイスから受ける指定
device.on("analog_reading.sent", motion);

株式会社アバンドでは、IoTに関するネットワーク開発、ハードウエア開発を行っております。

まずは、お気軽にお問い合わせください。

EC-CUBE 管理者メニュー 権限設定について

注意:自己責任でお願い致します。

EC-CUBE の管理画面では

ログイン者ごとに権限を設定できる仕様になっています。

現在のところ、権限ごとに画面を制御するのではなく、

管理者メニューの項目を権限によって非表示することで

簡易的な制御をしています。

(この経緯は、EC-CUBEのコミュニティーサイトで議論されており

設定方法も、コミュニティサイトにのっています)

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&order=ASC&topic_id=398&forum=7

今回、権限を4種類ほど設定して権限ごとにメニュー項目の表示非表示をするにあたり

メニュー項目の設定の一覧を作成しました。

 

その際に、

data/Smarty/templates/admin/design/subnavi.tpl

を修正いたしました。

修正内容は以下のとおりです。


<ul>
<li id="navi-design-pc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>PC</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-pc-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-pc-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-pc-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-pc-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-pc-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-pc-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-pc-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_PC}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
<li id="navi-design-mobile"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>モバイル</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-mobile-layout-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-mobile-main-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-mobile-bloc-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-mobile-header-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-mobile-css-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-mobile-template-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-mobile-add-<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_MOBILE}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
<li id="navi-design-sphone"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>スマートフォン</span></a>
<ul>
<li<!--{if $tpl_subno == 'layout'}--><!--{/if}--> id="navi-design-sphone-layout"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/<!--{$smarty.const.DIR_INDEX_PATH}-->?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>レイアウト設定</span></a></li>
<li<!--{if $tpl_subno == 'main_edit'}--><!--{/if}--> id="navi-design-sphone-main"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/main_edit.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ページ詳細設定</span></a></li>
<li<!--{if $tpl_subno == 'bloc'}--><!--{/if}--> id="navi-design-sphone-bloc"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/bloc.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ブロック設定</span></a></li>
<li<!--{if $tpl_subno == 'header'}--><!--{/if}--> id="navi-design-sphone-header"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/header.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>ヘッダー/フッター設定</span></a></li>
<li<!--{if $tpl_subno == 'css'}--><!--{/if}--> id="navi-design-sphone-css"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/css.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>CSS設定</span></a></li>
<li<!--{if $tpl_subno == 'template'}--><!--{/if}--> id="navi-design-sphone-template"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/template.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート設定</span></a></li>
<li<!--{if $tpl_subno == 'up_down'}--><!--{/if}--> id="navi-design-sphone-add"><a href="<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->design/up_down.php?device_type_id=<!--{$smarty.const.DEVICE_TYPE_SMARTPHONE}-->"><span>テンプレート追加</span></a></li>
</ul>
</li>
</ul>

書き換え部分は <… id=’navi-******’ …> の部分のみです。

検証は2.11.4で行いました。

以下はcssに設定が簡単に出来るようにまとめたものです。


/*  管理者メニュー id一覧                                                     */
/*  管理者の権限番号毎にcssに設定することによりメニューを非表示に出来る       */
/*  デザイン部分サブメニューのidの設定については、                            */
/*  data/Smarty/templates/admin/design/subnavi.tpl書き換えを行っているため、  */
/*  一部既存のものと対応していない                                            */
/*  authority_* の*部分には権限番号を設定すること                             */
/*  権限番号については、mtb_authorityを参照                                   */
/*  cssファイルは html/user_data/packages/admin/css/admin_contents.css        */
/*  cssの設定を行ってメニューの非表示が出来るだけである                       */
/*  管理画面ログイン後、直接urlを指定した場合はその画面を操作できます         */

,.authority_* #navi-basis                   /* 基本情報管理             */
,.authority_* #navi-basis-index             /* -SHOPマスター           */
,.authority_* #navi-basis-tradelaw          /* -特定商取引法           */
,.authority_* #navi-basis-delivery          /* -配送方法設定           */
,.authority_* #navi-basis-payment           /* -支払方法設定           */
,.authority_* #navi-basis-point             /* -ポイント設定           */
,.authority_* #navi-basis-mail              /* -メール設定             */
,.authority_* #navi-basis-seo               /* -SEO管理                */
,.authority_* #navi-basis-kiyaku            /* -会員規約設定           */
,.authority_* #navi-basis-zip               /* -郵便番号DB登録         */
,.authority_* #navi-basis-holiday           /* -定休日管理             */

,.authority_* #navi-customer                /* 顧客管理                 */
,.authority_* #navi-customer-index          /* -顧客マスター           */
,.authority_* #navi-customer-customer       /* -顧客登録               */

,.authority_* #navi-order                   /* 受注管理                 */
,.authority_* #navi-order-index             /* -受注管理               */
,.authority_* #navi-order-add               /* -受注登録               */
,.authority_* #navi-order-status            /* -対応状況管理           */

,.authority_* #navi-products                /* 商品管理                 */
,.authority_* #navi-products-index          /* -商品マスター           */
,.authority_* #navi-products-product        /* -商品登録               */
,.authority_* #navi-products-uploadcsv      /* -商品登録CSV            */
,.authority_* #navi-products-class          /* -規格管理               */
,.authority_* #navi-products-category       /* -カテゴリー登録         */
,.authority_* #navi-products-category       /* -カテゴリー登録CSV      */
,.authority_* #navi-products-maker          /* -メーカー登録           */
,.authority_* #navi-products-rank           /* -商品並び替え           */
,.authority_* #navi-products-review         /* -レビュー管理           */

,.authority_* #navi-total                   /* 売上集計                 */
,.authority_* #navi-total-term              /* -期間別集計             */
,.authority_* #navi-total-products          /* -商品別集計             */
,.authority_* #navi-total-age               /* -年代別集計             */
,.authority_* #navi-total-job               /* -職業別集計             */
,.authority_* #navi-total-member            /* -会員別集計             */

,.authority_* #navi-mail                    /* メルマガ管理             */
,.authority_* #navi-mail-index              /* -配信内容設定           */
,.authority_* #navi-mail-template           /* -テンプレート設定       */
,.authority_* #navi-mail-history            /* -配信履歴               */

,.authority_* #navi-contents                /* コンテンツ管理           */
,.authority_* #navi-contents-index          /* -新着情報管理           */
,.authority_* #navi-contents-recommend      /* -おすすめ商品管理       */
,.authority_* #navi-contents-file           /* -ファイル管理           */
,.authority_* #navi-contents-csv            /* -CSV出力項目設定        */
,.authority_* #navi-csv-product             /* |-商品管理              */
,.authority_* #navi-csv-customer            /* |-会員管理              */
,.authority_* #navi-csv-order               /* |-受注管理              */
,.authority_* #navi-csv-category            /* |-カテゴリ              */
,.authority_* #navi-csv-review              /* |-レビュー              */
,.authority_* #navi-csv-sql                 /* |-高度な設定            */

,.authority_* #navi-design                  /* デザイン管理             */
,.authority_* #navi-design-pc               /* -PC (id 追加)                    */
,.authority_* #navi-design-pc-layout        /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-pc-main          /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-pc-bloc          /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-pc-header        /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-pc-css           /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-pc-template      /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-pc-add           /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-design-mobile           /* -モバイル(id 追加)               */
,.authority_* #navi-design-mobile-layout    /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-mobile-main      /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-mobile-bloc      /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-mobile-header    /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-mobile-css       /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-mobile-template  /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-mobile-add       /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-design-sphone           /* -スマートフォン(id 追加)         */
,.authority_* #navi-design-sphone-layout    /* |-レイアウト設定(id 修正)        */
,.authority_* #navi-design-sphone-main      /* |-ページ詳細設定(id 修正)        */
,.authority_* #navi-design-sphone-bloc      /* |-ブロック設定(id 修正)          */
,.authority_* #navi-design-sphone-header    /* |-ヘッダー/フッター設定(id 修正) */
,.authority_* #navi-design-sphone-css       /* |-CSS設定(id 修正)               */
,.authority_* #navi-design-sphone-template  /* |-テンプレート設定(id 修正)      */
,.authority_* #navi-design-sphone-add       /* |-テンプレート追加(id 修正)      */
,.authority_* #navi-system                  /* システム設定             */

,.authority_* #navi-system-index            /* -メンバー管理           */
,.authority_* #navi-system-bkup             /* -バックアップ管理       */
,.authority_* #navi-system-parameter        /* -パラメーター設定       */
,.authority_* #navi-system-masterdata       /* -マスターデータ管理     */
,.authority_* #navi-system-adminarea        /* -管理画面設定           */
,.authority_* #navi-system-system           /* -システム情報           */
,.authority_* #navi-system-plugin           /* -プラグイン管理         */
,.authority_* #navi-system-log              /* -EC-CUBE ログ表示       */
,.authority_* #navi-system-editdb           /* -高度なデータベース管理 */

,.authority_* #navi-ownersstore             /* オーナーズストア         */
,.authority_* #navi-ownersstore-index       /* -購入商品一覧           */
,.authority_* #navi-ownersstore-settings    /* -認証キー設定           */
,.authority_* #navi-ownersstore-log         /* -ログ管理               */

使用方法についての詳細はまた。

WordPressに移動するときに、記事毎のURLを引き継ぐには

独自ドメインでJUGEMなどのBLOGサービスから、Wordpressに引っ越しを
するときに、単独記事に対するリンク切れが気になるところです。
記事IDが違う、.htaccessで一つ一つ書くのは不可能。

JUGEMの場合は下記になります。

http://○×.jp/?eid=112333とあると、wordpressでタグで対応すれば
済むので、http://○×.jp/?tag=112333にリダイレクトさせて、
処理をする。

1)タグ登録
リンクが沢山あるページのタグに旧サイトの記事IDを入れる。
例だと:112233

2)index.phpに下記を追加。

if(ereg("/?eid=", $_SERVER['REQUEST_URI'])){
$change_url = ereg_replace('eid=','tag=', $_SERVER['REQUEST_URI']);

header("Location: http://○×.jp$change_url");
exit;

}

3)タグでの記事表示
タグで表示される記事表示をFULLで出す。

以上  これでリンクの多い記事に対して、タグの部分に旧記事IDを入れる。

株式会社アバンドでは、WordPressなどのCMSツールを使った中規模から大規模までのWeb構築を行っております。

まずは、お気軽にお問い合わせください。

Redhat up2date スキップしたい場合。

Redhat Enterprise
up2date -l でアップデート一覧を出し、
up2date -u で問答無用にすべてアップデートすることがあります。
しかし、モジュールがないとエラーがでて、そして、途方にくれますよね。
特に、開発系のものはよくある。
大量になければ、一つ一つアップデートすればいいでのが、
この1つだけスキップしたい!

/etc/sysconfig/rhn/up2date

pkgSkipList=perl*;kernel*;
のように書くです。

ちなみに、他でも書いていますが、up2date -l でup2date自体がでたら、先にup2date -u up2dateをした方がいい。
最近は自動で先にやってくれるか、危険。

zabbix-jp-1.8インストール手順

zabbix-jp-1.8インストール手順

【参考サイト】
http://wiki.livedoor.jp/you_hiko/d/Zabbix%201.8%A4%F2CentOS%205%B7%CF%A4%CB%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%B9%A4%EB%BC%EA%BD%E7#content_1_1

CentOS 5
Zabbix 1.8.7

■YUMのリポジトリをインストール

# rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/x86_64/zabbix-jp-release-5-3.noarch.rpm

■現在使用しているリポジトリのZABBIXバージョンの確認

# alternatives --display zabbix-jp-release
zabbix-jp-release -ステータスは自動です。
リンクは現在 /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo を指しています。
/usr/share/zabbix-jp-release/zabbix-jp-1.1.repo - 優先項目 10
/usr/share/zabbix-jp-release/zabbix-jp-1.4.repo - 優先項目 20
/usr/share/zabbix-jp-release/zabbix-jp-1.6.repo - 優先項目 40
/usr/share/zabbix-jp-release/zabbix-jp-1.8.repo - 優先項目 30
現在の「最適」バージョンは /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo です

■優先順位を上げるバージョンを切り替える

# alternatives --config zabbix-jp-release

4 プログラムがあり ‘zabbix-jp-release’ を提供します。

選択       コマンド
-----------------------------------------------
1           /usr/share/zabbix-jp-release/zabbix-jp-1.1.repo
2           /usr/share/zabbix-jp-release/zabbix-jp-1.4.repo
*+ 3           /usr/share/zabbix-jp-release/zabbix-jp-1.6.repo
4           /usr/share/zabbix-jp-release/zabbix-jp-1.8.repo

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:4

■zabbixのインストール

# yum -y install zabbix zabbix-agent zabbix-server zabbix-server-mysql zabbix-web zabbix-web-mysql

■MySQLにzabbixデータベースを作成

# mysql -uroot -p
mysql&gt; create database zabbix;
mysql&gt; grant all privileges on zabbix.* to zabbix@localhost identified by 'xxxxxxx';
mysql&gt; flush privileges;
mysql&gt; quit

■初期データベースをインポート

# mysql -u zabbix -p -D zabbix &lt; /usr/share/doc/zabbix-server-1.8.7/schema/mysql.sql
# mysql -u zabbix -p -D zabbix &lt; /usr/share/doc/zabbix-server-1.8.7/data/data.sql
# mysql -u zabbix -p -D zabbix &lt; /usr/share/doc/zabbix-server-1.8.7/data/images_mysql.sql

■PHP設定

# vi /etc/php.ini
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
date.timezone = Asia/Tokyo

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;

; Maximum execution time of each script, in seconds
; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
memory_limit = 128M
post_max_size = 16M
max_execution_time = 300
max_input_time = 300

■初期設定
1.Zabbixサーバー側

# vi /etc/zabbix/zabbix_server.conf
### Option: DBHost
#       Database host name.
#       If set to localhost, socket is used for MySQL.
#

# DBHost=localhost

### Option: DBName
#       Database name.
#       For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored.

DBName=zabbix

### Option: DBUser
#       Database user. Ignored for SQLite.

DBUser=zabbix &lt;- データベースユーザ名を設定

### Option: DBPassword
#       Database password. Ignored for SQLite.
#       Comment this line if no password is used.

DBPassword=XXXXXXXX &lt;- コメントアウトを外してデータベースパスワードを設定

### Option: DBSocket
#       Path to MySQL socket.

DBSocket=/var/lib/mysql/mysql.sock

2.Zabbixサーバー起動

#/etc/rc.d/init.d/zabbix-server start

3.Zabbixエージェント側

# vi /etc/zabbix/zabbix_agentd.conf
### Option: Server
#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
#       No spaces allowed. First entry is used for receiving list of and sending active checks.

Server=127.0.0.1

### Option: Hostname
#       Unique, case sensitive hostname.
#       Required for active checks and must match hostname as configured on the server.
#       System hostname is used if undefined.

Hostname=Zabbix server

### Option: ListenIP
#       List of comma delimited IP addresses that the agent should listen on.
#

ListenIP=127.0.0.1

4.Zabbixエージェント起動

# /etc/init.d/zabbix-agent start

5.自動起動設定

# chkconfig zabbix-server on
# chkconfig zabbix-agent on

phpize でAUTOCONFエラー

# phpize
phpize(phpの拡張モジュールのためのビルドツール)で
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
というエラーが出たら、

CentOSなどなら、単純に
# yum install autoconf
をするだけで解決する場合があります。
自己責任です。解決しない場合はバス等の間違えがあります。

HTTPSのSSLキーを確認するには?public exponent?

複数年キーがあると、ゴッチャになりますよね。
申請したキーが正しい?または、サーバを設定する前に
キーを確認したい、という方。下記のコマンドを!

証明書ファイル(モジュラス)を表示するには
openssl x509 -noout -text -in ここにファイル名 -modulus

秘密鍵(秘密キー)ファイル(モジュラス)を表示するには
openssl rsa -noout -text -in ここにファイル名 -modulus

秘密鍵内と証明書内にある “modulus” 部分と “public exponent”
部分は完全に一致しなければなりません。
public exponentがpublicの下の何行目かにexponentと書いてある場合があります。

Lightbox v2.04で改行を入れたいが・・・

写真をカッコ良く見せる為にLightboxのJavascriptを使うのですが、
http://lokeshdhakar.com/projects/lightbox2/
しかし、説明文を入れるのにtitleに入れる形になる。下記が例。

<a href=”images/image-1.jpg” rel=”lightbox[plants]” title=”ああああああああああああああああああああああああ”><img src=”images/thumb-1.jpg” width=”100″ height=”40″ alt=”” /></a>

ここで説明文が長文になったときに改行を入れたいと思うと、、<br>タグを入れば改行される。

当然、W3Cのチェック(http://validator.w3.org/check)は通らない。

なので、通るように、##を入れると<br>に変更してくれるように作り変える。

Lightbox v2.04の場合は lightbox.jsの下記の2行の間に1行追加。

///////////////////////////////////////////////////////////////////////

var imageNum = 0;

if ((imageLink.rel == ‘lightbox’)){

////////////////////////////////////////////////////////////////////////

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

///////////////////////////////////////////////////////////////////////

var imageNum = 0;

imageLink.title = imageLink.title.replace(/##/g,”<br />”);

if ((imageLink.rel == ‘lightbox’)){

////////////////////////////////////////////////////////////////////////

さらに、追記です。このままだと、Next機能に対応できない為、下記の行も変更。

///////////////////////////////////////////////////////////////////////

collect(function(anchor){ return [anchor.href, anchor.title; }).

///////////////////////////////////////////////////////////////////////

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

///////////////////////////////////////////////////////////////////////

collect(function(anchor){ return [anchor.href, anchor.title.replace(/##/g,”<br />”)]; }).

///////////////////////////////////////////////////////////////////////

変更後、HTMLを書く。
<a href=”images/image-1.jpg” rel=”lightbox[plants]” title=”あああああああああああ##あああああああああああああ”><img src=”images/thumb-1.jpg” width=”100″ height=”40″ alt=”” /></a>