2016-03-09 18 views
6

を許可されていない私はCentOSの6.7にEPELレポからニスをインストールし、それが次のエラーで起動に失敗します。ワニスはと起動に失敗:共有オブジェクトからセグメントをマップするために失敗しました:操作は

Compiled VCL program failed to load: 
    ./vcl.1P9zoqAU.so: failed to map segment from shared object: Operation not permitted 
VCL compilation failed 

I straceの場合varnishdバイナリは、私は、だから私はアクセス権が右、このディレクトリにあったことを確認(プラス私はルートでそれを実行している)

chdir("/var/lib/varnish/myserver.foo.bar") = 0 
open("./vcl.1P9zoqAU.c", O_RDWR|O_CREAT|O_EXCL, 0600) = 3 

年末までに以下の行を取得し、私は再インストール、再起動、SELinuxを無効に... 最初にそれはワニス2.1.15で起こったが、同じ4.0.3(公式のワニスレポを使用)で起こっている。

私のシステムで何が起こっているかご存知ですか?

+0

ファイルシステムが 'noexec'でマウントされていないことを確認できますか? – Petesh

+0

Omg、その理由は... noexecオプションが基本的なopen()操作に影響を与える理由を(トピックの回答で)説明できますか? 私が理解しているところでは、ワニスはC言語でvclの設定をビルドしようとしているので、メモリにロードすることができます。ここでnoexecがどこに干渉しているのか分かりません。 助けてくれてありがとう –

答えて

6

ワニスの起動の一環として、configuration of it's behaviourのロード可能なライブラリを生成します。これはコンパイルされ、varnishdによって実行時にロードされます。これは、エラーと訴えているものです。

Compiled VCL program failed to load: 
    ./vcl.1P9zoqAU.so: failed to map segment from shared object: Operation not permitted 
VCL compilation failed 

すなわち、それは失敗だdlopen呼び出します。この場合

dlopen(vcl_boot/vgc.so) = failed to map segment from shared object: Operation not permitted 

.sodlopenが失敗するnoexecオプションでマウントされたファイルシステムに常駐して配置されているディレクトリを:それが言うところ新しいバージョンがa slightly more obvious messageを持っています。

これを解決するには、このファイルシステムをexecオプションで再マウントする必要があります。

+0

/etc/fstabの設定を/ tmpに変更することで、Ubuntuでこれを行うことができます:/ tmp \t \t ext4 \t \t defaults、exec、nosuid、nodev –

関連する問題