リモートの開発環境(既存)に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を実行。
コンソールで実行して見る。
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
やっと終わった・・・