php + apache でパスが通らなかった件。 とりあえずputenvで暫定対応。
php + apacheで作っているシステムをAWSにリフトアップしてるんですけど、oracleにconnectするところでORA-01804。
挫折しながら対応中なので、こちらの記事は別機会に。
Linux で環境変数食わすためには通常、.bash_profileに書いたりしますが、apacheユーザはnobody。
ということで、/etc/sysconfig/httpd に書いてみたりするのが普通ですが、今回はなぜか反映されない。
phpinfo()で見てみても、environment にない。
「ORACLE_HOME」も「LD_LIBRARY_PATH」も「NLS_LANG」もない。
ということでとりあえず暫定対応として、phpにハードコーディング!
sample.php
<? putenv("ORACLE_HOME=/opt/app/oracle/〇〇〇">; putenv("LD_LIBRARY_PATH=/opt/app/oracle/〇〇〇/lib">; putenv("NLS_LANG=Japanese_Japan.UTF8">; phpinfo(); ?>
根本解決になってないけど、とりあえずパス通ったから、OK。