我必须维护一个包含大量 Perl 代码的史前网站。移动到新服务器后,事情变得模糊:
当来自同一个客户端的多个请求在一个页面上运行(使用 GD 生成图像)时,这些脚本会覆盖彼此的变量,从而导致奇怪的结果。
作为一种快速的解决方法,我在 Apache 中设置了 MaxRequestsPerChild=1,它解决了这个问题,但现在事情变得缓慢起来......
有没有办法分开请求?任何可以帮助我的 mod_perl 或 Apache 参数?
阿帕奇:
Server version: Apache/2.2.15 (Unix)
Server built: Apr 3 2014 23:56:16
Server's Module Magic Number: 20051115:25
Server loaded: APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture: 64-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
perl -v
This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi
对此的任何解决方案将不胜感激:)
编辑:我找不到使用 mod_perl 修复问题的正确方法,但以下解决方法有效:
- 禁用 mod_perl
- 启用 mod_cgi
- AddHandler cgi脚本.pl
- 禁用 suEXEC
最后一个是必要的,因为它在启用 suEXEC 时给了我“脚本头的过早结束”。