アプリケーション

MacにGoogle Drive File Streamいれたらフリーズみたいに遅くなった件の対処

2018-03-06 アプリケーション, 仕事術, 環境構築

会社でかなりはまったのでメモがてら残しておく。

GoogleがDriveを終了するということで、GsuiteユーザーはGoogle Drive File Streamへの置き換えが推奨されている。
が、会社のMacでいれたらめちゃくちゃ重くなって仕事にならないという自体になり、対処にかなり苦労した。

いろいろとググってためしてみたところ、原因は、ESETのReal-time File system Protectionのようだ。
ストリームマウントされているドライブを、ファイル作成などをするたびに探査が始まるので、純粋に時間がかかってしまっている様子。

ESETの設定で、Googleドライブファイルストリームの以下を除外(Exclusionsすることで快適になった。

/Volumes/GoogleDrive/*.*
/Users/{username}/Google Drive File Stream/*.*

本来はのぞましくないのだろうが、GoogleDriveはGoogleさんが一定Antivirus探査してくれているだろうということで・・・

参考)

WordPressが標準でリビジョン管理する件

2013-08-11 アプリケーション

WordPressを3.6にバージョンアップしたら、リビジョン管理機能が標準で付いて、しかも結構なできばえに脱帽した。

投稿を保存したら、リビジョンの管理が表示される。

リビジョンに関するアナウンス

リビジョンの比較画面。

リビジョンの比較画面

2つのリビジョンを比較にチェックして、バーからリビジョン選べば。

リビジョン間の比較も簡単

WordPressのリビジョン管理機能はプラグインで結構まえからいろんなのあるみたいだけど
やはりデフォルトでここまで対応してくれると嬉しいですね。
複数人で管理しているブログや、記者・編集者のように分かれているブログなんかはかなり便利になるんじゃないだろうか。

Redmineにメールからチケットを投稿する

2011-03-08 アプリケーション, 環境構築

ちょっと会社の業務で必要なったのでついにRedmineにメールで投稿する機能を設定した。

参考: Redmine.jp メールによるチケットの登録

これのIMAP方式でいれてみました。
IMAP方式にした理由は

  • MTAに特殊な設定がいらず、アカウントさえ用意すれば、Redmineのサーバーだけで対応できる。
  • 今回は障害監視等ではないので、そこまでリアルタイムである必要もない。(せいぜい10分~30分後に確認できればOK)

メールの書式は、メールのタイトルがチケットのタイトルになります。

本文は以下のような感じ

チケットの本文を適当に先に入力しておきます。

別にあとからでもいいのかもしれませんが、なんとなく先にしておきます。

# ここからがチケットの情報を更新するためのキーワード
Project: [チケットを登録するプロジェクト識別子]
Tracker: [開発,バグ,要望 等]
Priority: [低め,通常,高め 等]
Category: [プロジェクトに存在するカテゴリ]
Status: [新規,着手,解決,終了 等]
Version: [プロジェクトに存在するバージョン] Redmine1.1以上じゃないと使えない。

※ メールの送信元のメールアドレスが投稿者になるので、メールの送信元のメールアドレスが、投稿しようとするプロジェクトで有効なユーザーである必要があります。

これにあわせてテスメールを送ってみたら、タイトルだけが文字化けしていました。

そこで、下記を参照して修正

メールでチケット登録時に題名が文字化けする問題を修正

これで無事タイトルも表示されるようになりました。

ひと通りテストができたらCRONに設定して、定期的に取得するようにします。

# Redmine Mail Checker

*/10 * * * * /usr/local/bin/rake -f /var/lib/redmine/Rakefile redmine:email:receive_imap RAILS_ENV=”production” host=メールサーバーのIP username=メールサーバーのユーザー名password=ぱすわーど move_on_success=Trash move_on_failure=Failed allow_override=project,tracker,category,priority

今回のポイントは

  • move_on_successとmove_on_failureで取り込みに成功したメールと、失敗したメールの振り分け先を決めておいて、普通のメーラーからも、取り込み結果が確認しやすいようにしておきます。
  • allow_overrideはメールの本文で上書きする内容を設定しますが、いろんなプロジェクトに対応したいので、プロジェクトやトラッカーを予め決め打ち等はせず、メールで設定できるようにしておきます。

Redmine1.1からは、もっと使用できるキーワードがもっと色々ふえているらしく進捗なんかもメールから更新できるらしいので、はやいところ、1.1にバージョンアップしなきゃなぁと、また思いました。

muninでEC-CUBEの変化をグラフ化するプラグインをつくってみる

2010-09-23 アプリケーション ,

最近いろいろと監視周りでmuninを使っているので、自分でもmuninのプラグインを作ってみたくなった。

muninはシェル上から実行可能な形であれば、プラグインをどんな言語で開発してもいいらしいので、基本的な使い方が分かればかなりいろいろと可能性があると思っている。

でも、いまいち監視する値がおもいつかなかったので、ショップの成長状況をグラフ化するイメージで、EC-CUBEの状態をグラフ化するプラグインを作ってみることにした。

要件:

  1. EC-CUBEの性能に影響のある商品数と受注件数、会員数を取得する
  2. 商品数と会員数は現在の値、受注件数は監視周期の間での受注件数
  3. 一番てっとり早いのでシェルスクリプトで作る
  4. MYSQLとPostgreSQLに対応できるようにしておく

で以下のコードを作成した。

#!/bin/sh
DBTYPE=`basename $0 | sed 's/^eccube_//g'`

case $DBTYPE in
    mysql)
        MYSQL=/usr/bin/mysql
        MYSQLOPTS="${dbopts}"
        COMMAND="${MYSQL} ${MYSQLOPTS} -s -N -e"
        ;;
    pgsql)
        PSQL=/usr/bin/psql
        PSQLOPTS="$dbopts"
        COMMAND="${PSQL} ${OPTS} -c"
        ;;
