2012年3月14日水曜日

複数バージョンのIEの確認

Microsoftの公式のサイト。
Virtural PCを利用。
容量は食うがこれが一番じゃないか。(要 Windows7 Professional以上)

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11575

このサイトのIE6用のWinXPは英語版らしいが、下記の日本語のWindows XP Mode + Virtual PCのサイトから普通にXP Modeの仮想マシンをダウンロードするとちゃんと日本語のWindows XPがあらかじめ入っている。


では手順。


まずはWindows7用のXPモードとVirtualPCをセットアップ

http://www.microsoft.com/japan/windows/virtual-pc/download.aspx

Windows7のエディションと言語を選んで、Windows XP Mode, Windows Virtual PC, Windows XP Mode Updateをダウンロード。

順に入れていく。
Windows Virtual PC, Windows XP Mode Update で再起動を要求される。

スタートメニュー → Windows Virtual PC → Windows XP ModeでWindows XPが起動。
これでIE6が使える。


次に、IE7とIE8。

最初のURLからIE7とIE8用の仮想マシンをダウンロード。
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=11575

IE7とIE8用のデータは圧縮して複数のファイルに分割されていますが、全部ダウンロードして、.exeファイルを実行すると解凍して.vmc, .vmdの2種類のファイルができる。
.vmcのほうをダブルクリックで仮想マシンが起動するんですが、XP Modeのデータと場所を合わせておこうと思うのでまずXP Modeのデータを探す。

スタートメニュー → Windows Virtual PC で、C:\Users\"ユーザ名"\Virtual Machines が開くがここはバーチャルマシン起動のショートカットがおかれているようなもの。(たぶん)

仮想マシンのデータは実際は以下のディレクトリ。

C:\Users\"ユーザ名"\AppData\Local\Microsoft\Windows Virtual PC\仮想マシン

ここに、IE7とIE8の.vmc, .vmdのファイルを設置。

.vmcファイルをダブルクリックで仮想マシンが起動して C:\Users\"ユーザ名"\Virtual Machines に起動ショートカット(?)が作成されます。

仮想マシンが起動したら、ダウンロード元のサイトに書いてあるように、ユーザ名:administrator パスワード:Password1 でログイン。

ネットワークが使えないのでVirtual PCのウィンドウの「ツール」メニューから設定を選んで、ネットワークの設定をする。
自分の場合は、左から「ネットワーク」を選んで、右側の「アダプター1」を「共有ネットワーク(NAT)」にすれば通りました。

同じ「ツール」の画面で「統合機能」でローカルハードディスクも共有しておくと便利かも。


後は自由に使えると思う。

2012年3月3日土曜日

xampp1.7.7のPEAR

マシンを入れ替えたのでxamppもpleiadesごと新しく入れて、xampp1.7.7に。
PEARが中途半端にしか動かないので、ちょいちょい調べる。

設定しようにもgo-pear.batとかpear.iniがない。

おそらくxamppを入れた後に行う、setup-xampp.batでPEARの設定とかしているんだろう。

pear.batの中の環境変数の設定が設置ディレクトリのものになっている。

コマンドラインでpear config-showとやると設定が中途半端に変わっている。

pear.batの中を見ると以下のような感じで設置ディレクトリの設定になっている。

■pear.bat 31~33行目■

IF "%PHP_PEAR_INSTALL_DIR%"=="" SET "PHP_PEAR_INSTALL_DIR=C:\pleiades-e3.7\xampp\php\pear"
IF "%PHP_PEAR_BIN_DIR%"=="" SET "PHP_PEAR_BIN_DIR=C:\pleiades-e3.7\xampp\php"
IF "%PHP_PEAR_PHP_BIN%"=="" SET "PHP_PEAR_PHP_BIN=C:\pleiades-e3.7\xampp\php\.\php.exe"


pear config-showで表示される設定には足りない。

ということで、pear.batの35行目あたりに以下を追加。

IF "%PHP_PEAR_CFG_DIR%"=="" SET "PHP_PEAR_CFG_DIR=C:\pleiades-e3.7\xampp\php\cfg"
IF "%PHP_PEAR_DOC_DIR%"=="" SET "PHP_PEAR_DOC_DIR=C:\pleiades-e3.7\xampp\php\docs"
IF "%PHP_PEAR_DATA_DIR%"=="" SET "PHP_PEAR_DATA_DIR=C:\pleiades-e3.7\xampp\php\data"
IF "%PHP_PEAR_TEST_DIR%"=="" SET "PHP_PEAR_TEST_DIR=C:\pleiades-e3.7\xampp\php\tests"
IF "%PHP_PEAR_WWW_DIR%"=="" SET "PHP_PEAR_WWW_DIR=C:\pleiades-e3.7\xampp\php\www"


