DjangoDocumentKoreanTranslation: modpython-ko.txt

File modpython-ko.txt, 27.1 KB (added by iam312 <iam312@…>, 7 years ago)
Line 
1=================================
2>>!
3How to use Django with mod_python
4<<!
5>>!!
6mod_python에서 장고 운영하기
7<<!!
8=================================
9
10>>!
11Apache_ with `mod_python`_ currently is the preferred setup for using Django
12on a production server.
13<<!
14>>!!
15Apache_ with `mod_python`_은 제품 서버(production server)에서 장고를 사용하기 위해
16현재 가장 선호되는 설정입니다..
17<<!!
18
19>>!
20mod_python is similar to `mod_perl`_ : It embeds Python within Apache and loads
21Python code into memory when the server starts. Code stays in memory throughout
22the life of an Apache process, which leads to significant performance gains over
23other server arrangements.
24<<!
25>>!!
26mod_python은 `mod_perl`_과 유사합니다 : 아파치 내에서 파이썬을 임베딩하고,
27아파치가 시작할때 파이썬 코드를 코드를 메모리에 로드합니다.
28코드는 아파치 프로세스가 살아있는 동안 메모리에 남아 있으며,
29이는 다른 서버구성보다 주목할만한 성능 향상을 이끌어 냅니다.
30<<!!
31
32>>!
33Django requires Apache 2.x and mod_python 3.x, and you should use Apache's
34`prefork MPM`_, as opposed to the `worker MPM`_.
35<<!
36>>!!
37장고는 아파치 2.x 와 mod_python 3.x 를 필요로 하며,
38반드시 `worker MPM`_에 대비되는 `prefork MPM`_ 아파치를 사용해야 합니다.
39<<!!
40
41>>!
42You may also be interested in `How to use Django with FastCGI, SCGI or AJP`_
43(which also covers SCGI and AJP).
44<<!
45>>!!
46`FastCGI, SCGI 또는 AJP 에서 장고 운영하기`_도 살펴보세요.
47(SCGI와 AJP 또한 다룹니다).
48<<!!
49
50.. _Apache: http://httpd.apache.org/
51.. _mod_python: http://www.modpython.org/
52.. _mod_perl: http://perl.apache.org/
53.. _prefork MPM: http://httpd.apache.org/docs/2.2/mod/prefork.html
54.. _worker MPM: http://httpd.apache.org/docs/2.2/mod/worker.html
55>>!
56.. _How to use Django with FastCGI, SCGI or AJP: ../fastcgi/
57<<!
58>>!!
59.. _FastCGI, SCGI 또는 AJP에서 장고 운영하기: ../fastcgi/
60<<!!
61
62>>!
63Basic configuration
64<<!
65>>!!
66기본 설정
67<<!!
68===================
69
70>>!
71To configure Django with mod_python, first make sure you have Apache installed,
72with the mod_python module activated.
73<<!
74>>!!
75mod_python에서 장고를 설정하기 위해서, 먼저 여러분은 mod_python 모듈이 활성화된
76아파치가 설치되어 있어야 합니다,
77<<!!
78
79>>!
80Then edit your ``httpd.conf`` file and add the following::
81<<!
82>>!!
83그리고 나서 여러분의 ``httpd.conf`` 파일을 열어서 다음을 추가하십시오::
84<<!!
85
86    <Location "/mysite/">
87        SetHandler python-program
88        PythonHandler django.core.handlers.modpython
89        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
90        PythonDebug On
91    </Location>
92
93>>!
94...and replace ``mysite.settings`` with the Python import path to your Django
95project's settings file.
96<<!
97>>!!
98...그리고 ``mysite.settings``를 여러분의 장고 프로젝트의 설정 파일에 대한 파이썬 경로로 대체하십시오.
99<<!!
100
101>>!
102This tells Apache: "Use mod_python for any URL at or under '/mysite/', using the
103Django mod_python handler." It passes the value of ``DJANGO_SETTINGS_MODULE``
104so mod_python knows which settings to use.
105<<!
106>>!!
107이는 아파치에게 지시를 합니다: "장고 mod_python 핸들러를 사용하여,
108'/mysite/' 이하의 어떠한 URL에 대해서든 mod_python을 사용하라."
109``DJANGO_SETTINGS_MODULE``의 값을 전달하여
110mod_python은 어떤 설정을 사용해야 하는지 알게 됩니다.
111(mod_python은 어떤 설정을 사용해야 하는지 ``DJANGO_SETTINGS_MODULE``의 값으로 알수 있습니다.)
112<<!!
113
114>>!
115Note that we're using the ``<Location>`` directive, not the ``<Directory>``
116directive. The latter is used for pointing at places on your filesystem,
117whereas ``<Location>`` points at places in the URL structure of a Web site.
118``<Directory>`` would be meaningless here.
119<<!
120>>!!
121``<Directory>`` 지시자가 아니라, ``<Location>`` 지시자가 사용되고 있는 것을 주의하십시오.
122전자는 여러분의 파일시스템상의 위치를 가리키는데 반해,
123``<Location>``은 웹사이트의 URL 구조상의 위치를 가리킵니다.
124여기서는 ``<Directory>`` 가 의미 없습니다.
125<<!!
126
127>>!
128Also, if your Django project is not on the default ``PYTHONPATH`` for your
129computer, you'll have to tell mod_python where your project can be found:
130<<!
131>>!!
132또한, 만약  여러분의 장고 프로젝트가 컴퓨터의 기본  ``PYTHONPATH``상에 없다면,
133여러분의 프로젝트를 어디서 찾아야 하는지를 mod_python에게 알려줘야 합니다.
134<<!!
135
136.. parsed-literal::
137
138    <Location "/mysite/">
139        SetHandler python-program
140        PythonHandler django.core.handlers.modpython
141        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
142        PythonDebug On
143        **PythonPath "['/path/to/project'] + sys.path"**
144    </Location>
145
146>>!
147The value you use for ``PythonPath`` should include the parent directories of
148all the modules you are going to import in your application. It should also
149include the parent directory of the ``DJANGO_SETTINGS_MODULE`` location. This
150is exactly the same situation as setting the Python path for interactive
151usage. Whenever you try to import something, Python will run through all the
152directories in ``sys.path`` in turn, from first to last, and try to import
153from each directory until one succeeds.
154<<!
155>>!!
156여러분이 사용하는 ``PythonPath`` 값은 여러분의 어플리케이션에서 import 하려고 하는
157모든 모듈들의 부모 디렉토리를 꼭 포함해야 합니다. 또한 
158``DJANGO_SETTINGS_MODULE`` location 의 부모 디렉토리를 포함해야 합니다.
159이는 바로 파이썬을 대화형으로 사용할때
160path를 설정하는 것과 똑같은 상황입니다.
161여러분이 무언가를 import 하려 할때마다, 파이썬은 import 가 성공할 때까지
162``sys.path`` 안의 모든 디렉토리를 처음부터 끝까지 차례로 시도해 봅니다.
163<<!!
164 
165>>!
166An example might make this clearer. Suppose
167you have some applications under ``/usr/local/django-apps/`` (for example,
168``/usr/local/django-apps/weblog/`` and so forth), your settings file is at
169``/var/www/mysite/settings.py`` and you have specified
170``DJANGO_SETTINGS_MODULE`` as in the above example. In this case, you would
171need to write your ``PythonPath`` directive as::
172<<!
173>>!!
174예제를 보면 확실해 집니다. 가령
175``/usr/local/django-apps/`` 디렉토리 아래에 여러분의 어떤 어플리케이션
176(``/usr/local/django-apps/weblog/`` 같은)이 있고, 여러분의 설정 파일은
177``/var/www/mysite/settings.py`` 이라서 여러분은 ``DJANGO_SETTINGS_MODULE`` 를
178위의 예제처럼 설정했습니다. 이 경우, 여러분은 ``PythonPath`` 지시자를
179아래와 같이 작성할 필요가 있습니다::
180<<!!
181
182        PythonPath "['/usr/local/django-apps/', '/var/www'] + sys.path"
183
184>>!
185With this path, ``import weblog`` and ``import mysite.settings`` will both
186work. If you had ``import blogroll`` in your code somewhere and ``blogroll``
187lived under the ``weblog/`` directory, you would *also* need to add
188``/usr/local/django-apps/weblog/`` to your ``PythonPath``. Remember: the
189**parent directories** of anything you import directly must be on the Python
190path.
191<<!
192>>!!
193이 path 에서, ``import weblog`` 와 ``import mysite.settings`` 둘 다 작동합니다. 만약 여러분의
194코드 어딘가에 ``import blogroll``가 있고 ``blogroll``이 ``weblog/`` 디렉토리
195아래에 위치하고 있다면, 여러분은 *또한* ``/usr/local/django-apps/weblog/`` 를
196``PythonPath`` 안에 넣어야 합니다.
197기억하십시오:여러분이 작접 import 하려고 하는
198모든 것들의 **부모 디렉토리**는 반드시 파이썬 path 상에 있어야 합니다.
199<<!!
200
201.. note::
202   
203>>!             
204    If you're using Windows, we still recommended that you use forward
205    slashes in the pathnames, even though Windows normally uses the backslash
206    character as its native separator. Apache knows how to convert from the
207    forward slash format to the native format, so this approach is portable and
208    easier to read. (It avoids tricky problems with having to double-escape
209    backslashes.)
210<<!
211>>!!
212    만약 여러분이 Windows를 사용중이라면, 일반적으로 Windows는 역슬래시 문자(\)를
213    운영체제의 경로 구분자로 사용하지만, 우리는 여전히 슬래시(/)를 경로에 사용할 것을
214    추천합니다. 아파치는 슬래시 포맷을 어떻게 운영체제 포맷으로 변경할지 알기 때문에,
215    이 방식이 간편하고(portable) 더 읽기 쉽습니다.
216                (이는 이중-이스케이프 역슬래시(\\) 문제를
217    피하는 꽁수입니다.)
218<<!!
219
220>>!
221    This is valid even on a Windows system::
222<<!
223>>!!
224    Windows 시스템상에서 이것 역시 유효합니다::
225<<!!
226
227        PythonPath "['c:/path/to/project'] + sys.path"
228
229>>!
230You can also add directives such as ``PythonAutoReload Off`` for performance.
231See the `mod_python documentation`_ for a full list of options.
232<<!
233>>!!
234여러분은 또한 ``PythonAutoReload Off`` 지시자를 성능을 위해 추가할 수 있습니다.
235전체 옵션들은 `mod_python 문서`_에서 볼 수 있습니다.
236<<!!
237
238>>!
239Note that you should set ``PythonDebug Off`` on a production server. If you
240leave ``PythonDebug On``, your users would see ugly (and revealing) Python
241tracebacks if something goes wrong within mod_python.
242<<!
243>>!!
244여러분은 제품 서버(production server)상에서는 반드시 ``PythonDebug Off``로 설정해야 합니다.
245``PythonDebug On`` 인채로 두면, 만약 mod_python 안에서 뭔가 잘못 되었을때
246 여러분의 사용자들은 보기흉한(그리고 적나라한) 파이썬 traceback 들을 보게 될것입니다.
247 <<!!
248
249>>!
250Restart Apache, and any request to /mysite/ or below will be served by Django.
251Note that Django's URLconfs won't trim the "/mysite/" -- they get passed the
252full URL.
253<<!
254>>!!
255아파치를 재 시작하면, /mysite/ 또는 그 아래의 어떠한 요청에 대해서도 장고가 처리를 합니다.
256장고의 URLconf는 "/mysite/" 를 trim 하지 않음을 주의 하십시오 -- full URL이 전달됩니다.
257 
258<<!!
259
260>>!
261When deploying Django sites on mod_python, you'll need to restart Apache each
262time you make changes to your Python code.
263<<!
264>>!!
265장고를 mod_python으로 운용할때, 여러분의 파이썬 코드를 변경할때마다
266아파치를 재 시작할 필요가 있습니다.
267<<!!
268
269>>!
270Multiple Django installations on the same Apache
271<<!
272>>!!
273한 아파치상에서 장고 다중 설치
274<<!!
275================================================
276
277>>!
278It's entirely possible to run multiple Django installations on the same Apache
279instance. Just use ``VirtualHost`` for that, like so::
280<<!
281>>!!
282한 아파치 인스턴스 상에서 다중 설치된 장고를 실행 시킬 수 있습니다. 바로 VirtualHost 를
283아래와 같이 사용합니다::
284<<!!
285
286    NameVirtualHost *
287
288    <VirtualHost *>
289        ServerName www.example.com
290        # ...
291        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
292    </VirtualHost>
293
294    <VirtualHost *>
295        ServerName www2.example.com
296        # ...
297        SetEnv DJANGO_SETTINGS_MODULE mysite.other_settings
298    </VirtualHost>
299
300>>!
301If you need to put two Django installations within the same ``VirtualHost``,
302you'll need to take a special precaution to ensure mod_python's cache doesn't
303mess things up. Use the ``PythonInterpreter`` directive to give different
304``<Location>`` directives separate interpreters::
305<<!
306>>!!
307만약 여러분이 같은 ``VirtualHost``에서 두개의 장고를 설치할 필요가 있다면,
308여러분은 mod_python의 캐시가 꼬이지 않도록 하기 위한 특별한 예방책이 필요합니다.
309``PythonInterpreter`` 지시자를 사용하여 각기 다른 ``<Location>`` 지시자들이 인터프리터를
310분리하도록 하십시오::
311<<!!
312
313    <VirtualHost *>
314        ServerName www.example.com
315        # ...
316        <Location "/something">
317            SetEnv DJANGO_SETTINGS_MODULE mysite.settings
318            PythonInterpreter mysite
319        </Location>
320
321        <Location "/otherthing">
322            SetEnv DJANGO_SETTINGS_MODULE mysite.other_settings
323            PythonInterpreter othersite
324        </Location>
325    </VirtualHost>
326
327>>!
328The values of ``PythonInterpreter`` don't really matter, as long as they're
329different between the two ``Location`` blocks.
330<<!
331>>!!
332각기 다른 두개의 ``Location`` 블럭 안에 있는 한, ``PythonInterpreter`` 의 값은
333전혀 문제되지 않습니다.
334<<!!
335
336>>!
337Running a development server with mod_python
338<<!
339>>!!
340mod_python에서 개발 서버(developement server) 실행하기
341<<!!
342============================================
343
344>>!
345If you use mod_python for your development server, you can avoid the hassle of
346having to restart the server each time you make code changes. Just set
347``MaxRequestsPerChild 1`` in your ``httpd.conf`` file to force Apache to reload
348everything for each request. But don't do that on a production server, or we'll
349revoke your Django privileges.
350<<!
351>>!!
352만약 여러분이 개발 서버(developement server)에서 mod_python을 사용한다면,
353여러분은 코드를 바꿀때마다 아파치를 재시작 해야하는 불편함을 피할 수 있습니다.
354바로 ``httpd.conf`` 파일에 ``MaxRequestsPerChild 1``을 설정하여 매 요청마다 강제로 아파치가 모든것을 리로드 하도록 합니다.
355하지만 제품 서버(production server) 상에서는 이렇게 하지 마십시오. 그렇지 않으면,
356여러분의 장고 권한들을 재호출합니다.
357<<!!
358
359>>!
360If you're the type of programmer who debugs using scattered ``print``
361statements, note that ``print`` statements have no effect in mod_python; they
362don't appear in the Apache log, as one might expect. If you have the need to
363print debugging information in a mod_python setup, either do this::
364<<!
365>>!!
366만약 여러분이 여기저기 흩어진 ``print`` 문을 사용하여 디버깅하는 프로그래머 부류라면,
367mod_python 에서 ``print`` 문은 아무 효과가 없음을 주의 하십시오; 혹시 기대했을지 모를,
368아파치 로그에도 보이지 않습니다. 만약 mod_python 환경에서
369디버깅 정보를 꼭 찍어야 할 필요가 있다면, 이렇게 하십시오::
370<<!!
371
372>>!
373    assert False, the_value_i_want_to_see
374<<!
375>>!!
376    assert False, 내가 알고 싶은 값
377<<!!
378
379>>!
380Or add the debugging information to the template of your page.
381<<!
382>>!!
383혹은 디버깅 정보를 여러분 페이지의 템플릿에 추가 하십시오.
384<<!!
385
386>>!
387.. _mod_python documentation: http://modpython.org/live/current/doc-html/directives.html
388<<!
389>>!!
390.. _mod_python 문서: http://modpython.org/live/current/doc-html/directives.html
391<<!!
392
393>>!
394Serving media files
395<<!
396>>!!
397미디어 파일 처리하기
398<<!!
399===================
400
401>>!
402Django doesn't serve media files itself; it leaves that job to whichever Web
403server you choose.
404<<!
405>>!!
406장고 자체는 미디어 파일들을 처리하지 않습니다; 장고는 그 작업을 여러분이 선택한
407웹 서버에게 남깁니다.
408<<!!
409
410>>!
411We recommend using a separate Web server -- i.e., one that's not also running
412Django -- for serving media. Here are some good choices:
413<<!
414>>!!
415우리는 분리된 웹서버 — 바꿔말하면, 장고를 실행하지 않는  — 미디어 처리를 위한
416웹서버를 사용할것을 추천합니다. 여기 몇가지 좋은 선택이 있습니다:
417<<!!
418
419* lighttpd_
420* TUX_
421* A stripped-down version of Apache_
422
423>>!
424If, however, you have no option but to serve media files on the same Apache
425``VirtualHost`` as Django, here's how you can turn off mod_python for a
426particular part of the site::
427<<!
428>>!!
429그렇지만, 만약 여러분이 선택의 여지가 없고
430장고가 실행되는 동일 아파치 ``VirtualHost`` 상에서 미디어 파일들을 처리해야 한다면,
431사이트 특정 부분의 mod_python 을 끄는 방법이 있습니다::
432<<!!
433
434    <Location "/media">
435        SetHandler None
436    </Location>
437
438>>!
439Just change ``Location`` to the root URL of your media files. You can also use
440``<LocationMatch>`` to match a regular expression.
441<<!
442>>!!
443바로 ``Location``을 미디어 파일들의 루트 URL로 변경하십시오.
444여러분은 정규 표현식으로 매치하기 위해 ``<LocationMatch>``를 사용할 수도 있습니다.
445<<!!
446
447>>!
448This example sets up Django at the site root but explicitly disables Django for
449the ``media`` subdirectory and any URL that ends with ``.jpg``, ``.gif`` or
450``.png``::
451<<!
452>>!!
453이 예는 사이트 루트에 장고를 설정하지만 ``media`` 서브디렉토리와
454``.jpg``, ``.gif`` 또는 ``.png``로 끝나는 URL은 장고를 불가능하게 하는
455설정을 합니다::
456<<!!
457
458    <Location "/">
459        SetHandler python-program
460        PythonHandler django.core.handlers.modpython
461        SetEnv DJANGO_SETTINGS_MODULE mysite.settings
462    </Location>
463
464    <Location "/media">
465        SetHandler None
466    </Location>
467
468    <LocationMatch "\.(jpg|gif|png)$">
469        SetHandler None
470    </LocationMatch>
471
472
473.. _lighttpd: http://www.lighttpd.net/
474.. _TUX: http://en.wikipedia.org/wiki/TUX_web_server
475.. _Apache: http://httpd.apache.org/
476
477>>!
478Serving the admin files
479<<!
480>>!!
481admin 파일들 처리하기
482<<!!
483=======================
484
485>>!
486Note that the Django development server automagically serves admin media files,
487but this is not the case when you use any other server arrangement. You're
488responsible for setting up Apache, or whichever media server you're using, to
489serve the admin files.
490<<!
491>>!!
492장고 개발 서버는 자동으로 admin media 파일들을 처리합니다만, 다른 서버구성을
493사용할 경우는 이에 해당하지 않음을 주의 하십시오. admin 파일들을 처리하기 위해,
494아파치, 또는 여러분이 사용중인 어떠한 미디어 서버에 대한 설정을
495여러분이 해야 합니다.
496<<!!
497
498>>!
499The admin files live in (``django/contrib/admin/media``) of the Django
500distribution.
501<<!
502>>!!
503admin 파일은 장고 배포판의 (``django/contrib/admin/media``) 에
504위치합니다.
505<<!!
506
507>>!
508Here are two recommended approaches:
509<<!
510>>!!
511여기 두가지 추천 방법이 있습니다:
512<<!!
513
514>>!
515    1. Create a symbolic link to the admin media files from within your
516       document root. This way, all of your Django-related files -- code
517       **and** templates -- stay in one place, and you'll still be able to
518       ``svn update`` your code to get the latest admin templates, if they
519       change.
520    2. Or, copy the admin media files so that they live within your Apache
521       document root.
522<<!
523>>!!
524    1. 여러분의 document root 내에 admin media 파일들에 대한 심볼릭 링크를 만듭니다.
525       이 경우, 여러분의 모든 장고 관련 파일들 -- 코드 **그리고** 템플릿들 -— 은
526       한 장소에 있게되며, 여러분은 여전히 변경된 최신의
527                         admin 템플릿들을 얻기 위해,
528       ``svn update``를 할 수 있습니다.
529    2. 또는, 여러분의 아파치 document root 안에
530                admin media 파일들을 복사합니다.
531<<!!
532
533>>!
534Using eggs with mod_python
535<<!
536>>!!
537mod_python에서 eggs 사용하기
538<<!!
539==========================
540
541>>!
542If you installed Django from a Python egg_ or are using eggs in your Django
543project, some extra configuration is required. Create an extra file in your
544project (or somewhere else) that contains something like the following::
545<<!
546>>!!
547만약 Python egg_에서 장고를 설치했거나 장고 프로젝트에 egg를 사용 중이라면,
548추가 설정이 필요합니다. 여러분의 프로젝트(또는 어딘가에)에 아래와 같은 내용을 포함하는
549별도의 파일을 생성하십시오::
550<<!!
551
552    import os
553    os.environ['PYTHON_EGG_CACHE'] = '/some/directory'
554
555>>!
556Here, ``/some/directory`` is a directory that the Apache webserver process can
557write to. It will be used as the location for any unpacking of code the eggs
558need to do.
559<<!
560>>!!
561여기, ``/some/directory`` 는 아파치 웹서버 프로세스가
562쓰기를 하는 디렉토리입니다.
563egg가 필요로 하는 코드들의 압축을 푸는 위치로 사용됩니다.
564<<!!
565
566>>!
567Then you have to tell mod_python to import this file before doing anything
568else. This is done using the PythonImport_ directive to mod_python. You need
569to ensure that you have specified the ``PythonInterpreter`` directive to
570mod_python as described above__ (you need to do this even if you aren't
571serving multiple installations in this case). Then add the ``PythonImport``
572line in the main server configuration (i.e., outside the ``Location`` or
573``VirtualHost`` sections). For example::
574<<!
575>>!!
576그리고나서 여러분은 mod_python에게 다른 무엇보다도 먼저
577이 파일을 import 할것을 지시해야 합니다.
578이는 mod_python에 PythonImport_ 지시자를 사용하면 됩니다.
579여러분은 mod_python에 위__에서 설명한대로
580``PythonInterpreter`` 지시자를
581명시해둬야 합니다
582(여러분은 이 경우 다중 설치를 사용 하지 않더라도 이것을 해야 합니다). 그리고 나서 ``PythonImport`` 줄을 메인 서버 설정에 추가 하십시오(즉, ``Location`` 또는 ``VirtualHost`` 섹션의 바깥). 예를 들어::
583<<!!
584
585    PythonInterpreter my_django
586    PythonImport /path/to/my/project/file.py my_django
587
588>>!
589Note that you can use an absolute path here (or a normal dotted import path),
590as described in the `mod_python manual`_. We use an absolute path in the
591above example because if any Python path modifications are required to access
592your project, they will not have been done at the time the ``PythonImport``
593line is processed.
594<<!
595>>!!
596여러분은 `mod_python 매뉴얼`_에서 설명한 대로
597절대 경로(또는 일반적인 도트 import 경로)를 사용할 수 있습니다. 우리는 여러분의
598프로젝트에 접근 하기 위해 파이썬 path 수정이 필요할 수도 있는데,
599``PythonImport`` 라인이 처리되는 시점에서는 이것이 아직  완료가 되지 않았기 때문에
600위의 예제에서 우리는 절대 경로를 사용했습니다.
601<<!!
602
603.. _Egg: http://peak.telecommunity.com/DevCenter/PythonEggs
604.. _PythonImport: http://www.modpython.org/live/current/doc-html/dir-other-pimp.html
605>>!
606.. _mod_python manual: PythonImport_
607__ `Multiple Django installations on the same Apache`_
608<<!
609>>!!
610.. _mod_python 매뉴얼: PythonImport_
611__ `한 아파치 상에서 장고 다중 설치`_
612<<!!
613
614>>!
615Error handling
616<<!
617>>!!
618에러 처리
619<<!!
620==============
621
622>>!
623When you use Apache/mod_python, errors will be caught by Django -- in other
624words, they won't propagate to the Apache level and won't appear in the Apache
625``error_log``.
626<<!
627>>!!
628여러분이 아파치/mod_python을 사용할 때, 에러는 장고에 의해 잡힙니다  -- 다른 말로,
629에러를 아파치 레벨에 전파 하지 않으며, 아파치 ``error_log`` 에도
630나타나지 않습니다.
631<<!!
632
633>>!
634The exception for this is if something is really wonky in your Django setup. In
635that case, you'll see an "Internal Server Error" page in your browser and the
636full Python traceback in your Apache ``error_log`` file. The ``error_log``
637traceback is spread over multiple lines. (Yes, this is ugly and rather hard to
638read, but it's how mod_python does things.)
639<<!
640>>!!
641이에 대한 예외는 여러분의 장고 프로그램에서 무언가 정말 있을 수 없는 일이
642발생한 경우입니다. 이 경우, 여러분은 브라우저에서 "Internal Server Error" 페이지를
643보게 될 것이며 full Python traceback 이 아파치 ``error_log`` 파일에 남겨집니다.
644``error_log`` traceback은 여러줄에 걸쳐 출력됩니다. (예, 이것은
645보기 흉하고 읽기도 어렵습니다만, 이게 mod_python 이 처리하는 방식입니다.)
646<<!!
647
648>>!
649If you get a segmentation fault
650<<!
651>>!!
652segment fault 가 났다면
653<<!!
654===============================
655
656>>!
657If Apache causes a segmentation fault, there are two probable causes, neither
658of which has to do with Django itself.
659<<!
660>>!!
661만약 아파치가 segment fault 를 낸다면, 두가지 예상 원인이 있는데,
662둘다 장고 자체의 문제가 아닙니다.
663<<!!
664
665>>!
666    1. It may be because your Python code is importing the "pyexpat" module,
667       which may conflict with the version embedded in Apache. For full
668       information, see `Expat Causing Apache Crash`_.
669    2. It may be because you're running mod_python and mod_php in the same
670       Apache instance, with MySQL as your database backend. In some cases,
671       this causes a known mod_python issue due to version conflicts in PHP and
672       the Python MySQL backend. There's full information in the
673       `mod_python FAQ entry`_.
674<<!
675>>!!
676    1. 여러분의 파이썬 코드가 아파치에 임베딩된 버전과
677      충돌나는 "pyexpat" 모듈을 임포팅 하고 있기 때문일 수 있습니다.
678      전체 정보는 `Expat Causing Apache Crash`_ 를 보십시오.
679    2. 여러분이 데이터베이스 후단부로 MySQL을 사용하여 mod_python과 mod_php를
680      동일 아파치 인스턴스에서 실행중이기 때문일 수 있습니다. 어떤 경우,
681      이는 PHP와 Python의 MySQL 후단부에서의 버전 충돌에 의한 것으로 알려진
682      mod_python 이슈를 일으킵니다.
683                        `mod_python FAQ entry`_에 전체 정보가 있습니다.
684<<!!
685     
686>>!
687If you continue to have problems setting up mod_python, a good thing to do is
688get a barebones mod_python site working, without the Django framework. This is
689an easy way to isolate mod_python-specific problems. `Getting mod_python Working`_
690details this procedure.
691<<!
692>>!!
693만약 여러분에게 mod_python 설정 문제가 계속된다면,
694장고 프레임워크 없이, mod_python 기본 사이트가 잘 작동하도록 하십시오.
695이는 mod_python 에 한정된 문제를 고립시키는 쉬운 방법입니다.
696`Getting mod_python Working`_에 이 절차가 자세하게 있습니다.
697<<!!
698
699>>!
700The next step should be to edit your test code and add an import of any
701Django-specific code you're using -- your views, your models, your URLconf,
702your RSS configuration, etc. Put these imports in your test handler function
703and access your test URL in a browser. If this causes a crash, you've confirmed
704it's the importing of Django code that causes the problem. Gradually reduce the
705set of imports until it stops crashing, so as to find the specific module that
706causes the problem. Drop down further into modules and look into their imports,
707as necessary.
708<<!
709>>!!
710다음 단계는 테스트 코드를 열어서 여러분이 사용하는 장고 관련 코드 —
711view, model, URLconf, RSS 설정 따위 등에 대한 모든 import 들을 추가 하십시오.
712이들 import들을 여러분의 테스트 핸들러 함수에 넣고 브라우저에서
713여러분의 테스트 URL에 접속하십시오. 만약 이것이 문제를 발생시킨다면,
714import 한 장고 코드들이 문제를 일으키는 것임이 확인된 것입니다. 크래시가
715멈출때까지 import 를 점차적으로 줄여나가서, 문제를 말생시키는
716특정 모듈을 찾습니다. 필요하다면 해당 모듈 안으로 더 들어가
717그 곳의 import 들을 조사합니다.
718<<!!
719
720.. _Expat Causing Apache Crash: http://www.dscpl.com.au/articles/modpython-006.html
721.. _mod_python FAQ entry: http://modpython.org/FAQ/faqw.py?req=show&file=faq02.013.htp
722.. _Getting mod_python Working: http://www.dscpl.com.au/articles/modpython-001.html
Back to Top