esac

if [ "$1" = "config" ]; then
        echo 'graph_title EC-CUBE Status'
        echo 'graph_args --base 1000'
        echo 'graph_order product order customer'
        echo 'graph_vlabel EC-CUBE Customers, Products, Orders'
        echo 'graph_category ec-cube'

        echo 'product.label Product'
        echo 'product.type GAUGE'
        echo 'product.min 0'
        echo 'product.draw LINE2'
        echo 'product.info Shop Products Count(product_class)'

        echo 'order.label Order'
        echo 'order.type COUNTER'
        echo 'order.min 0'
        echo 'order.draw LINE2'
        echo 'order.info Order Count By Term'

        echo 'customer.label Customer'
        echo 'customer.type GAUGE'
        echo 'customer.min 0'
        echo 'customer.draw LINE2'
        echo 'customer.info Customer Count Total'

    exit 0
fi

echo "product.value `${COMMAND} 'select count(product_class_id) FROM dtb_products_class'`"
echo "order.value `${COMMAND} 'select count(order_id) FROM dtb_order'`"
echo "customer.value `${COMMAND} 'select count(customer_id) FROM dtb_customer'`"

実際に実行してみる。

これを「eccube_」って名前で作成して、実行権限を与えておく。

ec-cubeがmysqlでインスールされているか、postgresでインストールされているかによって設定は変わるのだが、まずはmysqlだけで対応する。postgresの場合は省略するが、postgresはシェルからコマンドを実行するにも毎度パスワードが聞かれる仕様なので、.pgpassを作って対応しないといけないとだけメモって置く。

プラグインフォルダに作成したプラグインのシンボリックリンクをつくる
ln -s eccube_ /etc/munin/plugins/eccube_mysql

さらに、/etc/munin/plugin-conf.d/munin-node に

[eccube*]
env.dbopts -u DBユーザー名 -h DBサーバーIP -pDBパスワード DB名

としてDBへの接続オプションを記載しておく。

この後munin-nodeを再起動。 /etc/init.d/munin-node restart

テストように作ったサイトなので、動きはないが、とりあえず以下のようなグラフがとれているので動いてはいるようです。
muninの監視画面

今回わかったこと。

デフォルトのmuninの周期が5分なのでec-cubeのショップデータのような日ごとであればまずいいデータをリソース監視のプラグインで見る必要はないな。
用は文字列としてmunin用の設定や値を出力してやればいいので、ちょっとしたプラグインは簡単に自作できそう。

課題

muninの[フィールド名].typeのCOUNTERは前回からの差分を取得するという説明をみたのだが、どうも差分でなく差分の平均のような値が出ているような・・・
せっかくだから、備忘録かねてまたmuninのプラグイン作成時の属性の整理を書こう。

Aipoを手動でインストールする

2010-03-17 アプリケーション ,

前回、Aipoを付属のインストーラーを使ってインストールしたが、勝手にpostgreSQLやtomcatが入るのがちょっといやだったので、それぞれ手動でインストールしてみることにした。

下準備:
postgresのインストール、tomcatのインストール
Tomcatのインストール

# yum install tomcat5 tomcat5-webapps
Tomcatを起動
# /etc/init.d/tomcat5 start
Tomcatの接続確認
http://eumyang.net:8080/

Postgresのインストール

