2013-06-29 4 views
1

파일을 여는 python 스크립트가 있습니다. 터미널에서 실행되고 readme.html 파일이 열리고 터미널에 모든 내용이 인쇄됩니다. python.php 페이지에 액세스 할 때 python 파일을 실행하고 readme.html을 열고 싶습니다. 그것은 python 파일을 오류없이 실행하고 "나는 여기 있습니다"와 "완료되었습니다"를 인쇄하지만 readme.html 파일은 열지 않습니다. 권한 문제 일 수 있다고 생각합니다. 하지만 777 main.py, python.php 및 readme.html 있습니다. 그들은 모두 user : (없음)입니다. 이 문제를 어떻게 해결할 수 있습니까?Python 스크립트는 터미널에서 실행되지만 Apache에서는 실행되지 않습니다.

main.py 서비스는 윈도우에서 기본적으로 바탕 화면에 액세스 할 수

echo "Python test<br/>"; 
echo exec("C:/Python27/python.exe C:/wamp/www/main.py",$output); 
var_dump($output); 
echo "After"; 
+0

서버 로그에 오류가 있습니까? – mata

+0

os.startfile이 적절한 이유는 무엇이라고 생각하십니까? 아파치 사용자가 파일을보기 위해 자신의 웹 브라우저를 열길 원합니까? – geoffspear

+0

@mata PHP가 성공적으로 실행되고 python 스크립트가 실행되기 때문에 서버 로그에 오류가 없습니다. 파일을 열지 못합니다. – tiggles

답변

0

프로그램이 시작

#!C:/Python27/python.exe 
import os 
print "I am Here" 

os.startfile('C:/wamp/www/readme.html') 
print "I am Done" 

python.php. 아파치는 아마도 서비스 프레임 워크를 돌고 있기 때문에, 파이썬 스크립트는 GUI 프로그램을 열어서 데스크탑에 나타나게 할 수 없다.

해결 방법이 있습니다. 예를 들어 Windows 서비스에서 "대화 형"플래그를 설정할 수 있습니다. 그러나 그들 모두는 추악합니다.

그러나 나는 그것을 시도 제안하지 것이다 : 여기에이 길을 가고 싶은 경우 몇 참조입니다. Windows 구성을 만지면 매우 빨리 실망하게됩니다.

대신 데스크탑에서 Python 프로그램을 실행하고 IPC 방법을 사용하여 통신해야합니다. IPC의 경우 소켓, ZeroMQ, XML-RPC, JSON-RPC 또는 기타 여러 기능을 사용할 수 있습니다. 예를 들어 아파치는 Python 스크립트를 실행하는 PHP 스크립트를 실행합니다. PHP 스크립트는 XML-RPC를 사용하여 메시지를 전송하여 실행중인 Python 프로그램에 지정된 파일을 시작하도록 지시합니다.

프로젝트에 대한 행운을 빕니다.

+0

예. 신청서를 다시 생각해 봐야합니다. 감사! – tiggles

관련 문제