好吧,所以我有一个PIL 的早期问题 https://stackoverflow.com/questions/2110588/getting-invalid-image-error-in-django-but-pil-is-installed-and-passes-all-tests这仍然没有解决。其他人遇到了这个问题并取得了成功删除旧的 JPEG 库 http://salamand.wordpress.com/2009/08/25/problem-uploading-image-file-to-satchmo/。然而,我实际上无法在我的机器上执行此操作,因为它是 RHEL,而且很多东西都依赖于 libjpeg 和 libjpeg-devel(当我尝试 yum remove libjpeg 只是为了查看时,总共有 252 个软件包已删除!)
我在 /usr/local/lib 中安装了 jpeg-8。 python 正确使用它,但是not由阿帕奇。这是 lsof 的列表:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
httpd xxxxx root mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
python xxxxx jordan DEL REG 253,3 xxxxx63 /usr/local/lib/libjpeg.so.8.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
httpd xxxxx apache mem REG 253,3 xxxxx0 xxxxx34 /usr/lib64/libjpeg.so.62.0.0
所以,这就是我想知道的。鉴于我无法卸载 libjpeg-6b,有什么办法可以forceapache 使用 libjpeg-8 代替?
好的,最近的运行lsof
显示 apache 正在加载 libjpeg.so.8.0.0also但仍然遇到错误,这表明它仍在使用 62 版本。有没有办法让 8 版本优先?
更新#1
Running ldd
针对 lib64/modules 中的所有模块,都没有引用 libjpeg。跑步ldd
在PIL的_imaging.so文件上显示它正在使用新版本的libjpeg。我很确定我的系统上只有一个版本的 PIL —— 我已经进行了相当彻底的搜索。
有谁知道哪些与 httpd 或 python 相关的程序或模块可能会加载 libjpeg?我知道某物正在通过 apache 加载它,因为它出现在lsof
.