2012-01-06 46 views
6

Tôi đã phát triển trong môi trường django của riêng mình trong một thời gian sử dụng manage.py runserver mà không có vấn đề gì, nhưng bây giờ chúng tôi đã có một nhà thiết kế và nhà phát triển front-end cần phải làm việc trong dự án, tôi thấy mình bị thua lỗ vì thực hành tốt nhất cho môi trường của họ là gì.Làm thế nào để thiết lập Django/Apache cho môi trường dev của nhà thiết kế

Tôi có thể yêu cầu họ thiết lập môi trường python của riêng họ, nhưng điều đó đòi hỏi rất nhiều vì họ không phải là người Python và họ đang chạy Windows (dev của tôi và môi trường sản xuất đều là Linux).

Vì vậy, thay vào đó, tôi đã thiết lập chúng trên máy chủ từ xa, đĩa mà chúng có thể gắn kết cục bộ. Tuy nhiên trong thiết lập này, tôi thực sự đang sử dụng các phiên bản khác nhau của manage.py runserver ip:port chạy trong phiên bản screen. Nó không xử lý những thứ như tải lại liên tục rất tốt (phổ biến cho nhà thiết kế của chúng tôi) và nó bị treo theo thời gian do tính chất đơn luồng của máy chủ dev. Tôi muốn biết cách thiết lập điều này với Apache.

Vấn đề với khóa học này là staticfiles. Mỗi khi một trong các bên nói trên muốn thêm hoặc thay đổi tệp tĩnh, họ sẽ phải chạy manage.py collectstatic mà không thực tế. Tôi chỉ không biết cách nào khác để làm điều đó. Tất cả các tài liệu tôi đã tìm thấy để sử dụng Apache là cho một môi trường sản xuất, vì vậy ... đó là lý do tại sao tôi ở đây.

+0

nếu nhà thiết kế chỉ thay đổi tệp và mẫu tĩnh, tại sao lại tải lại django? – second

+0

Câu hỏi hay. Nó xảy ra bất cứ khi nào cô ấy thực hiện 'svn up', nhưng đó chỉ là một lần tải lại. Thành thật mà nói, tôi không biết tại sao 'runerver' bị treo, chỉ là tôi phải khởi động lại nó vài ngày một lần vì nó ngừng đáp ứng. –

+0

Bạn có thể thử django-devserver. Nó hoạt động giống như máy chủ (thực sự thay thế máy chủ) nhưng nó chạy trong nhiều luồng không giống như máy chủ mặc định. Ít nhất có thể ổn định hơn. –

Trả lời

0

Câu trả lời cho câu hỏi này là nhiều hơn đơn giản hơn tôi nghĩ và tôi xin lỗi vì đã nhầm lẫn những người đã trả lời. Về cơ bản tất cả những gì tôi muốn là một cách để lưu trữ môi trường dev của nhà thiết kế của chúng tôi trong một cái gì đó ổn định hơn ./manage.py runserver ip:port trong phiên screen. Tôi nghĩ rằng phải có một cách để thiết lập một cái gì đó như thế này cho Apache nhưng không có ý tưởng đó là gì.

Đây là những gì tôi đã làm việc:

Trong settings.py của bạn thiết STATIC_URLMEDIA_URL bạn biến để URL tương đối. Trong trường hợp của tôi, tôi đã sử dụng /static//media/.

MEDIA_ROOT = PROJECT_ROOT + "/htdocs/media/" 
MEDIA_URL = "/media/" 
SERVE_STATIC = True 
STATIC_ROOT = PROJECT_ROOT + "/htdocs/public/" 
STATIC_URL = "/static/" 

Định cấu hình Apache như bạn sẽ làm nếu bạn không có bất kỳ tệp tĩnh nào. Nói cách khác, bỏ qua các đề xuất của tài liệu để sử dụng SetHandler None trong khối <Locaiton>.

<VirtualHost *:80> 

    WSGIScriptReloading On 
    WSGIDaemonProcess someprocessname 
    WSGIProcessGroup somegroupname 
    WSGIApplicationGroup somegroupname 
    WSGIPassAuthorization On 

    WSGIScriptAlias//path/to/config.wsgi 

    ServerName somewhere.awesome.ca 

    <Location "/"> 
     Order Allow,Deny 
     Allow from all 
    </Location> 

    ErrorLog /var/log/apache2/somewhere.awesome.ca.err 
    CustomLog /var/log/apache2/somewhere.awesome.ca.log combined 

</VirtualHost> 

Tôi hy vọng điều này sẽ giúp để chỉ một người nào đó đi đúng hướng trong tương lai.

0

Kiểm soát nguồn? Yêu cầu họ kiểm tra các thay đổi và sau đó thiết lập một bài đăng cam kết móc để thu thập và khởi động lại máy chủ. Với các giao diện cửa sổ đẹp, tôi chưa từng có một nhà thiết kế nào không thể nắm bắt được các khái niệm cơ bản. Nếu bạn đang sử dụng một dcvs bạn luôn có thể có chúng trong ngã ba riêng của họ, do đó bạn phải nhập vào repos chính để ngăn chặn chúng từ phá vỡ những thứ khác do nhầm lẫn.

+0

Cả hai đều rất thoải mái với các lệnh lật đổ (cli và gui), nhưng tôi không muốn buộc họ phải cam kết chỉ để thay đổi màu trong CSS. Nó sẽ rất chậm, và sẽ lấp đầy các bản ghi với những thay đổi siêu khủng. Tôi đã hy vọng tìm thấy một cấu hình Apache có thể tái tạo hiệu ứng hợp nhất mà 'runserver' thực hiện. –

+0

Bạn có nghĩ về usin mod_wsgi hoặc fast_cgi không? Nếu bạn chạm vào tệp tập lệnh mà họ đang chạy, nó sẽ tải lại máy chủ – tkone

Các vấn đề liên quan