からの記事となります。
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のモジュールが確認できる
#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が入った
# 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
とりあえず最後まで通った
入ったパッケージは
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();
?>
<?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
文字コード
;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
# /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
まあメイン所は入ったのであとは随時入れるということで。
# 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でもよかったんだけどね。。
結果的にはインストールできたのでチャレンジしてみてよかった。