連日の最高気温更新など、猛暑が続いておりますが、皆様体調は
いかがでしょうか?

さて、誠に勝手ながら、下記の期間を弊社の夏期休業とさせて頂きます。

2013/8/13(火)~8/15(木)

ご迷惑をおかけしますが、ご了承賜りますようお願い申しあげます。 

年末年始の休業日について

| コメント(0) | トラックバック(0)
今年もあっという間に過ぎ去っていった感じがありますが、皆様にとって、どのような年でしたか?

弊社の年末年始の休業日は、下記の通りとなっております。

2012/12/29(土)~2013/01/03(木)

来年も、皆様にとって良い年になりますように。
梅雨が明けた途端、連日暑い日が続いており、節電の必要性も迫られる中、
皆様体調を崩しておられないでしょうか?

さて、誠に勝手ながら、下記の期間を弊社の夏期休業とさせて頂きます。

2012/8/13(月)~8/15(水)

ご迷惑をおかけしますが、ご了承賜りますようお願い申しあげます。

php 5.4とZend Multibyte

| コメント(0) | トラックバック(0)
phpでマルチバイト系を取り扱う際に必要になるZend Multibyteですが
5.3系以前と5.4系では、利用方法が異なったので、忘れないために記載しておく。

○5.3系以前
コンパイルオプションに、"--enable-zend-multibyte"を追加する。

php.iniに下記を記載(UTF-8で取り扱う場合)
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.script_encoding = UTF-8

○5.4系
コンパイルオプションは廃止され、Zend Multibyteは標準で利用可能に
なりましたが、デフォルトではOFF状態です。

php.iniに下記を記載(UTF-8で取り扱う場合)
zend.multibyte = On
zend.script_encoding = UTF-8
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8

"mbstring.script_encoding"はなくなり、"zend.script_encoding"で
設定してあげる必要があります。
また、"zend.multibyte"をOnし忘れると、そもそも有効になりませんので、
注意が必要です。

5.4系は、apc周りなどにも問題があったので、一部環境にしかインストール
しておらず、気づくまで時間がかかってしまった... (-_-;)

年末年始の休業日について

| コメント(0) | トラックバック(0)

今年は東日本大震災も発生し、色々と大変な一年でしたが、皆様にとって、どのような年でしたか?
本当に年を重ねる毎に、あっという間の一年になってきています。

弊社の年末年始の休業日は、下記の通りとなっております。

2010/12/28(水)~2011/01/03(火)

来年も、皆様にとって良い年になりますように。

連日暑い日が続いており、節電の必要性も迫られる中、皆様体調を崩しておられないでしょうか?

さて、誠に勝手ながら、下記の期間を弊社の夏期休業とさせて頂きます。

2011/8/12(金)~8/16(火)

ご迷惑をおかけしますが、ご了承賜りますようお願い申しあげます。

CentOS 5.4以降では、IPv6無効化の方法が変わっていたので、忘れないように
書いておく。

# echo 'options ipv6 disable=1' > /etc/modprobe.d/disable-ipv6.conf

上記の設定を行った後、再起動すると適用される。

/etc/modprobe.conf や /etc/sysconfig/network で頑張っても無視されるので、
要注意!

perlとforkとDBI

| コメント(0) | トラックバック(0)

perlでDBIを使った処理でforkさせた際に、ちょっとはまったので、忘れないように書いておく。

親プロセスで、DB接続後にforkする場合、子プロセスにデーターベースハンドルが引き継がれて
しまい、困った事象(親のDB接続が切れる)が発生する。

これを回避するには、親プロセスのDB接続時に「AutoInactiveDestroy => 1」を設定すると、
幸せになれる。

○ソース例


my $conn = DBI->connect($dbname, $dbuser, $dbpass,
	{AutoCommit=>1, PrintError=>0, RaiseError=>0,AutoInactiveDestroy=>1}) ||
        die "OPEN ERROR(1): " . $DBI::errstr;

#  fork
my $pid = fork;
if (!defined $pid) {
	die "fork failed"; # 生成に失敗した
} elsif (!$pid) {
	# 子プロセス本体
	# 子プロセス用DB open
	my $conncd = DBI->connect($dbname, $dbuser, $dbpass,
		{AutoCommit=>1, PrintError=>0, RaiseError=>0}) ||
		die "OPEN ERROR(2): " . $DBI::errstr;
	# 子プロセス処理
	# 子プロセス用DB close
	$conncd->disconnect();
	exit;
}
# 親DB切断
$conn->disconnect();

ただし、"AutoInactiveDestroy"が使えるのは、DBIのバージョンが1.6.14以降の場合のみ。
それ以前の場合は、子プロセススタート時に、「$conn->{InactiveDestroy} = 1」とするとよい。

ちなみに、perlモジュールのバージョン確認は、Module::Infoをインストールしておくと、
簡単に確認できる。


