メモメモ1

メモメモ1  メモメモ2  メモメモ3


Showzieがお勧めする書籍のご案内



HTMLでPHP
何ともよくわからないタイトルなのですが、拡張子が.htmlのファイルにPHPのコードを記述して、PHPファイルとして動作させよう、というものです。このページ自体も、拡張子は.htmlなのですが、PHPのコードを記述してプログラムが動いている部分があります。なんでこんなことするかと言うと、私の使っているホームページビルダーはプレビューしようとすると、拡張子が.phpのファイルはウマく表示できずにダウンロード画面になってしまうからです。いちいち拡張子を変更するのも面倒くさいし。
.htaccessに以下の1行を記述して完了です。

AddType application/x-httpd-php .html

ローカルサーバーでやってみたら、見事にInternal Server Errorになってしまいました(ToT)。ApacheのAllowOverrideがNoneになっていたのが原因でした。ローカルテスト専用のサーバーマシンなので AllowOverrideAll にしてやってみたら見事成功。
PHPは扱いやすいし動作が軽くていいですね。


XOOPSの文字化け
XOOPSをインストールしたところ、日本語が見事に文字化けしてしまいました。XOOPSはEUCなサイトなので、データベースもEUCが良いと思ってセットしたのですが、どうもウマく行きません。
調べたところ、メールの文字化けに関してはパッチがあるので、それに差し替えて無事解決。
ただ、サイト表示や入力データはどうしても文字化けしてしまうので、データベースをUTF-8で作り直してやってみたら見事ウマく行きました。
問題は、phpMyAdmin(2.6.4)で見るとデータが文字化けしてしまうこと。これに関しては、バージョンの古いphpMyAdmin(2.5.7あたり)で見ると正常に表示されることがわかりました。
とりあえずはXOOPSで正しく表示できているので良しとしましょう。


OpenPNEの文字化け
OpenPNEはUTF-8なサイトなので、MySQLもUTF-8にしておかないとウマく行きません。で、phpMyAdminでデータベースを作る際にちゃんとUTF-8にしたのに、なぜか文字化け。
原因は、phpMyAdminのバージョンが古く(XOOPSの時に使った2.5.7)、ブラウザの文字コードがEUCの状態でデータをINSERTしていたので、初期に入っているデータが全て文字化けしていたのでした。
phpMyAdminのバージョンを上げて(2.6.4)、ブラウザの文字コードをUTF-8にしてINSERTしたら無事成功!
結局サーバーにはXOOPS用のphpMyAdmin(2.5.7)とOpenPNE用のphpMyAdmin(2.6.4)の2つが存在することになりました。

phpMyAdminって強力ですね。以前、PostgreSQLとphpPgAdminも使ったことがありますが、PostgreSQLは、再々面倒を見てやらないとすぐにスネてしまってphpPgAdminでもどうにもならなくなってしうことが結構あって、最悪の場合サーバーリブートしないといけないというハメに。ずいぶんと悩まされたことがありましたので、今はMySQLとphpMyAdminで全てまかなう様にしています。
やっぱWEBプログラムは機能性よりスピードかな?




MySQLのInnoDBの設定値変更
InnoDBってあんまり使うことがないのですが、要望があって
   ・innodb_buffer_pool_size
   ・innodb_log_file_size
   ・innodb_log_buffer_size
この3つの設定値を変更することになったのですが、Webminでは変更ができません。なので、viでmy.cnfのinnodb_log_buffer_sizeを変更して再起動しようとしたのですが、なぜかMySQLが起動してくれません。よくよくエラーログを見てみると
InnoDB: Error: log file /xxxx/ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 67108864 bytes!
つまり、「ログファイルのサイズが違う!」というので起動ができなくなっていたのでした。
ib_logfile0だけを削除してもダメみたいで、ib_logfile0とib_logfile1を削除したら無事起動することができました。
よくよく調べてみるとここにそれらしき説明がありました。この説明、わかりにくい。。。
innodb_log_buffer_sizeの説明のところに記述してほしかったなぁ。




CentOSのインストール
CentOSをDELL PowerEdge SC430にネットワークインストールしました。ローカル環境でプログラムのテスト用に、ということで、実際使っている実サーバー(RHEL)の環境に近くしたかったのでCentOSを選択しました。
『CentOS インストール』で検索するとたくさん出てきますので、今さらここで解説することもないですね。とりあえず忘れない様に、ということで。。。

まず、このあたりこのあたりこのあたりの情報を見ながら理研のサイト(ftp://ftp.riken.jp/)からboot.isoを取って来ます。ファイルはftp://ftp.riken.jp/Linux/centos/4/os/i386/images/boot.isoです。centos/4/とすれば、最新のバージョンに自動的に繋がるので便利です。
ファイルをCD-Rに焼き付けるのですが、ここに落とし穴が。isoイメージとして焼き付けないといけないのに普通にやってしまったものだから、いくらやってもダメ。かなり長時間ハマりました。
で、やっとできたCD-Rをマシンに入れて電源ON。あとは表示される通りに進んで行けばOKです。あっけなく完了しました。
でも、今使っているRedHatEnterpriseLinuxと少々使い勝手が違うので、あれこれと調整しました。



yumの設定

ここを参考にyumを設定しました。GPG keyは以下の場所にありました。
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS4



Webminのインストール

ここを参考にrpmでインストールしました。Webminのサイトにアクセスし、ページ右上の「RPM」を取って来ます。2006/12の時点でwebmin-1.310-1.noarch.rpmでした。
持って来たディレクトリに移動して
rpm -ivh webmin-1.310-1.noarch.rpm
SSLでログインしたいので、ここからperlモジュールを取って来て設定しました。
2006/12の時点でNet_SSLeay.pm-1.21.tar.gzでした。
持って来たディレクトリに移動して
tar -xvzf Net_SSLeay.pm-1.21.tar.gz
cd Net_SSLeay.pm-1.21
perl Makefile.PL
make install
あとはWebminにログインしてSSLを使う様に設定して完了です。



CentOSの文字コードをUTF-8からEUCに変更

SSHで接続した時に日本語が文字化けしていたので、EUCに変更しておきます。
vi /etc/sysconfig/i18n
LANG="ja_JP.EUC-JP"

SELinuxを無効にする

ローカルのテスト環境なのでSELinuxを無効にしました。
vi /etc/selinux/config
SELINUX=disabled

Apacheの文字化け対策

AddDefaultCharset UTF-8 となっているとウマく日本語が表示されずに文字化けしてしまうことがあります。この行をコメントアウトしておきます。
# AddDefaultCharset UTF-8



あとは、適宜不要なサービスを停止させたり、php.iniを実サーバー(RHEL)に合わせたり、という作業を行い、無事、実サーバー(RHEL)とほぼ同じ環境にすることができました。
よかったよかった(^o^)






Webminは大変便利なツールですね。よくできてるな〜(^o^)




債務整理キャッシング