Red Hat Linux 9にphp4をインストールしたいのですが、aptでインストールするとmbstring関数がインストールされなかったので、ソースからコンパイルしてインストールしたところ、今度はmail関数が通らなくなり、undefined functionと表示されました。

ググるとインストール時にsendmailが入っていないことが原因とあったのですが、最初にaptでインストールした時はsendmailが入っていて、その後sendmailをアンインストールし、qmailをインストールしました。その後mbstring関数が動かないことに気づき、phpをaptでアンインストールし、ソースからインストールしなおしたところ、mail関数が通らなくなりました。
そこで、sendmailをaptでもう一度インストールし、phpをコンパイルからもう一度インストールしなおしたのですが、まだmail関数が動きません。どうすれば動くようになるでしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/07/23 20:25:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:toohigh No.1

回答回数291ベストアンサー獲得回数37

ポイント35pt

qmail の sendmail 互換インタフェースが正しく動かない状態で

入ったままになっていて、php がそれを使おうとしている、という可能性が高いかと思います。

現在のソースからインストールした php で、

> php -r 'phpinfo();' | grep sendmail_path

・・を実行した結果でどの sendmail コマンドが使われているかがわかるので、それを

> /usr/sbin/sendmail -d0.101

・・・などとバージョン確認してみれば答えが出ると思います。

# sendmail であれば、Version 8.13.1 、というような結果が出ます

対処方法は、qmail を完全に消してから改めて sendmail を入れなおした上で php を入れる、という感じが良いかと思います。

場合によっては、php.ini で sendmail_path を明示的に正しい sendmail の在り処を示すように設定する、でも大丈夫かと・・。

http://www.php.net/manual/ja/ref.mail.php

id:darktribe No.2

回答回数36ベストアンサー獲得回数0

ポイント35pt

 私はCentOS(RedHatLinuxクローン)使いなので、ちょっと違うかも知れませんが...

 yum -y install php-mbstring

 で駄目でしたでしょうか?

 aptよりもyumの方が楽なので、私はそっちを使って問題なくできているのですが...

id:elf No.3

回答回数76ベストアンサー獲得回数8

ポイント10pt

qmail環境でのsendmailは/var/qmail/bin/sendmailがあると思うので,/usr/sbin/などにシンボリックリンクとかしてあげてください

# /bin/ln -s /var/qmail/bin/sendmail /usr/sbin/.

これでビルドし直せばsendmailを認識してくれます.

#make distcleanをお忘れ無く

$ make distclean
$ ./configure ...
$ make all test

また,Red Hat Linux 9のPHPのrpmでmbstringを使用したい場合,

  • SRPMを取得してSPECファイルを取り出し,修正
$ echo "%_topdir ~/rpm" > ~/.rpmmacros (既に存在したら上書きに注意
$ rpm -ihv php-....src.rpm (src.rpmなことに注意)
$ vi ~/rpm/SPEC/php.spec (configure関連を修正)
$ rpmbuild -ba ~/rpm/SPEC/php.spec

これでPHPのrpmが作成されます.ただしバージョンがかなり古いので脆弱性など沢山含まれるため,このPHPを使用することはお勧めしません.

また,拡張モジュールだけ後から追加などもできるのでビルド手順がわかるならこちらを使用することもできます.

http://wiki.poyo.jp/read/PHP/tips/mod/add_later


# 下記余談

id:darktribe さん>>

Red Hat Linux 9にはphp-mbstringというRPMは存在しないのでその手段ではダメです.

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません