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年2月23日木曜日
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
コマンド関係が、/usr/pgsql-9.1/bin/以下になっているので注意。
/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
# 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
# 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さんにメールが来るとプログラムにメールが渡されます。
まず、何もなければ、.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でファイルを送った方が楽なのであまり使わなかったので割愛。
2011年9月16日金曜日
PostgreSQL 8.4 デフォルトのエンコード
PostgreSQL 8.4からロケール周りの変更で、initdb時に指定したエンコード以外でcreatedb仕様とするとエラーになるようだ。
# createdb -E UTF8 uft8db
→エラー
今まで何台かのサーバでやってたけど気づかなかった。
redhat EL4のPostgreSQLだとinitdb時のエンコードがSQL_ASCIIなのか?
プロバイダ提供のインストーラがこけたのでyumで入れなおしたからか?
HINTにtemplateと同じ文字コードを使うか、template0をテンプレートとして使う、とあります。
文字コードはutf-8にしたいので以下のようにして作成。
# createdb -E UTF8 uft8db -T template0
-T template0でなにか問題起こったりすることはあるのだろうか?
問題があったら追記しよう。
# createdb -E UTF8 uft8db
→エラー
今まで何台かのサーバでやってたけど気づかなかった。
redhat EL4のPostgreSQLだとinitdb時のエンコードがSQL_ASCIIなのか?
プロバイダ提供のインストーラがこけたのでyumで入れなおしたからか?
HINTにtemplateと同じ文字コードを使うか、template0をテンプレートとして使う、とあります。
文字コードはutf-8にしたいので以下のようにして作成。
# createdb -E UTF8 uft8db -T template0
-T template0でなにか問題起こったりすることはあるのだろうか?
問題があったら追記しよう。
2011年7月9日土曜日
ビデ鑑
先日(6/19)のフナ橋ライブのビデオ鑑賞会。
昔は夜集まって酒飲んでうだうだ的な感じだったのが、いまや昼集合・子供とたわむれつつな感じ。
時の流れを感じます。
ビデオ見てみると、結構いい感じじゃないですか。
個人的にもビデオにするとベースは荒が目立たなくなるので結構よくできているように見える。
今日見るからいいやと思ってアップしてもらってたyou tubeは下のアドレス。
http://www.youtube.com/user/funabashimacco
これでどこからでも見れる。
昔は夜集まって酒飲んでうだうだ的な感じだったのが、いまや昼集合・子供とたわむれつつな感じ。
時の流れを感じます。
ビデオ見てみると、結構いい感じじゃないですか。
個人的にもビデオにするとベースは荒が目立たなくなるので結構よくできているように見える。
今日見るからいいやと思ってアップしてもらってたyou tubeは下のアドレス。
http://www.youtube.com/user/funabashimacco
これでどこからでも見れる。
登録:
投稿 (Atom)