2008年07月22日

DebianGNU/Linux3.1構築 - PHP5

DebianGNU/Linux3.1構築 備忘録

からの記事となります。


1.Debianインストール+ウイルス対策
2.NTP
3.FTP
4.SSH
5.Apache2
6.MYSQL5
7.PHP5
8.PHPとMYSQLの連携


この記事は7になります。




PHP5のインストールは色々と問題が出そうな予感がバリバリする・・・。


インストール


/etc/apt/sources.listを開いてリストを追加
#vi /etc/apt/sources.list

追加内容
deb http://people.debian.org/~dexter php5.1 sarge
deb-src http://people.debian.org/~dexter php5.1 sarge

# apt-get update
でリストを更新

# apt-cache search php5
とやるとphp5のモジュールが確認できる


そういえば、現在apxsが入っていない状態なので入れる。

apxsが入っているパッケージを探す
# apt-cache search apxs

apache-dev - development kit for the Apache webserver
だそうなのでapache-devをインストールする

# aptitude install apache-dev
これで/usr/binの下にapxsが入った


うまくいくかわからないがPHP5を入れてみる

# aptitude install php5
とりあえず最後まで通った

入ったパッケージは

php5.1-common 5.1.4-0.1
libapache2-mod-php5.1 5.1.4-0.1
php5.1-cgi 5.1.4-0.1
php5.1 5.1.4-0.1
php5.1-cli 5.1.4-0.1
php5.1-session 5.1.4-0.1




設定・確認


確認の為

<?php
phpinfo();
?>



と書いたindex.phpを/va/www/htmlにおいて、
http://サーバのIP/
にブラウザでアクセスしてみる。


・・・なぜかファイルのダウンロードダイアログ出現(笑)


とりあえず/etc/php5.1/apache2/php.iniの設定を定番通りにやってみる。


# vi /etc/php5.1/apache2/php.ini

文字コード
;default_charset = "iso-8859-1"
;default_charset = Shift_JIS
default_charset = EUC-JP

mb_string関係
以下まとめて追加し、それぞれのコメントは外さないのがわかりやすい
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
mbstring.script_encoding = auto

↓の設定のコメントを外す
gd.jpeg_ignore_warning = 0


とりあえずこんなもんでapacheを再起動する。

# /etc/init.d/apache2 restart


ファイルのダウンロードが出るということは拡張子phpをphpスクリプトとして認識してない、もしくはphpのモジュールが読み込まれていないといった辺りだろうか。

そういえば気になる事があった。

Redhatだといつもhttpd.confに

LoadModule php5_module modules/libphp5.so

と書いている。

今回は書いてない。

Windowsは確か自動で書いてくれてたんだよなぁ。

確認してみると自動で書かれはいない。


モジュールがあるか探してみると

/usr/lib/apache2/modules



mod_php5.1.so

を発見。あーこれかな。

試しにapache2.confのAddTypeが書いてある上に

LoadModule php5_module /usr/lib/apache2/modules/mod_php5.1.so

と書いてapacheを再起動してみる。


なんかエラーが出た・・・。

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.

はぁ?コンパイルされてない???

ネットで文献を探しているといくつかそれっぽいのが出てきた。

そのうちの1つに

apache2 MPM(Multi Processing Module)のデフォルトはworkerモデルになってるのだが、preforkモデルでないと正しく動作しない場合もある


といったようなことが書いてあったので、ならばと思い

# apt-get install apache2-mpm-prefork


と実行してapacheを起動してみる。

今度はエラーは出なかったがwarningが出た。

[warn] module php5_module is already loaded, skipping.

停止・起動どちらをしてもこれが出る。

already loadedってことはもしかしてさっきのapache2-mpm-preforkをインストールしたことによって他の場所から読み込まれるようになったということか?

試しにapache2.conf内に書いたLoadModule〜を削除してみる。

で、apacheを再起動。

・・・エラーもwarningもなく再起動した。

これでいったか?と思い、腐るほどブラウズしているphpinfoを開く。

キタ━━━ヽ(ヽ(゚ヽ(。∀ヽ(゚∀。ヽ(。∀゚)ノ゚∀。)ノ∀゚)ノ゚)ノ)ノ━━━!!!!

やっと見れるようになったので中身をざっと見てみる。

ftp OK
gd OK
mbstring OK
mysql OK

php.iniの内容がちゃんと反映されている。


が・・・pearがない。。


PEARのインストール


というわけでDebian php5 pearをネット検索。

さっそくやってみる

リストを取得して更新する
# /etc/apt/sources.list

以下を追加
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

# apt-get update

# apt-cache search pear



で探してみると・・・

php-pear - PEAR - PHP Extension and Application Repository
php4-pear - PHP Extension and Application Repository (transitional package)

php5-pearというのはない。。

文献にはphp5-pearが見つかると書いてあるのに。。。


ブラウザで実際に
http://packages.dotdeb.org/dists/sarge/php5/binary-i386/
をのぞいてみると、php5ディレクトリ内なのにphp-pearというのがある。

てことはこれでいいのか?と思いこれをインストールしてみる(笑)

# apt-get install php-pear


で、インストールしたあとに別の文献で見つけたのだが、どうやらこれはpearコマンドを使えるようになるもので各種パッケージが入るものではないらしい。。

とうことでまずPEARを入れてみる
# cd /usr/bin
# pear install PEAR

おー動いた動いた(笑)

Archive_Tar 1.3.1 stable
Console_Getopt 1.2 stable
PEAR 1.4.11 stable

が入った。

続けてDB、Auth、Auth_HTTPもいれてみる。

# pear install DB
# pear install Auth
# pear install Auth_HTTP

まあメイン所は入ったのであとは随時入れるということで。




やっぱりPHP5はDebianではちょっと(かなり?)入れづらかった。

まあどうしてもバージョン5じゃなきゃいけないわけじゃなかったから4でもよかったんだけどね。。

結果的にはインストールできたのでチャレンジしてみてよかった。

何かしら参考になりましたらクリックをよろしくお願いします
にほんブログ村 IT技術ブログへ   人気ブログランキング    
posted by トモヒロ | Comment(0) | TrackBack(0) | Linux
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。