これで、pear config-showすると設定した値で表示されるし、今のところうまく動いている。

2012年2月23日木曜日

CodeIgniter Sessionのエラー

CodeIgniterのSessionを使っていておかしいときがちょくちょくあった。(おもにver 1.7)
どうもSessionのデータがちょいちょい壊れる。

いい解決法を発見。
json_decode, json_encodeを使えることが前提

https://github.com/EllisLab/CodeIgniter/issues/13


Session.phpの_serializeと_unserializeを書き換える。


function _unserialize($data)
{
    return json_decode($data, true);
}

function _serialize($data)
{
    return json_encode($data);
}

Good!!!

2012年1月30日月曜日

PostgreSQL91のインストールメモ

postgresql84を入れていたテスト用の仮想マシンなので削除。

/etc/yum.repos.d/CentOS-Base.repo の[base]と[updates]のセクションの最後に以下を追加。

exclude=postgresql*


パッケージを取得
# wget http://yum.pgrpms.org/reporpms/9.1/pgdg-centos91-9.1-4.noarch.rpm
登録
# rpm -i pgdg-centos91-9.1-4.noarch.rpm
インストール
# yum postgresql91
起動設定
# chkconfig postgresql-9.1 on
初期化
# service postgresql-9.1 initdb
起動
# service posgresql-9.1 start


コマンド関係が、/usr/pgsql-9.1/bin/以下になっているので注意。

ストリーミング・レプリケーションとかしてみたいなぁ。

2012年1月25日水曜日

.forwardでPHPにメールを食わせる

.forwardファイルを使ってPHP等のプログラムにメールを処理させることがありますが、ちょっと躓いたのでメモ。

まず、何もなければ、.forwardファイルに以下のように書けばいい。

> vi .forward
"| /usr/bin/php /home/john/sciptfile.php"

(john, scriptfile.phpあたりは任意でっせ。)

ところが、smrshが動作していると簡単には実行してくれません。
勝手にプログラム起動して処理するなということです。
smrshに許可してもらうには、/etc/smrsh内に実行ファイルのリンクを作成してやればよい。

こんなコマンド↓
> ln -s /usr/bin/php /etc/smrsh/php

とここまではよく見かけます。
しかし今回はこれでうまくいきませんでした。

.forwardファイル内の記述が問題のようで、絶対パスは無視されたりいろいろ制約があるようです。
詳細は偉い人に聞いてください。すいません。

でどうするかというと。

.forwardに記述する内容を単純化するためシェルスクリプトを1つ作成します。

> vi scriptcall.sh
#!/bin/sh
/usr/bin/php /home/john/sciptfile.php

↑こんな単純なファイル。

作成したシェルスクリプトに実行権限をつけて、smrshで実行できるようにシンボリックリンクを作成。

> chmod 755 /etc/smrsh/scriptcall.sh
> ln -s /usr/bin/scriptcall.sh /etc/smrsh/scriptcall.sh


.forwardファイルの内容を以下の用に変更

>vi .forward
|sciptcall.sh

以上でjohnさんにメールが来るとプログラムにメールが渡されます。

exim4 mailq一括削除


exim4のmailqの一括削除方法で、いいのがあった。

http://www.fukudat.com/wiki/ja/%E7%8E%84%E7%AE%B1/exim4

# for msgid in `mailq | grep '<.*>' | cut -c11-27`; do
> echo $msgid
> exim4 -Mrm $msgid
> done

ありがとう。

2012年1月18日水曜日

VMWare CentOS メモ


VMWare PlayerでCentOS最小インストール済みのイメージを動かしたときのメモ。

■キーボードのコンフィグ
USキーボードからJISキーボード

/etc/sysconfig/keyboard

KEYBOARDTYPE="pc"

KEYTABLE="jp106"

■SELinuxをオフ(テスト用だし)
/etc/sysconfig/selinux

SELINUX=enforcing

SELINUX=disabled

モードの確認は、コマンド getenforce で可能。


■yumで必要なものを入れる。



■ネットワーク
system-config-network コマンドでCUIのネットワーク設定画面が出るのでこれで簡単に済ませれる。
実際には/etc/sysconfig/network-scripts/ifcfg-eth0 を編集している。

手書きで設定する場合は以下のファイル等。
/etc/hosts
/etc/resolv.conf
/etc/sysconfig/network


■iptables
/etc/sysconfig/iptables

このあたり↓を「-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited」の前に追加

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

必要に応じて開放するポートを増やす。


■VMWareの共有フォルダ
設定したが、結局SSHかFTPでファイルを送った方が楽なのであまり使わなかったので割愛。