$ module_info DBI

Name:        DBI
Version:     1.52
Directory:   /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
File:        /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/DBI.pm
Core module: no

#サンプル出力のバージョンが残念なバージョンでした...

php 5.3とSmarty 3

| コメント(0) | トラックバック(0)

php 5.3には色々な変更点があるが、Smartyも3系で大きな変更が行われており、
既存システムやサイトを動かそうとすると、はまりどころが多いようです。

現時点で、はまった点を忘れないように書いておきます。

・phpのエラーレポートレベルが変更されている
E_DEPRECATED が追加されていて、将来使えなくなるコードがエラーとして表示される。(標準状態)
ソースを変更しないといけないことには、変わりがないが、取り急ぎ稼働させたい場合は、
レポートレベルを変更して、エラーが出ないようにすることは可能。

error_reporting  =  E_ALL & ~E_NOTICE

error_reporting  =  E_ALL & ~E_NOTICE & ~E_DEPRECATED

・Smarty 3.0.7からpopup系のプラグインが削除されている
吹き出しみたいな感じで使えたpopupプラグインが削除されている。
継続して使いたい場合は、テンプレートに自分で記載するか、自前プラグインを作る必要有り。
(まあ、新しいサイトの場合は、使わないと思うので、大した問題ではないと思う)

・Smartyの"html_options"等のソースが変
html_options等を利用しているテンプレートで、2回目以降の表示の際に、
Call to undefined function smarty_function_escape_special_chars() in /usr/lib64/Smarty/plugins/function.html_options.php
などのエラーが表示されて、異常終了するケースが発生した。
該当のfunctionは、function.html_options.phpの33行目あたりで、require_onceでロードされているが、
キャッシュされた2回目以降の実行でうまくロード出来ない模様。

この問題は根が深そうな感じだが、取り急ぎ動作させるには、require_once → requireにすれば、
動作可能になる。

根本的な原因調査は、継続中。(Smarty本体の可能性が高いと感じている)

phpのincludeとinclude_once及びrequireとrequire_onceは、使いどころをよく考える必要有り。

CentOS 5.6とmod_nss

| コメント(1) | トラックバック(0)

mod_nssがインストールされた環境で、CentOSを5.6にアップデートして、httpdを再起動すると、
サイトにアクセス出来ない問題が発生したため、忘れないように記載しておく。

○エラー内容
error.logに下記のようなエラーが出力され、Apacheがまともに起動しない。
[error] NSS_Initialize failed. Certificate database: /etc/httpd/alias.

○原因
CentOS 5.6でアップデートされた「mod_nss-1.0.8-3.el5」が原因。
/etc/httpd/alias/ 配下のdbファイルのパーミッションが変更され、rootのみ読み書き可に
なってしまっており、Apacheの実行アカウントでアクセスできないため、エラーとなる。

アップデート後の/etc/httpd/alias/ 

drwxr-xr-x 2 root root    4096  4月 11 10:46 .
drwxr-xr-x 5 root root    4096  4月 11 10:43 ..
-rw-r----- 1 root apache 65536  7月 10  2008 cert8.db
-rw------- 1 root root    4395  7月 10  2008 install.log
-rw-r----- 1 root apache 16384  7月 10  2008 key3.db
lrwxrwxrwx 1 root root      31  4月 11 10:46 libnssckbi.so -> ../../..//usr/lib/libnssckbi.so
-rw-r----- 1 root apache 16384  7月 10  2008 secmod.db

○対策
/etc/httpd/alias配下のdbファイルのパーミッションを変更し、Apacheの実行アカウントで
アクセス出来る状態にして、httpdを再起動する。
(dbファイルのグループをapacheにして、グループへ読込権限を与える)

対策後の/etc/httpd/alias/

drwxr-xr-x 2 root root    4096  4月 11 10:46 .
drwxr-xr-x 5 root root    4096  4月 11 10:43 ..
-rw-r----- 1 root apache 65536  7月 10  2008 cert8.db
-rw------- 1 root root    4395  7月 10  2008 install.log
-rw-r----- 1 root apache 16384  7月 10  2008 key3.db
lrwxrwxrwx 1 root root      31  4月 11 10:46 libnssckbi.so -> ../../..//usr/lib/libnssckbi.so
-rw-r----- 1 root apache 16384  7月 10  2008 secmod.db

ちなみに、mod_nssをインストールしていない環境は、もちろん影響なし。
こんなアップデートパッケージのエラーは勘弁して欲しい...

 1  |  2  | All pages

2013年8月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.38
 
 

最近のコメント

アイテム

  • 砂月海水浴場
  • 福田農場
  • 天草いるかワールド
  • ひろき入学式
  • Xperia
  • ひろき卒園
  • 壮太髪置
  • ひろき6歳
  • SL人吉運行開始
  • 熊本城監物台植物園の桜

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。