Vine Linux 6 (Haut Brion) インストールメモ
Vine Linux 6 (Haut Brion) を Web サーバーとしてインストールした時にハマってしまい手間取った件やちょっとしたコツなどを未来の自分のためにメモを残しておく。 
困ったことの解決法など
- ネットワークに繋がらない
- コンソールの文字化け
- Samba の設定が間違っていないのに接続できない
- sysstat のインストール
cd tmp
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.2.tar.gz
rpmbuild -ta sysstat-10.0.2.tar.gz
apt-get install /usr/src/vine/RPMS/i386/sysstat-10.0.2-1.i386.rpm
- nfs 経由で文字エンコーディングの違うマシンに接続するとマルチバイトなファイル名が化ける
- rsync の "--iconv" オプションを使うか samba 経由で接続する
- PHP の APC の効果がほとんどない
- NFS 経由で cp でコピーしたためシンボリックがネットワーク越しになってたかも?(適当な推測)
- 不必要なサービスを止める
- atd
- cups
- haldaemon
- iscsi
- iscsid
- mdmonitor
- messagebus
- nfs
- nfdlock
- rpcbind
- rpcidmapd
- imagemagick
- apt-get install perl-Image-Magick (ついでに perl 用もいれるので。imagemagick だけなら ImageMagick )
- jpegtran
- apt-get install libjpeg-turbo-utils
- NetworkManager を止めて、networkを使うようにする
# /etc/init.d/NetworkManager stop
# /etc/init.d/network start
- 起動時に常にnetworkを使うようにする
# /sbin/chkconfig NetworkManager off
# /sbin/chkconfig network on
- IPv6 を無効にする追記
- /etc/sysconfig/network-scripts/ifcfg-eth0
- /etc/modprobe.d/modprobe.conf
alias ipv6 off
options ipv6 disable=1
Apache, PHP 関連
- APC (3.1.9) - PECL :: Package :: APC
php_apc.c
php_apc.c.diff
- セッションのカスタムハンドラでオブジェクトを使用している時にセッションが保存されない場合は、カスタムハンドラオブジェクトのデストラクタで session_write_close() を コールする。
- PHP: session_set_save_handler - Manual
PHP 5.0.5 以降、write ハンドラおよび close ハンドラはオブジェクトが破棄されたあとにコールされます。 そのため、セッション内でデストラクタを使用可能ですが、 ハンドラ内ではオブジェクトを使用できません。
この「ニワトリが先かタマゴが先か」の問題を解決するために、 デストラクタから session_write_close() を コールすることが可能です。
XOOPS 2 の場合、kernel/session.php の XoopsSessionHandler クラスにデストラクタを追加することで APC 使用時も問題なくセッションが使えるようになる。 (NG: ob_start() で登録したコールバックにおいて、セッション変数を使えない。)
-
// for PHP >= 5.0.5
function __destruct() {
session_write_close();
}
- 'session_write_close' を register_shutdown_function() 関数で登録するのが正解?
オブジェクトをセッション保存ハンドラとして使うときには、 シャットダウン関数を PHP に登録しておくことが重要です。 これで、PHP スクリプトの終了時に内部的にオブジェクトを破棄する処理による副作用や、 write および close がコールされてしまうことを防げます。 一般的には、'session_write_close' を register_shutdown_function() 関数で登録しなければなりません。
- しかし、XOOPS 2 の include/common.php の session_set_save_handler() をコールしたあたりに、
217
218
219
| session_set_save_handler(array(&$sess_handler, 'open'), array(&$sess_handler, 'close'), array(&$sess_handler, 'read'), array(&$sess_handler, 'write'), array(&$sess_handler, 'destroy'), array(&$sess_handler, 'gc'));
session_start();
register_shutdown_function('session_write_close');
|
と、登録すると、タイミングの問題なのか、ob_start() で登録したコールバックにおいて、セッション変数を使えない。
- ob_start() でコールバックを指定して、そこで session_write_close() を実行するようにしてみた。
-
217
218
219
| session_set_save_handler(array(&$sess_handler, 'open'), array(&$sess_handler, 'close'), array(&$sess_handler, 'read'), array(&$sess_handler, 'write'), array(&$sess_handler, 'destroy'), array(&$sess_handler, 'gc'));
session_start();
ob_start(create_function('$output', 'session_write_close();return $output;'));
|
ビンゴ!です。これで問題ありません。全て解決しました。
- mod_xsendfile - mod_xsendfile for Apache2/Apache2.2
データの引越し
- ssh 経由でディレクトリ単位のファイル移動
- memo
sent 22603409218 bytes received 57124873 bytes 405880.91 bytes/sec
total size is 23151105507 speedup is 1.02
rsync warning: some files vanished before they could be transferred (code 24) at main.c(1060) [sender=3.0.7]
Links
