FedoraにPHPをソースから入れると…

MySQLだけでは操作がしんどいのでphpMyAdmin使うためにApacheとPHPをソースから入れてみました。デスクトップ環境は全てパッケージ任せですが、ローカルでテスト稼動環境作るのには公開用と同じくソースから入れているのですが、Apacheを起動しようとしたときに、

# /usr/local/apache/bin/apachectl start
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so: cannot restore segment prot after reloc: Permission denied

こんなエラー出るんですね。文法エラー?でconfigtestしても同じ表示だし意味不明だったのでネットで検索したらSELinuxのセキュリティーが絡んでて、自前で入れたsoライブラリが使えないように制限しているらしい。詳しいことは良く分からないので下部の参考サイトで、

結果として次のコマンドを実行することでlibphp5.soがロードできるようになりました。
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so

参考:
cannot restore segment prot after reloc Permission denied – Linuxシステム設定
http://ppwww.phys.sci.kobe-u.ac.jp/~akusumoto/linux/detail.php?d=config/selinux/chcon

Fedora JP 掲示板
http://bbs.fedora.jp/read.php?FID=9&TID=3278
http://bbs.fedora.jp/read.php?FID=10&TID=4759

Cannot restore segment prot after reloc Permission deniedというエラーメッセージが表示されたら,どうしたらよいのですか.
http://support.wolfram.com/mathematica/systems/linux/general/selinux.ja.html

16進ダンプでも心配なMySQL

さすがに16進なら大丈夫だろうと思っていたら、他のサーバへデータを移動する為にインポートしようとしたら

ERROR 1054 at line 98603: Unknown column ‘0x’ in ‘field list’

このようにエラーを吐いて処理が止まった。
結局どんな吐き出し方をしたのだろうと確認すると、元のDBでは空文字(NULLでは無い)状態になっている文字列フィールドでダンプ時に0xのみ出力されていました。

NULLであれば
VALUES(NULL,NULL,NULL);
という感じになるところが空文字だと
VALUES(0x,0x,0x);
となっていました。終端文字を吐き出さない仕様だからこうなるのでしょうが、同じバージョンのMySQLならインポートも対応しろよって思いました。

結局空文字はNULLでも良かったのでテキストエディタで置換してインポート終了しました。どうしても空文字で入れたいのであれば0xを”に置換してもいいですね。

使用したバージョン:4.0.26

phpMyAdmin で Parse error

PHP Parse error: syntax error, unexpected T_STRING, expecting ‘)’ in /usr/local/apache/htdocs/phpMyAdmin/lang/japanese-euc.inc.php on line 19

phpをインストールするときに–enable-zend-multibyteオプションをつけていると上記のようなエラーが発生する。今まで気が付かなかったが既存サーバに導入しても真っ白で表示されないから調べたらこんな始末でした。。。

参考:
PHP5.1.1
phpMyAdmin2.8.0.2
MySQL4.0.26