久しぶりの日記の更新です。といっても休んでいたわけではありません。PHPとMySQLを連動するのにてこずっています。今日は中間報告をします。
MySQLやPHPを単体で動かすことはRPMパッケージを使うと簡単にできるのですが、両者を連動させるには、どうやらソースからコンパイルすることが必要のようです。雑誌の記事で「もうmake
installする時代じゃない」とか書いてあったのですが、あれはなんだったんでしょう・・・
さてインストールですが、未だ成功してません。どなたかわかるかたがいらっしゃったら助けていただきたく思います。おそらくはオプションの設定が原因とは思われるのですが、とにかく動きません。<追記:>と思ったらできてました。拡張子がPHP4は認識しないのですが、PHPは認識します
- 環境整備
今回のインストールに関しては、下記の条件下で行いました。
- OS:turboLinux server 7
FTP版(ここの記事をみて、gccに2.95を採用しているTurboLinuxを選びました)
- MySQL ここで提供されています。(2002年8月16日現在の最新版は3.23.52です)
- apache ここで提供されています。(セキュリティホールがでたそうです。対策してある最新バージョンは1.3.26です。)
- PHP ここで提供されています。
- MySQLのコンパイル〜インストール
- まず圧縮ファイルを解凍します
tar zxfv mysql-3.23.53.tar.gz
- するとディレクトリができあがるのでそこへ移動します(CD:チェンジディレクトリ)
cd mysql-3.23.53
- ./configureを実行します。オプションの意味がなかなかわからないで苦労しました。
./configure --with-charset=ujis --prefix=/usr/local/mysql
このうち--with-charsetというのはujisを使いますよと宣言しています。本で読んだのですが、これを指定しないとソートの時に文字化けする可能性があるとのこと。RPMパッケージでは特に設定していない。内部ではどうなっているのか疑問です。
次に--prefixはmysqlの格納場所を示しています。これを決めておくと、あとでPHPをコンパイルするときにMySQLの場所をちゃんと指定することができるようです。しかし私は成功できませんでした。
- makeを実行する
無事に./configureが終わると、MySQLを選んでくれてありがとうというメッセージが英語で表示されます。makeを実行します。
- make installを実行する
- 初期化スクリプトを実行する
./scripts/mysql_install_dbを実行します。これは1回のみ行えばいいようです。
- MySQLユーザーの追加(例のごとくオプションの意味は不明です。)
/usr/sbin/groupadd -g 75 mysql
/usr/sbin/useradd -u 75 -g mysql mysql
- オーナーの指定
chown -R mysql.mysql /usr/local/mysql
- apacheがちゃんと起動するか実際に動かす前にテストします
/usr/local/apache/bin/httpd -t
Syntax OKと出れば文法上の間違いはないようです
- 実際にapacheを起動します。
/usr/local/mysql/bin/safe_mysqld &
- apacheの自動起動を設定します
/etc/rc.d/rc.localファイルに下記を追加します
/usr/local/mysql/bin/safe_mysqld &
- ライブラリを正しく読み込ませるための設定をします
/etc/ld.so.confファイルに下記を追加します
/usr/local/mysql/lib
- それからあとはセキュリティの観点から余分なユーザーは削除しておきます(以前の日記を参照)
- apacheのコンパイル〜インストール
- まず圧縮ファイルを解凍します
tar zxfv apache_1.3.26.tar.gz
- ディレクトリができあがるのでそこへ移動します
cd apache_1.3.26
- ./configureを実行します。オプションの意味はあまりよくわかりません
./configure --enable-module=all --enable-shared=max --prefix=/usr/local/apache
- makeを実行する
- make installを実行する
- それから/usr/local/apache/conf/httpd.confを編集しますが、これもどうやら正しく設定できていないような気がします。ということでここでは割愛させていただきます。
- PHPのコンパイル〜インストール
- 圧縮ファイルを解凍します。4.2.2が最新バージョンですが(2002−08−16)これをコンパイルしたらコンパイル時にえらーになってしまったためやむ終えず古いバージョンをコンパイルすることにしました。下記の4.1.2は実行まではいきませんでしたがコンパイルは終了しました。
tar zxfv php-4.1.2.tar.gz
- cd /php-4.1.2
- ./configure --with-apxs=/usr/local/apache/bin/apxs
--with-mysql=/usr/local/mysql
- make
- make install
- 上記を実行し、コンパイルの完了の画面はでました。しかしphpinfo()を使ったテストページは結局のところ稼動しませんでした。残念です。<追記>とおもっていたらできていました。どうやらこのやりかたでなんとかいけそうです。しかしPHP4の拡張子が動かなかったりしているのでさらに要調査です。やったーーーーーー!
|