人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

FreeBSDで、mbstringを読み込ませたい。
PHPとextension、mod_phpを、pkg installでインストールしました。

端末から
$php -m とすると、特にエラーなく、mbstringやその他のモジュールが表示されます。
ところが、ブラウザからphpinfo();でみると、それらのモジュールが表示されません。
どのような方法で、phpinfo();に、mbstring及びその他のモジュールを表示されることができるのでしょうか。
環境
FreeBSD 11.1-RELEASE
Apache 2.4
PHP 7.1.10

やったことは、質問文が長すぎるといわれたので、補足欄に記述します。よろしくお願いします。

●質問者: ymlab
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

質問者から

1.portでのインストール[実は最初はportでした。同じエラーになり、reinstallした後からSegmentation fault.あきらめてpkgでインストール。]
2. そもそもmbstring.soがないのでは?と考え、探すとありました。端末からphp XXX.php で普通にmbstringを使った関数は動きます。
4.実はphp.iniを参照しているファイルが違うのではないかと考え、php.iniのLoaded Configuration Fileを確認して、適当にpost_max_filesを変更してみると正常に反映された。
5.php.iniでパスが通っていないと考え、phpinfoを見てみると、Additional ini parsedに /usr/local/etc/php/ext-20-mbstring.ini,が存在。
6.ext-20-mbstring.iniの中身は単純にextension=mbstring.soなので、php.iniの方にextenstion=mbstring.soとか、mbstring.soの場所を絶対パスで指定したら、php -mで既に組み込まれていると怒られる。

従って、ターミナル上では正常なのに、phpinfo()では見えない・・。
長文失礼しました。よろしくお願い致します。


1 ● a-kuma3
●100ポイント ベストアンサー

ターミナルと Apache が動いてる環境で、LD_LIBRARY_PATH が違うんじゃないでしょうか。
Apache のプロセスでは、LD_LIBRARY_PATH に mbstring.so が置いてあるディレクトリが含まれてない。

似たような人↓
https://blog.katsuma.tv/2007/05/apache_php_env.html

LD_LIBRARY_PATH には、.so が置いてあるディレクトリを記述するので、

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/var/hoge.so

じゃなくて、

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/foo/var/

だと思うのですけれど。


ymlabさんのコメント
なるほど、ドンピシャな状態ですね。 一度試してみます。ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