파이썬으로 작성된 간단한 telnet-server에서 일부 PHP 스크립트를 호출하려고합니다. 여기에 코드가 있습니다. 나는 (텔넷 로컬 호스트 5000) 로컬 호스트 및 명령 '캘크 /home/mechanic/python/forloop.php'를 실행에 연결 터미널에 텔넷을 통해 파이썬에서 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()
. 경로가 시스템에 존재하므로 수동으로 실행할 수 있습니다. 그러나 스크립트는 나에게이 오류 반환 :
Could not open input file: /home/mechanic/python/forloop.php
을하지만 파이썬 스크립트에서 수동으로 경로를 작성하는 경우
userCommand = u''+'/home/mechanic/python/forloop.php'
모든 잘 작동합니다. 실수를 어디에서 취할 수 있습니까?
P. 여기 당신이 recvCommand.strip()
대신 원래의를 사용하여 시도 적이 forloop.php
<?
for ( $i = 0 ; $i <= 1000000; $i++ )
echo "Welcome $i times\n";
?>
의견을 말하면 영어로 사용해야합니다.) – hakre