Làm cách nào để thiết lập Django với IIS 8?


11

Trước đây tôi đã cố gắng để Django chạy trong IIS 8 trong Windows 8 Developer Preview. Bây giờ Bản xem trước dành cho người dùng của Windows 8 đã hết, tôi tự hỏi liệu tôi có thể nhận được một số hướng dẫn chi tiết về cách thiết lập Django trong IIS không.

Làm thế nào để tôi đi về quá trình này - tôi hầu như không biết bắt đầu từ đâu. Tôi có cần một mô-đun ISAPI cụ thể không?

Câu trả lời:


19

Quá trình này không chính xác tầm thường nhưng có thể sử dụng các bước sau:

  1. Đầu tiên, tải xuống và cài đặt Python 2.6 . (Lý do tôi đề xuất Python 2.6 thay vì Python 2.7 là vì phiên bản Python mới nhất được mô-đun PyISAPIe hỗ trợ là Python 2.6.) Ghi lại vị trí bạn cài đặt Python ( C:\Python26theo mặc định nếu tôi nhớ chính xác).

  2. Bấm chuột phải vào Máy tính và bấm Thuộc tính. Nhấp vào Cài đặt hệ thống nâng cao ở bên trái.

    nhập mô tả hình ảnh ở đây

  3. Nhấp vào tab nâng cao và sau đó nhấp vào nút Biến môi trường. Xác định vị trí đường dẫn trong hộp danh sách thấp hơn:

    nhập mô tả hình ảnh ở đây

  4. Nhấp vào nút "Chỉnh sửa ..." và đi đến cuối Giá trị biến và chèn ;C:\Python26(dấu chấm phẩy cộng với đường dẫn bạn đã cài đặt Python tới):

    nhập mô tả hình ảnh ở đây

  5. Nhấn OK để loại bỏ tất cả các hộp thoại.

  6. Tiếp theo, tải xuống phiên bản mới nhất của PyISAPIe tại đây . Trích xuất nội dung của kho lưu trữ ở đâu đó và mở thư mục.

  7. Tiếp theo, mở Bảng điều khiển, nhấp vào Chương trình và Tính năng và nhấp vào "Bật hoặc tắt tính năng của Windows" ở bên trái.

    nhập mô tả hình ảnh ở đây

  8. Duyệt đến Dịch vụ thông tin Internet -> Dịch vụ web toàn cầu -> Tính năng phát triển ứng dụng và sau đó đảm bảo ISAPI Tiện ích mở rộng được kiểm tra.

    nhập mô tả hình ảnh ở đây

  9. Áp dụng các thay đổi và sau đó mở IIS Manager. Nhấp đúp vào biểu tượng Handler Mappings.

    nhập mô tả hình ảnh ở đây

  10. Nhấp vào Thêm bản đồ mô-đun ở bên phải. Trong hộp thoại xuất hiện, nhập thông tin sau:

    • Đường dẫn yêu cầu: *
    • Mô-đun: IsapiModule
    • Có thể thực thi (tùy chọn): [Duyệt đến đường dẫn mà bạn đã trích xuất PyISAPIe và chọn PyISAPIe.dll]
    • Tên: Python thông qua PyISAPIe


    Nó sẽ trông giống như thế này:

    nhập mô tả hình ảnh ở đây

  11. Trước khi đóng hộp thoại, bấm Yêu cầu Hạn chế, bỏ chọn "Chỉ gọi trình xử lý nếu yêu cầu được ánh xạ tới:" và bấm OK. Đồng thời bấm OK để đóng hộp thoại Thêm bản đồ mô-đun (bấm Có nếu bạn được hỏi liệu bạn có muốn thêm tiện ích mở rộng với mục Được phép vào danh sách Hạn chế ISAPI và CGI không).

    nhập mô tả hình ảnh ở đây

  12. Bước tiếp theo là tải xuống Django . Trích xuất nội dung của kho lưu trữ ở đâu đó (lưu ý vị trí). Mở Dấu nhắc Lệnh (bạn có thể thực hiện việc này bằng cách nhấn Win+ R, nhập cmdvà nhấn Enter) và nhập cdtheo vị trí bạn đã trích xuất Django để:

    nhập mô tả hình ảnh ở đây

  13. Nhấn Enter, gõ cd dj, và sau đó đẩy Tab. Điều này sẽ hoàn thành đường dẫn đến thư mục Django và bạn có thể nhấn Enterđể mở thư mục. Bây giờ gõ python setup.py install:

    nhập mô tả hình ảnh ở đây

  14. Bây giờ bạn cần tạo dự án Django. Đối với mục đích ví dụ, chúng tôi sẽ tạo ra các dự án theo C:\Django. Trong cửa sổ lệnh, nhập các lệnh bên dưới theo sau Enter:

    • cd C:\
    • mkdir Django
    • cd Django
    • python C:\Python26\Lib\site-packages\django\bin\django-admin.py startproject test


    Điều này tạo ra một dự án có tên là 'thử nghiệm'.

  15. Khi quá trình hoàn tất thành công, nhiệm vụ cuối cùng còn lại là kết nối PyISAPIe với Django. Để thực hiện việc này, quay lại thư mục bạn đã trích xuất PyISAPIe và tìm thư mục http. Bên trong là một tập tin Isapi.py. Mở nó trong một trình soạn thảo văn bản và thay thế nội dung bằng cách sau:

    from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
    from Http.WSGI import RunWSGI
    from Http import Env
    import os, sys
    
    sys.path.append('C:\Django')
    os.environ['DJANGO_SETTINGS_MODULE'] = 'test.settings'
    
    def Request():
    
        PathInfo = Env.PATH_INFO
    
        if not PathInfo.startswith('/'):
            return True
    
        for Excl in ['/media']:
            if PathInfo.startswith(Excl):
                return True
    
        return RunWSGI(DjangoHandler(), Base='/')
    
  16. Sao chép thư mục http vào C:\Python26\Lib\site-packages(hoặc thư mục thích hợp nếu bạn đã cài đặt Python ở nơi khác).

  17. Khởi động lại IIS (bạn có thể thực hiện việc này bằng cách nhấp vào "khởi động lại" ở phía bên phải của Trình quản lý IIS):

    nhập mô tả hình ảnh ở đây

  18. Nếu mọi thứ hoạt động chính xác, bạn sẽ có thể truy cập http: // localhost để xem trang web Django mới của bạn:

    nhập mô tả hình ảnh ở đây


