参考this question我正在服务器上运行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发送文件吗?