1

参考这个问题我在我的服务器上运行一个 tika 服务:

-bash-3.2$ netstat -tulpn | egrep 'Proto|LISTEN'
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 72.167.2.1:50336            0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:1248                0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:4118                0.0.0.0:*                   LISTEN      -
tcp        0      0 72.167.2.1:50328            0.0.0.0:*                   LISTEN      -
tcp        0      0 0.0.0.0:12345               0.0.0.0:*                   LISTEN      4767/java

我可以通过命令行使用python正常连接到它:

-bash-3.2$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
>>> port=12345
>>> host='127.0.0.1'
>>> s.connect((host,port))

但是当我通过以下 cgi 脚本运行它时,它无法连接:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
port=12345
host='127.0.0.1'
try:
    s.connect((host,port))
except:
    print sys.exc_info()

它给了我以下信息:

(, error(111, 'Connection refused'), ) 

我检查了 cgi 文件的权限,它们是 755 (rwxr-xr-x)。

我是否需要在服务中指定某些内容以使 cgi 脚本可以访问它来连接它?或者我可以从 cgi 脚本本身或任何其他建议中做些什么?


编辑:我发现托管公司godaddy不支持从cgi创建套接字的这条信息:

http://support.godaddy.com/help/article/20/does-your-cgi-service-support-socket-connections-or-socket-modules

那么,还有另一种方法可以从 CGI 向 tika 发送文件吗?

4

0 回答 0