Ghi chú và bổ sung

  • Kể từ đó, tôi đã tự biên dịch PyISAPIe cho Python 2.7 (cả 32 bit và 64 bit) và tải lên các tệp tại đây: http://www.box.com/s/a5fb1b21fcdf738d2590

  • Trong bước # 6, bạn cần đảm bảo rằng pyisapie.dlltrong thư mục mà IIS có ít nhất quyền truy cập đọc. Không xem xét điều này sẽ dẫn đến các lỗi lạ.


2
George đẫm máu trả lời tốt đẹp. +1
Kev

1
Câu trả lời rất hay này chỉ cứu tôi
Trịnh Hoàng Như

Cảm ơn, nhưng tôi đang đấu tranh để làm cho nó hoạt động. Bạn không đề cập rằng bạn tạo một trang web IIS (trong Máy chủ> Trang web). Bạn không phải sao? Bạn có sử dụng trang web mặc định / DefaultAppPool không? Nếu vậy, những gì bạn chỉ ra là root trang web? Ngoài ra: Làm thế nào để tôi biết rằng DLL đang hoạt động? Các tệp .py trong Http không bao giờ được biên dịch, vì vậy tôi không nghĩ rằng các yêu cầu được xử lý bởi Python / Django.
Eric Leibenguth

1

Bạn sẽ tìm thấy hướng dẫn chi tiết cách cài đặt Django trên IIS8 trong bài đăng trên blog này:

Cài đặt Django trên IIS: Hướng dẫn từng bước

Trong ngắn hạn, các bước cần phải được thực hiện:

  • Cài đặt Python trên Windows
  • Cài đặt Django
  • Cài đặt dự án Django
  • Chạy máy chủ HTTP thử nghiệm
  • Cấu hình và chạy máy chủ FastCGI
  • Cấu hình IIS để chạy ứng dụng FastCGI
  • Cấu hình các thư mục tài nguyên và phương tiện tĩnh
  • Lưu ý về cơ sở dữ liệu (lưu ý về trình điều khiển tương thích cho một số cơ sở dữ liệu)
  • Khắc phục sự cố (lưu ý về cách khắc phục sự cố)

Mong rằng sẽ giúp!


0

Một tùy chọn khác là sử dụng django-windows-tools, mặc dù nó đã không được cập nhật trong một vài năm. Nó chỉ đơn giản là thiết lập mô-đun FastCGI trong IIS cho bạn để bạn không phải lo lắng về việc sử dụng PyISAPIe.

https://github.com/antoinemartin/django-windows-tools

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.