# yum install postgresql-server
# /etc/init.d/postgresql start
アクセス設定の追加
# vi /var/lib/pgsql/data/pg_hba.conf
一番下のアクセス設定にaipoで使用するDBとUSERを追加する。
自分は DB: aipo_db USER: aipo_db_user で設定する予定なので以下のように設定した。

※アクセス設定は、上から優先されるの上に追加する
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host aipo_db aipo_db_user 127.0.0.1/32 md5

postgresを再起動する
# /etc/init.d/postgresql restart

tomcatからpostgresへの接続ができるようにpostgresql-jdbcをインストール

# yum install postgresql-jdbc
tomcatのlibにシンボリックリンクを張る。
# ln -s /usr/share/java/postgresql-jdbc.jar /usr/lib/jvm/java/jre/lib/ext/postgresql-jdbc.jar


下準備を終えて、Aipoのインストール

Aipoダウンロード:http://aipostyle.com/download/linux.html
インストールの前に、aipoのLinux用インストールファイルをダウンロードしてFTPなどでアップしておく

自分は/usr/local/src/にインストール用のファイルをアップした。

# cd /usr/local/src
# tar -xvzf aipo5020ja_linux.tar.gz
# cd aipo5020ja_linux
# tar -xvzf aipo5020.tar.gz

必要なファイルだけをコピーしていく

AipoのソースだけをWEB用のディレクトリにコピー
# cp -r /usr/local/src/aipo5020ja_linux/aipo/src/webapps/aipo /home/www/
Aipoで使用するtools.jarをコピーする。
# cp /usr/local/src/aipo5020ja_linux/aipo/src/tools.jar /usr/share/tomcat5/common/lib/
もとのファイルを一度削除する
# rm -rf /home/www/aipo/WEB-INF/psml

サンプル用のファイルを整える

サンプル用のファイルをコピーしてくる
# cp -r /usr/local/src/aipo5020ja_linux/aipo/backup/postgresql/sample_dump/files /home/www/aipo/WEB-INF/
サンプル用のdumpファイルをコピーしてくる
# cp -r /usr/local/src/aipo5020ja_linux/aipo/backup/postgresql/sample_dump/psml /home/www/aipo/WEB-INF/
サンプル用のdumpファイルのユーザー名を自分用に置き換える
# vi /usr/local/src/aipo5020ja_linux/aipo/backup/postgresql/sample_dump/aipo_db_sql.dump
コマンドで一括置換
:%s/aipo_postgres/aipo_db_user/g

PostgresにAipo用のDBとユーザーを作成する

# su – postgres
$ createuser -P aipo_db_user
————————————
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) n
CREATE ROLE
————————————
$ psql
Password: postgresの接続パスワード
————————————
postgres=> CREATE DATABASE aipo_db WITH OWNER aipo_db_user;
————————————

作成したDBにサンプル用のdumpファイルを流し込む。

————————————
postgres=> \c aipo_db
aipo_db=> \i /usr/local/src/aipo5020ja_linux/aipo/backup/postgresql/sample_dump/aipo_db_sql.dump
aipo_db=> \q
————————————

Aipoのデータベース接続設定を行います。

# vi /home/www/aipo/WEB-INF/conf/postgres/Org001DomainNode.driver.xml
————————————
<driver project-version=”2.0″>
<url value=”jdbc:postgresql://localhost:5432/AIPOのDB名”/>
<connectionPool min=”5″ max=”50″ />
<login userName=”DBユーザー” password=”ぱすわーど”/>
</driver>
————————————

Tomcatへの直接アクセス(8080ポート)を止める

# vi /etc/tomcat5/server.xml
—————————————————————————–
<!– Define a non-SSL HTTP/1.1 Connector on port 8080 –>
<Connector port=”8080″ maxHttpHeaderSize=”8192″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true” />

<!– Define a non-SSL HTTP/1.1 Connector on port 8080
<Connector port=”8080″ maxHttpHeaderSize=”8192″
maxThreads=”150″ minSpareThreads=”25″ maxSpareThreads=”75″
enableLookups=”false” redirectPort=”8443″ acceptCount=”100″
connectionTimeout=”20000″ disableUploadTimeout=”true” />
–>
—————————————————————————–

http://eumyang.net:8080/aipo/
が接続できないことを確認

Tomcatを再起動

# /etc/init.d/tomcat5 restart

AJP経由での接続をつくる

# vi /etc/httpd/conf.d/www.eumyang.net.conf
—————————————————————————–
ProxyPass /aipo ajp://localhost:8009/aipo/ ← VirtualHostにこれを追加
—————————————————————————–
http://www.eumyang.net/aipo はAJPへ転送されるようになる。

Apacheの再起動
# /etc/init.d/httpd configtest
# /etc/init.d/httpd graceful

