mod_python을 사용하여 Apache의 배후에 cherrypy를 배포 할 때 문제가 있습니다.mod_python을 사용하여 Cherrypy behing apache
#!/usr/bin/env python
2 # -*- coding: utf8 -*-
3
4 import os.path
5 import cherrypy
6 from mako.template import Template
7 from mako.lookup import TemplateLookup
8 from mako import exceptions
9 from mako.exceptions import RichTraceback
10 from ReadFromDB import *
11 from DeleteFromDB import *
12 from InsertToDB import *
13 from BasePage import BasePage
14 from ModifyEntryDB import *
15 #from cherrypy.process.plugins import Daemonizer
16 #from cherrypy import Application
17
18 current_dir = os.path.dirname(os.path.abspath(__file__))
19 mainlookup = TemplateLookup(directories=['./templates'], output_encoding='utf-8', input_encoding='utf-8', en coding_errors='replace', format_exceptions = True)
20
21 class Main(BasePage):
22 readfromdb = ReadFromDB()
23 deletefromdb = DeleteFromDB()
24 inserttodb = InsertToDB()
25 modifyentrydb = ModifyEntryDB()
26
27 def index(self):
28 try:
29 mIndextemplate = mainlookup.get_template("main_index.txt")
30 return mIndextemplate.render()
31 except:
32
33 traceback = RichTraceback()
34 for (filename, lineno, function, line) in traceback.traceback:
35 print "File %s, line %s, in %s" % (filename, lineno, function)
36 print line, "\n"
37 print "%s: %s" % (str(traceback.error.__class__.__name__), traceback.error)
38
39 index.exposed = True
40
41 #config = {
42 # '/bootstrap/css':{
43 # 'tools.staticdir.on': True,
44 # 'tools.staticdir.dir': os.path.abspath(os.path.join(os.path.dirname(__file__), 'static'))
45 # }
46 #}
47 def start():
48 cherrypy.tree.mount(Main(),config="/development/webadmin-interface/webadmin.conf")
49 cherrypy.engine.start()
50
51
52
53 #cherrypy.quickstart(Main(), "/", "webadmin.conf")
하고 다음 사이트의 첫 번째 새로 고침 (403)가 금지하고있는 전체 웹 사이트, 그리고 두 번째 I을 시작
4 <VirtualHost *>
5 ServerAdmin [email protected]
6 ServerName pyth.madphoto.eu
7 DocumentRoot /development/webadmin-interface/
8 # Indexes + Directory Root.
9 <Location />
10 PythonPath "sys.path+['/development/webadmin-interface']"
11 SetHandler python-program
12 PythonHandler cherrypy._cpmodpy::handler
13 PythonOption cherrypy.setup main::start
14 PythonDebug On
15 </Location>
16
17 # Logfiles
18 ErrorLog /www/madphoto.eu/pyth/logs/error.log
19 CustomLog /www/madphoto.eu/pyth/logs/ccess.log combined
20 </VirtualHost>
이 cherrypy 코드 :
나는이 아파치 구성이 아파치 오류 로그에 도착하십시오
[21/May/2013:11:48:38] MOD_PYTHON Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/cherrypy/_cpmodpy.py", line 139, in handler
setup(req)
File "/usr/lib/pymodules/python2.6/cherrypy/_cpmodpy.py", line 84, in setup
func()
File "/development/webadmin-interface/main.py", line 49, in start
cherrypy.engine.start()
File "/usr/lib/pymodules/python2.6/cherrypy/process/wspbus.py", line 184, in start
self.publish('start')
File "/usr/lib/pymodules/python2.6/cherrypy/process/wspbus.py", line 147, in publish
output.append(listener(*args, **kwargs))
File "/usr/lib/pymodules/python2.6/cherrypy/_cpserver.py", line 90, in start
ServerAdapter.start(self)
File "/usr/lib/pymodules/python2.6/cherrypy/process/servers.py", line 53, in start
wait_for_free_port(*self.bind_addr)
File "/usr/lib/pymodules/python2.6/cherrypy/process/servers.py", line 251, in wait_for_free_port
raise IOError("Port %r not free on %r" % (port, host))
IOError: Port 8080 not free on '127.0.0.1'
그러나 작동하지 않으며 많은 m이 뒤 따른다. anuals (나는 다른 설정을 시도하지만 여전히 작동하지 않습니다)
나는 cherrypy 3.1.2-1, apache2 서버를 가지고 있습니다.
cherrypy의 독립 실행 형 시작 내장 서버에서 완벽하게 작동합니다.
도와 주실 수 있습니까? 감사!
감사합니다 cyraxjoe, 멀티플 시작과 함께 내 문제가 해결되었지만 지금은 아파치 로그 (가상 호스트와 글로벌 용 로컬)에 오류가없는 서버의 흰색 페이지 (절대적으로 빈 데이터) 만 표시됩니다. 이유는 알지 못합니다. – Levi
--- 업데이트 - HEAD 요청을 보내려 할 때 텔넷을 사용하면 400 오류가 발생하고/GET으로 바이너리 쓰레기를받습니다 W ߟ7 외부 호스트가 연결을 닫습니다 – Levi
문제가 해결되었습니다. 이 문제는 시스템의 경로와 관련이 있습니다. cherrypy와 mako는 템플릿 경로를 찾지 못했습니다. 절대 경로를 사용했는데 이제는 괜찮습니다. – Levi