リモートの開発環境(既存)にBugzillaを移植する。

テストHost1とテストHost2が既に存在します。
環境は

テストHost1
・Redhat9
・MySQL3.0〜(かな?)
・Perl5.8(かな?)

テストHost2
・Redhat9
・MySQL4.1
・Perl5.8(かな?)

こんな感じです。
で、テストHost1にあるBugzillaをテストHost2に以降します。


作業手順としては

Bugzillaをtar.gzに圧縮→テストHost2に持ってく(SCP)→解答→PerlのライブラリをCpanを使って入れていく
ココからは動くまでサイクル。
動かす→原因を探る→色々やってみる→動かす→・・・

みたいな感じw


色々とハマリまくったので
そこを中心に書きます。




Perlのライブラリが足りない。
DBDとDBIとTemplateなるものが足りなかった模様。
DBIを入れる。→OK
DBDを入れる。→NG
Templateを入れる。→NG


良く見るとDBDがMySQLと接続出来ないらしい・・・
DBDがMySQLと接続出来る事を確認してから
再度、Templateを入れなおす。


MySQLコンパイルしなおす。
MySQLは"Socket"と言うもの吐き出して、Perlはその"Socket"を拾ってMySQLと接続します。
取り合えずココでコケます。
MySQLがSocketを吐いてる場所が"/tmp/mysql4048.sock"見たいになっていて
DBDが見に行っていたのが"/usr/local/mysql/mysql.scok"見たいな感じだった。
(師匠が頑張って探ってくれました!!俺じゃわかんねー・・・)
場所はともかく、用はあっていないのであわす。
MySQLコンパイルする時にSocketの吐き出し場所を指定している模様。
それを変えて再度コンパイル

MySQLのソースがある場所> make
MySQLのソースがある場所> make test
MySQLのソースがある場所> make install

再起動

ふじこ> /usr/local/mysql/bin/mysqladmin -u root  shutdown
ふじこ> /usr/local/mysql/bin/mysqld_safe --user=root&

・DBDをコンパイルしなおす。

CpanのDBDのソースがある場所> make
CpanのDBDのソースがある場所> make test
CpanのDBDのソースがある場所> make install

今度はmake testでコケなかった!
なのでTemplateをコンパイルしなおす。

CpanのTemplateのソースがある場所> make
CpanのTemplateのソースがある場所> make test
CpanのTemplateのソースがある場所> make install

TemplateもOKでした。


じゃーいざBugzillaのIndex.cgiを実行。


500 Internal Server Error


コンソールで実行して見る。

Bugizillaディレクトリの中>./index.cgi

動く。


ユーザー権限とパーミッションが設定されてないのか!!
Perlなんて久々なので忘れてたよ・・・


コンソールで変更します。SCPからだと変更出来なかったり、いっぺんに出来ないんで・・・

Bugizillaディレクトリの中>chown -R homepage:homepage ./
Bugizillaディレクトリの中>chmod -R 755 ./
Bugizillaディレクトリの中>chmod 777 ./data

chownはユーザー:グループの順番だったかな??
まーググってくれ。
dataフォルダだけは書き込み権限も着けとかなきゃいけないみたいなので
777にしておく。


権限を変えたので再度アクセス。


うごいたーーーー!!!(本当はもっと色々しょーもない問題がありましたw)


動いたのでエイリアスを切ってみる。

/home/homepage/public_html/bugzilla-ja → /home/homepage/bugzilla-ja

に移動して(public_html直下だと、間違って本番にUPしてしまうかもなので・・・)

http://(テストhost1)/bugs/

で動くようにする。
httpdコンフに設定。詳しくは簡単なので語らない。


で、アクセス。


・・・動かない。

tail -f /(apacheの入ってるところ)/logs/error_log

これやるとエラーのログが見れるんだって。
スゲー


で、アクセス。
エラーログを見てみると・・・
ExecCGIがないから実行出来ない・・・と。
なのでhttpdコンフを変更

Alias /bugs/ "/home/homepage/bugzilla-ja/"

<Directory "/home/homepage/bugzilla-ja">
    Options Indexes FollowSymLinks MultiViews ExecCGI
    AllowOverride All
    DirectoryIndex index.cgi index.pl
</Directory>

OptionsってとこにExecCGIって足したのね。


これでまた実行。


うごいたーーーーー!!


でも、
ログインしたらページ遷移する度にログインを聞いてくる・・・
前の環境に戻すとそんな事はない。
おかしい・・・


よーーーーく見ると・・・
Bugzillaのパラメータなるページにアクセスしてみると・・・


”cookiepath: Bugzilla を設置した document root 以下にあるディレクトリパス。スラッシュ (/) で始まることを確認してください。 ”


あー。。。


らしいので
cookiepath:にエイリアスの名前、つまり"bugs"と入力してSubmit


以上、やっと終わりました・・・
実はトータル24時間くらい格闘しました・・・
うち前半はまったく理解できなかったので師匠ことふる師匠さんにやってもらいました・・・orz


やっと終わった・・・