2

Windows perl/postgresql Web アプリを CentOS に移植しています。

私はpostgresql.confこれらの行を持っています:

custom_variable_classes = 'plperl'              # list of custom variable class names

plperl.use_strict = on

plperl.on_plperlu_init = 'require "/path/to/my/app/dev/area/MyModule.pm";'

Windows 2003 では、これによりuse MyModule;plperlu 関数を PostgreSQL に入れることができました。.pm ファイルのあるパスに移動し、ACL を変更してユーザーにpostgres「読み取り」および「読み取りと実行」権限を与えていれば、それらは機能します。セキュリティタブ。

CentOS 6.4 では、少し混乱しています。MyModule を呼び出す plperlu 関数を定義しようとすると、ERROR: Can't locate /path/to/my/app/dev/area/MyModule.pm in @INC.

MyModule.pm は me:me が所有しており、664 個のパーマがあったため、混乱しています。665 を試しましたが、まだうまくいきません: sudo -u postgres ls -l /path/to/my/app/dev/area/MyModule.pmreports Permission denied. 私がUNIXパーミッションを理解していると思った限り、665は「その他」が読み取りと実行のパーミッションを持っていることを意味します。

4

1 に答える 1

0

私はこれを書いたばかりで、最近答えを学んだことに気づきました.

Windows のセットアップとは異なり、Linux はパスに沿ったすべてのディレクトリからのアクセス許可を必要とします。それで、パス上で ls -l を実行し始めました。それは700を持っていたトップ近くまでずっと644でした.chmod 705を実行しました(chmod 701も機能し、後でそれに切り替えました)、そしてビンゴ、sudo -u postgres lsそれを見ることができ、私のplperlu機能もそうでした意味。

于 2013-09-27T18:49:11.620 に答える