参考这个问题我在我的服务器上运行一个 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创建套接字的这条信息:
那么,还有另一种方法可以从 CGI 向 tika 发送文件吗?