ググるとインストール時にsendmailが入っていないことが原因とあったのですが、最初にaptでインストールした時はsendmailが入っていて、その後sendmailをアンインストールし、qmailをインストールしました。その後mbstring関数が動かないことに気づき、phpをaptでアンインストールし、ソースからインストールしなおしたところ、mail関数が通らなくなりました。
そこで、sendmailをaptでもう一度インストールし、phpをコンパイルからもう一度インストールしなおしたのですが、まだmail関数が動きません。どうすれば動くようになるでしょうか?
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 の在り処を示すように設定する、でも大丈夫かと・・。
私はCentOS(RedHatLinuxクローン)使いなので、ちょっと違うかも知れませんが...
yum -y install php-mbstring
で駄目でしたでしょうか?
aptよりもyumの方が楽なので、私はそっちを使って問題なくできているのですが...
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を使用したい場合,
$ 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は存在しないのでその手段ではダメです.
コメント(0件)