2012-08-22 24 views
0

我正在交叉編譯lighttpd以用於手臂系統。我使用的是NFS系統,其根目錄位於/ home/user/targetfs。我能夠設置服務器運行得很好。我的問題是我的模塊正試圖在錯誤的目錄中找到。Lighttpd Refernces Wrong Lib Location

./configure --host=${TARGET_SYS} --disable-short-tags --without-mysql --without-pear --disable-all --disable-short-tags --without-pcre --without-zlib --without-bzip2 

,我運行到該錯誤消息如下:

2012-04-29 23:14:07: (plugin.c.169) dlopen() failed for: /home/user/targetfs/lib/mod_indexfile.so /home/user/targetfs/lib/mod_indexfile.so: cannot open shared object file: No such file or directory           
2012-04-29 23:14:07: (server.c.676) loading plugins finally failed 

我知道便宜的解決方法是,它說這是在尋找他們把剛纔複製的MOD文件。有沒有一種方法可以更改配置選項,以指示lighttpd查看/ lib中的mods?

回答

2

我創造了只使用一個臨時的解決方法如下:

lighttpd -m /lib -f /var/www/lighttpd.conf 
+0

你做了我的一天,有同樣的問題。 :D沒有任何工作,甚至沒有LD_PRELOAD和LD_LIBRARY_PATH – lama12345

0

當您運行配置中,-prefix和/或--libdir的選項將硬線模塊路徑轉換爲二進制你即將建立。常見的錯誤是將它們設置爲主機系統上的路徑。相反,您應該將其設置爲目標系統上的路徑。在這種情況下,你想--libdir =/lib中 然後,當你執行make install(運行make後),你可以給它一個「DESTDIR」選項:

make install DESTDIR=/home/user/targetfs 

其結果是,一切都結束了在你的主機系統上的/ home/user/targetfs下,但是一旦部署在目標機上,二進制文件將會在/ lib中尋找模塊。 the lighttpd forum我在這裏找到了這個解決方案。)