- ベストアンサー
環境変数の設定
PerlでCGIを書いています。 環境変数LD_LIBRALY_PATHを設定するのに、 Perlのスクリプト内で、$ENV{LD_LIBRARY_PATH}に値を代入しているのですが、もっとスマートな環境変数の設定法はありませんでしょうか。 残念ながら、httpd.confを書き換える権限は持っていません。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- httpd で SetEnv が使えない
httpd-2.2.17を使っております。 --enable-suexec でconfigure しておりますが、cgi の中でいくつかのモジュールを使う関係で LD_LIBRARY_PATH を設定する必要があります。 そのため、httpd.conf に SetEnv LD_LIBRARY_PATH xxxxxxxxxxxx を記述しております。 ところが、cgi でモジュールを使おうとすると、読み込みに失敗してしまいます。調べてみると SetEnv で設定したはずの LD_LIBRARY_PATH が設定されていません。 さらに、いろいろ調べて suexec を使っているために SetEnv が無効になっていると分かりました。 しかし、suexec はセキュリティ的には便利なのでできれば、使いたいのです。 suexec を有効にしつつ、cgi に環境変数を渡す方法はないでしょうか?
- ベストアンサー
- その他(ITシステム運用・管理)
- OSの環境変数をPHPで取得する方法
PHPでOSの環境変数に設定されている値を取得したいです。 PHPはApacheの環境変数しか取得できないみたいです。 APACHEのDocumentから以下の方法を見つけました。 ----------------------------------------------------------- httpd プロセスを起動したシェルの環境から CGI スクリプトと SSI ページに渡す環境変数を一つ以上指定します。 例 PassEnv LD_LIBRARY_PATH ----------------------------------------------------------- httpdプロセスを起動したシェルとあるのですが、Apapcheユーザの ホームディレクトリはありません。 この場合どこに設定すればよいでしょうか? /etc/bachrcや/etc/profile に設定してもダメでした。 ApacheDocumentの下記の方法だとgetenv()で取得できます。 ------------------------------------------------------------ 環境変数を設定し、それを CGI スクリプトと SSI ページに渡すようにします。 例 SetEnv SPECIAL_PATH /foo/bin ------------------------------------------------------------ なので最初の方法でもいけるのではないかと思います。 環境 PHP:521 Apache:2.0.52 OS:RedHatEL4.4
- ベストアンサー
- PHP
- Windowsで環境変数を設定できますか?setenv関数
こんにちわ。 今、Windows環境でC言語でCGIを作成しております。 Perl言語では環境変数の設定が$ENVでできたと思うのですが、 Cではどのようにすればよろしいのでしょうか? 関数の使い方など教えていただきたいのですが。 また、サイトがありましたら教えていただけますでしょうか。 宜しくお願いします。
- ベストアンサー
- C・C++・C#
- Perlで環境変数を設定するには
あるPathを環境変数として設定したい場合、 例)TNS_ADMIN=D:\Test\exe たとえばMS-DOSなら、 set TNS_ADMIN=D:\Test\exe と設定しますよね。 これと同じことをPerlでどうやればいいのかというのが質問です。 ENVモジュールを使って、 $ENV{TNS_ADMIN}=D:\Test\exe としてみたものの、Perlを実行した後に確認してみるとセットされていないようでした。 (確認方法はPerlを実行したDOSプロンプトにて"set"を実行) よろしくお願いします。
- ベストアンサー
- Perl
- javaの中で環境変数を設定する。
javaの記述内で環境変数を設定する事は出来るのでしょうか? osはredhat linuxです。 具体的にはJAVAからCのモジュールをSystem.loadLibraryで 読み込んでいますが、環境変数LD_LIBRARY_PATHから探しに行くと思います。 このCのモジュールのパスを外部ファイルに持たせ、変更できるようにしたいのです。 何か良い方法がありますでしょうか? 以上、宜しくお願いします。
- ベストアンサー
- Java
- fedora core3でCGIがソースコードで表示されてしまいます。
document root("var/www/html")でCGIを使うために、httpd.confの設定で#Addhandler cgi-script →Addhandler cgi-script , と書き直し、<Directory"var/www/html">のoption項目にExecCGIと追加しました。 アクセスするときはlocalhost/***.cgiとしています。 cgi fileのperlのパスが#!/usr/bin/perlとなっているのでその場所にちゃんとperlがあるかも確認しました。 .cgiファイルはWindowsXPからASCIIで転送したものです。.httpd.confの設定以外はデフォルトの状態です。 何日間か試行錯誤したのですが、うまくいきません。どうかご助言お願いします。
- ベストアンサー
- Linux系OS
- Apache2でSetEnvが動作しない。
お世話になります。 Aapche2でCGIの環境変数をセットしたく、 SetEnvを設定したのですが、$ENV{''}で確認しても表示されません。 httpd.conf内の場所を変えて記述してみたり、 .htaccessに記述してみたりしても、いっこうに反映されません。 これは、なにか原因となりうるものはありますでしょうか。 よろしくお願いいたします。 ・記述行 SetEnv PERL5LIB "/usr/local/lib/perl" Apache 2.0.58 FedoraCore 4 perl 5.8.6
- ベストアンサー
- CGI
- CreateProcessでの環境変数の設定の仕方
PATHを設定してCommand.comを実行したいのですが、 CreateProcessでの環境変数の設定の仕方がわかりません char* env = "PATH=c:\\data"; CreateProcess(NULL,"command.com /k path ", NULL, NULL, FALSE, 0, env, NULL, &si, &pi); このようにしてみたところDos窓が起動しますが、 表示されるPATHはデフォルトのままです。 環境は VC++6.0 MFC です。 どうか宜しくお願いします。
- ベストアンサー
- C・C++・C#
- OSXでcgi
OSXでperlで作ったcgiを動かしたいと思い色々といじってるのですが全く動きません。 apacheのhttpd.confの設定で AccessFileName .htaccess AddHandler cgi-script .cgi AddHandler cgi-script .pl についてはコメントをはずして使えるようにして Perlのパスも#!/usr/bin/perlとしてsiteフォルダとcgiを置いてるディレクトリに.htaccessを下のように記述して作り AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ パーミッション設定をちゃんとしてあげてるのですがブラウザからアクセスするとForBiddenとでてしっかりと設定してるはずのパーミッション設定が間違ってますと言われてしまいます。 OSXでcgiを動かすには他にももっと色々と設定しなければダメなんでしょうか?
- ベストアンサー
- Mac
お礼
はい、そう言う質問です。 どうもありがとうございました。