C++ で .CGI を作成しました。このバイナリはboost
、特定のフォルダ内の一部の共有ライブラリおよびその他のリソースに依存しています/usr/local/boost/
。CGI が実行されず、ログにエラーが表示される
error while loading shared libraries: libdxxx: cannot
open shared object file: No such file or dire
現在、次のように設定する必要があるという多くのログを読みましたhttpd.conf
が、それでも機能しません。
SetEnv LD_LIBRARY_PATH /usr/local/boost:
私の構成では、この行を構成ファイルの最後に「そのまま」設定し、どのVirtualHOst or Directory
セクションにも含めません。cgi-bin のディレクトリに挿入しようとしましたが、それでも同じです
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
SetEnv LD_LIBRARY_PATH /usr/local/boost
</Directory>
また、ldconfig 用の .conf ファイルを追加しようとしましたが (以下の説明を参照)、まだ機能しません!
#added a file called myconfig.conf conrtaining a line
/usr/local/boost
/etc/ld.conf.d/
ldconfig (as root)
httpd
また、それを実行する ROOT ユーザーの環境変数を継承するread もあります。root として次のように呼び出して Apache を起動し、LD_LIBRARY_PATH は正しく設定されていますが、それでも何か問題があります。
/etc/init.d/httpd start
Red Hat 6.2 を使用しています。