总是报错:Cannot open TEMP post file /tmp/_wl_proxy

1.

chmod 777 -R -f temp
chmod -Rv 777 /tmp/

这个方法不好用;

2.

FileCaching OFF

这个方法都是不推荐用:

http://www.myexception.cn/operating-system/781256.html

 

apache weblogicCannot open TEMP post file '/tmp错误处理

是tmp目录下权限不够,执行chmod 777 -R -f temp后,就ok了,

 

或通过设置下面的参数在apache和weblogic整合的mod中,加一个参数FileCache 设置成off就ok了,不推荐此方式

 

Cannot open TEMP post file '/tmp/_wl_proxy/_post_245824_1_1235046331_624' for POST of 7991 bytes

 

 

<VirtualHost *>
    ServerName www.test.com
    DocumentRoot /sun/docdir/www
    AddDefaultCharset utf-8
    CustomLog "|/usr/local/cronolog/sbin/cronolog /home/logs/access%Y%m%d.log" combined
        MaxPostSize -1
    <Directory "/sun/docdir/www/">
     Options FollowSymLinks +Includes
     AllowOverride None
     Order allow,deny
     Allow from all
    </Directory>

    RewriteEngine on
    RewriteLogLevel 1
    RewriteLog "/home/logs/rewrite_www.log"
    <IfModule mod_weblogic.c>
        WebLogicHost 192.168.0.252
        WebLogicPort 8080
        WLTempDir /home/logs
        PathPrepend /www
        FileCaching OFF
        WebLogicCluster 192.168.0.252:8080
        MatchExpression *.do
        MatchExpression *.jsp
        MatchExpression *.action
        MatchExpression */slt*
    </IfModule>
</VirtualHost>

3.

指定WLTempDir路径

试试这个方法吧:

http://blog.csdn.net/hongyunqiang/article/details/6388713

 

现象描述:
apache集成weblogic,通过webserver路径访问应用。发起post请求时,报“服务器无响应 500”错误。

问题调试:
1. 修改httpd.conf文件,设置日志为debug模式:Debug on (设置为打开)
2. 指定日志输出路径:WLLogFile /webcs/ebweb/logs/eibs2/logFile
修改后 location配置如下:
<Location "/eweb">
  SetHandler weblogic-handler
  WebLogicHost 172.111.58.11
  WebLogicPort 7012
  KeepAliveEnabled On
  ConnectTimeoutSecs 30
  ConnectRetrySecs 2
  SecureProxy OFF
  Debug on
  WLLogFile /webcs/ebweb/logs/eibs2/logFile
</Location>

问题结果:
日志中,发现POST请求,报错误如下:
        ================New Request: [POST /eweb/login.do HTTP/1.1] =================   
        INFO: SSL is not configured                                                      
        Using Uri /eweb/login.do                                                         
        After trimming path: '/eweb/login.do'                                            
        The final request string is '/eweb/login.do'                                     
        SEARCHING id=[172.111.58.11:7012] from current ID=[172.111.58.11:7012]           
        The two ids matched                                                              
        @@@FOUND...id=[172.111.58.11:7012], server_name=[172.111.58.41], server_port=[708
        Going to get the post data of size=3002 clength=0                                
        getWLFilePath: Complete File name = [/tmp/_wl_proxy/_post_10243_0]               
        Cannot open TEMP post file '/tmp/_wl_proxy/_post_10243_0' for POST of 3002 bytes 
        IO error reading client POST data; sys err#: [13] sys err msg [Permission denied]

post的内容都是放在内存里缓存着,运行一段时间后,内存放满了,则使用临时问题保存post内容。此时不存在该临时文件,故报错;

解决办法:
为单独的应用,指定单独post内容存放目录。由于集成配置中未指定WLTempDir,默认使用/tmp/_wl_proxy。
指定WLTempDir路径为“/webcs/ebweb/logs/eibs2/wl”,配置如下:
        <Location "/eweb">
          SetHandler weblogic-handler
          WebLogicHost 172.111.58.11
          WebLogicPort 7012
          KeepAliveEnabled On
          ConnectTimeoutSecs 30
          ConnectRetrySecs 2
          SecureProxy OFF
          #Debug on
          #WLLogFile /webcs/ebweb/logs/eibs2/logFile
          WLTempDir /webcs/ebweb/logs/eibs2/wl
        </Location>  
重新启动httpd.conf。测试问题解决。 注:Debug、WLLongFile属性可以注释掉。

 

 

http://blog.csdn.net/atom992/article/details/5638988

 

现象描述: 
apache集成weblogic运行一段时间后,会出现
Cannot open TEMP post file '/tmp/_wl_proxy/_post_245824_1_1235046331_624' for POST of 7991 bytes 
报错,重启apache可以恢复正常,但是运行一段时间后又会出该问题。

 

问题分析:
网上查的说法是weblogic应该对/tmp/_wl_proxy/目录有写的权限,但是实际上weblogic所在机器上该目录不存在,创建后,发现该目录也没有写入的操作。
后来分析,post动作应该是apache提交给weblogic,故

 

解决办法: 
在apache所在机器/tmp以apache用户创建_wl_proxy目录,问题解决。 

 

分析以上的问题: 
1、网上的/tmp/_wl_proxy/目录有写的权限的说法是否错误?
网上说的weblogic应该对/tmp/_wl_proxy/目录有写的权限说法应该有偏差,只是这种情况下,apache与weblogic应该是在同一台机器上;
2、运行一段时间才报错,重启恢复正常原因?
运行一段时间后才报该问题,可能是因为启动apache后,post的内容都是放在内存里缓存着,运行一段时间后,内存放满了,则使用临时问题保存post内容。此时不存在该临时文件,故报错;
3、为什么是/tmp/_wl_proxy目录?
由于集成配置中未指定WLTempDir,故默认使用/tmp/_wl_proxy。

PS:环境说明: 
apache所在操作系统:
$ uname -a
Linux testapache 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux
apache版本:
$ ./apachectl -v
Server version: Apache/2.0.59
Server built:   Aug 21 2009 13:36:05
apache加载模块:
$ ./apachectl -l
Compiled in modules:
  core.c
  worker.c
  http_core.c
  mod_so.c

weblogic所在操作系统
$ uname -a
Linux testapp 2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:27:17 EDT 2006 i686 i686 i386 GNU/Linux

weblogic版本:
8.1.5

apache加载weblogic配置(htpd.conf):
LoadModule weblogic_module modules/mod_wl_20.so
<Location /app>
                SetHandler weblogic-handler
                WebLogicCluster 198.168.11.12:7001

                WLSocketTimeoutSecs 30
                ConnectTimeoutSecs 60
                KeepAliveEnabled ON
                KeepAliveSecs 30
</Location>

后记: 
以apache用户在/tmp下创建_wl_proxy目录后发现,该目录下确实有apache用户写临时文件的操作,而且运行一段时间后,    该目录下临时文件会被清空。

 

http://hi.baidu.com/dragonqs/item/df6f0de1e44b9cb62f140b83

 

WLTempDir
请参阅 debug参数
指定将在其中创建 wlproxy.log的目录。如果无法在该位置创建该文件,那么,插件将在 Windows 中的 C:/temp下和所有 Unix 平台上的 /tmp下创建该日志文件。
还为 post 数据文件指定 _wl_proxy目录的位置。 
当同时指定了 WLTempDir和 WLLogFile时,WLLogFile将替换为 wlproxy.log的位置。WLTempDir仍将确定 _wl_proxy目录的位置。
posted @ 2012-12-10 16:13  陳聽溪  阅读(1555)  评论(0)    收藏  举报