http://www.eumyang.net/aipo/ で接続を確認

無料のグループウェアAipoをインストール

2010-03-08 アプリケーション , ,

ちょっと青年会の活動のほうで、グループウェアを導入してみたいので、無料のツールをいろいろ探していたら、Aipoというのを見つけたので早速インストールしてみる。

デフォルトでiPhoneやモバイルにも対応しているってのが結構うりになっているのが選んだきめて。

実際にはつかってみないとわからないだろうけど。

Aipo:http://aipostyle.com/

Aipoダウンロード:http://aipostyle.com/download/linux.html
インストールの前に、aipoのLinux用インストールファイルをダウンロードしてFTPなどでアップしておく

自分は/usr/local/src/にインストール用のファイルをアップした。

# cd /usr/local/src
# tar -xvzf aipo5020ja_linux.tar.gz
# cd aipo5020ja_linux
# tar -xvzf aipo5020.tar.gz
# mv /usr/local/aipo5020ja_linux/aipo /home/www/

実際にインストールをする前に接続するURLを変更しておく
# vi install.conf

def_addr=ここを好きな実際にアクセスしたURLに変更しておく

インストール用スクリプトを実行します。

# cd /home/www/aipo/bin
# sh installer.sh

なんかいろいろいるようです。

checking gcc… error
gccが見つかりませんでした。
gccをインストールしてください。
checking readline… error
readline-develが見つかりませんでした。
readline-develをインストールしてください。
checking zlib… error
zlib-develが見つかりませんでした。
zlib-develをインストールしてください。
Aipo5.0.2.0のインストールに失敗しました
groupdel: group aipo_postgres does not exist

いわれたとおり、gccとreadline-develとzlib-develをインストールする

# yum install gcc readline-devel zlib-devel

再度インストール

# sh installer.sh

とりあえず

==Aipo5.0.2.0インストール終了==

がでたらインストール終了いっしょにでている

Aipo URL: ~~~~URL~~~~

が、アクセスするさいのURLになる。
とりあえず無事インストールできているか起動

# ./startup.sh

さっきのURLで接続確認
接続が確認できたら終了する

# ./shutdown.sh

とりあえず、ここまででインストール完了。

とりあえず、インストールはなんとかできそう。

現時点できになったのは、以下の4つ

  • install.shでnetitfを設定を変更しなかったのだが、VPSはvenet0になっているので、なおす必要がありそう
  • postgresが一緒にインストールされたっぽいのだが、どうなっているのか気になる
  • Apacheと同居しているのTomcatのポートが変更されて、URLもポート指定になっていた。
  • FC2のVPSのFTPが異常に遅い。70MBアップするのに30分かかるのってどうよ?

次は、Apache経由でTomcatに接続するテストをしてみたい。

mod_jk2を利用するとかコミュニティーにあったが、mod_proxyでやっているひともいるようだ。mod_rewriteとあわせて、リバースプロキシ的にtomcatにつなげると思うので、そんな感じでいきたい。

Eclipse3.3.2(Europe)&XAMMP でのPHP開発環境構築

2010-02-18 アプリケーション, 環境構築

EclipseとXAMPPでPHP開発環境を利用する。

EclipseはPDTが搭載されたGanimedeいこうはあんまり好きじゃないので、PHPEclipseの全盛期の3.3.2を利用。
PHPEclipseの方が初期化エラーのチェック等をしてくれるので、PDTより使いやすいと判断。

XAMPPはPHP4と5の切り替えができる1.6.8を利用。最新版だと、PHP5.3のため、自分が良く開発するEC-CUBEが対応しきれておらずWarningがやたら出てしまうので・・・

XAMPP1.6.8インストール
http://sourceforge.net/projects/xampp/files/

Eclipse3.3.2インストール
http://www.eclipse.org/downloads/packages/release/europa/winter

必要なプラグインを入れる

  • サードパーティー日本語化:
    http://sourceforge.jp/projects/nttdatagroup-oss-square/downloads/33301/NLpackja-eclipse-SDK-3.3.2-blancofw.zip をダウンロード
  • PHPEclipse:
    http://update.phpeclipse.net/update/stable/1.2.x
    を更新サイトに追加
  • JStyle:
    http://prdownloads.sourceforge.jp/mergedoc/29738/jstyle_3.3.2.1.zip
    をダウンロードして展開後、所定のフォルダにコピー
  • AnyEdit:
    http://andrei.gmxhome.de/eclipse/ を更新サイトに追加
  • Subclipse
    http://subclipse.tigris.org/update_1.6.x を更新サイトに追加

参考:http://www.okushin.co.jp/information/tanuki11/index.php