我正在尝试从用 python 编写的简单 telnet-server 调用一些 php 脚本。这是一个代码。
# -*- coding: utf8 -*-
#!/usr/bin/env python
# скрипт перекидывает выполнение нужного скрипта на определённый порт
import socket
import os
from commands import *
import subprocess
#define server properties
host = ''
port = 5000
backlog = 5
size = 1024
# configure the server socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
# handle client requests
while 1:
client, address = s.accept()
data = client.recv(size)
print data
if data:
#находим путь для выполняемого скрипта
recvCommand = data[5:]
print recvCommand
userCommand = u'' + recvCommand
#userCommand = u''+'/home/mechanic/python/forloop.php'
res = subprocess.call(["php", userCommand])
client.send(data)
35 client.close()
在终端上,我连接到 localhost(telnet localhost 5000)并运行命令“calc /home/mechanic/python/forloop.php”。该路径存在于系统中,我可以手动运行他。但是脚本给我返回了这个错误:
Could not open input file: /home/mechanic/python/forloop.php
但是如果我在 python 脚本中手动编写这个路径
userCommand = u''+'/home/mechanic/python/forloop.php'
一切正常。我可以在哪里犯错?
PS这里是forloop.php的代码
<?
for ( $i = 0 ; $i <= 1000000; $i++ )
echo "Welcome $i times\n";
?>