是否可以控制 apache 使用哪些库?

2024-01-09

好吧,所以我有一个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.


有一种方法,但由于它是 jpeg 库的不同版本,因此您可能会破坏首先加载旧库的任何内容。

问题可能是您将 PHP 加载到同一个 Apache 安装中,并且它正在预加载 PHP 扩展模块,该模块依赖于旧版本的 jpeg 库。因为 PHP 优先于 Python 执行的操作,所以您会陷入错误的库中。

因此,请尝试禁用 mod_php,这样它就不会加载到 Apache 中。如果你的问题消失了,你就知道问题就是这样。如果它确实有效并且您不需要 PHP,则将其永久禁用。如果您确实需要 PHP,请改为在 fastcgi 下使用 PHP,这样就可以避免 PHP 被加载到 Apache 进程本身中。或者,您需要更新/重建 PHP 以使用相同的 jpeg 版本。

现在,黑客可以预加载不同版本的 jpeg 库,但这可能不起作用或导致以后出现问题。此 hack 是更改 Apache 的初始化脚本,使其设置:

LD_PRELOAD=/some/path/libjpeg.so.8.0.0
export LD_PRELOAD

这告诉操作系统在执行任何操作之前将该库预加载到进程地址空间中。

顺便说一句,如果是 PHP,则无法使用 ldd 找到它的原因是 PHP 扩展模块安装在与 Apache 模块不同的目录中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以控制 apache 使用哪些库? 的相关文章

  • Django:上传前调整图像大小

    我想调整图像大小 Pillow 在上传之前 我在下面编写了代码但不起作用 并得到错误 myapp list 处的属性错误 坚定的 请求方式 POST 请求网址 http 127 0 0 1 8000 myapp list http 127
  • 在 XSSF 工作簿上设置密码保护

    我想为使用 poi 3 14 创建的 xlsx 文件添加密码保护 该文档声称 这是可能的 http poi apache org cryption html http poi apache org encryption html 使用我尝试
  • Tomcat 7 停止接收 HTTP 请求

    我有一个Tomcat 7接收大量数据的服务器GET 要求 这种方法在一段时间内效果很好 然后突然停止工作 7 8 小时后 当它停止工作时 我收到此错误 五月 06 2015 12 47 58 AM org apache coyote htt
  • 按带宽限制成员资格

    我刚刚将 Codeigniter 应用程序部署到 Amazon EC2 使用 S3 作为媒体 使用 RDS 作为 MySQL 我需要根据使用的带宽量限制用户帐户访问 帐户将基于带宽 例如基本帐户 x 每月最多 20GB 等 但是我不知道最好
  • 找不到“jpeglib.h”文件

    我正在尝试用 C 读取 jpg 图像 我下载了libjpg http www ijg org 正如此链接所建议的那样https www opengl org wiki Image Libraries https www opengl org
  • 结束 perl 脚本而不等待系统调用返回

    我在 Linux Ubuntu 14 04 上运行一个简单的 apache Web 服务器 并使用 perl CGI 脚本处理一些请求 该脚本使用以下命令启动系统命令system函数 但我希望它立即返回 无论系统调用的结果如何 我一直在传递
  • AH00124:由于可能的原因,请求超出了 10 个内部重定向的限制

    升级我的 Ubuntu 服务器后 我尝试打开我的 WordPress 网站 我在 error log 中收到此错误 AH00124 由于可能的配置错误 请求超出了 10 个内部重定向的限制 如有必要 请使用 LimitInternalRec
  • .htaccess HTTPS 主域和通配符 HTTP 子域 + 所有非 WWW

    Stack Overflow 上有很多类似的解决方案 例如htaccess http 到 https 带 www 不重定向子域 https stackoverflow com questions 30242495 htaccess http
  • 在 CGI 模式下运行时如何覆盖 PHP 配置

    有一些教程告诉我如何在 CGI 模式下运行时覆盖 PHP 配置 但我仍然很困惑 因为很多人都认为服务器运行在 Linux 上 虽然我需要这样做also在 Windows 上 我的主机确实使用 Linux 但我的本地开发计算机使用 Windo
  • 使用OIL自动旋转手机和加速度计拍摄的照片

    我在网络应用程序中使用 Django PIL Amazon boto 用户发送图片 然后 Web 应用程序显示它 大多数情况下 人们会发送用手机拍摄的照片 有时 图像以错误的方向显示 有没有办法使用 PIL 或 Django 的 Image
  • 我找不到 poi-ooxml-schemas 的源代码存储库

    好吧 这有点奇怪 我已经从以下位置查看了 apache poi 版本 3 9 源代码http archive apache org dist poi release src http archive apache org dist poi
  • Apache httpd 上的选择性代理端口转发

    我正在尝试将 WordPress 集成到在 Nodejs 服务器上运行的网站中 并启用 Apache Httpd 端口转发 以将所有请求从 80 端口转发到 Nodejs 端口 9000 我已将 WordPress 安装到 Apache h
  • 使用 apache vhost 配置重定向到新域

    我有一个 apache 虚拟主机配置如下 我想要我所有的请求 somedomain com loadproduct product dell inspiron 15 被重定向到 someotherdomain com dell inspir
  • Apache2 重写查询字符串转义两次

    在虚拟主机配置文件中使用此规则会导致查询参数的双重转义 RewriteEngine On RewriteCond HTTPS off RewriteRule https HTTP HOST REQUEST URI 例如 http examp
  • onchange 使用 radioChoice 获取当前值

    我尝试使用 radioChoice onChange 从无线电表单中获取选定的值 但似乎无法真正找到解决方案 onEvent 函数被调用 但从这里我不太确定如何获取该值 Code RadioChoice
  • 我怎样才能发现并生存被“Slashdotted”?

    在异常高的流量高峰中生存的好方法是什么 我的想法是 在某些触发点上 我的网站应该暂时切换到 低带宽 模式 切换到基本 HTML 页面 最少的图形 禁用可能会给数据库带来不必要负载的小部件 等等 我的想法是 监控CPU使用率 监控带宽 监控请
  • Apache HtAccess AddHandler 以服务器名或 ip 为条件

    我在 Site5 上托管我的临时和生产服务器 在我看来 Site5 是一个相对较好的托管商 问题不在于它们的质量 而在于与 PHP 版本相关的问题 我们的开发服务器使用的是 PHP 5 3 这是一个很好的版本 5 4 太新了 我们还不想使用
  • Angular2通用部署到apache远程服务器

    我在将 Web 应用程序部署到 Apache 远程服务器时遇到问题 我已经通过以下步骤部署了一个使用 RESTful API 服务 用 PHP 编写 托管在 public html api 的标准 Angular2 Web 应用程序 在项目
  • Avro 消息中的架构

    我看到 Avro 消息嵌入了架构 然后是二进制格式的数据 如果发送多条消息并且为每条消息创建新的 avro 文件 模式嵌入不是一种开销吗 那么 这是否意味着生产者批量处理消息然后写入总是很重要 因此写入一个 avro 文件的多条消息只携带一
  • 如何用 C++ 编写 Apache 模块?

    我想用 C 编写一个 Apache 模块 我尝试了一个非常准系统的模块来启动 include httpd h include http core h include http protocol h include http request

随机推荐