2012-07-27 41 views
23

Gần đây tôi đã cố gắng xuất dự án Django trên OpenShift, nhưng không thành công. Các giải pháp duy nhất tôi tìm thấy là những cái "dựng sẵn" (chẳng hạn như https://github.com/openshift/django-example).Làm thế nào để cấu hình Django trên OpenShift?

Tôi đã dành một số giờ cố gắng điều chỉnh nó cho dự án của mình nhưng tôi luôn gặp lỗi máy chủ nội bộ.

Vì vậy, làm thế nào để thiết lập django trên openshift?

Trả lời

30

Cuối cùng tôi đã tìm ra. Điều đầu tiên cần làm là để bắt đầu một ứng dụng OpenShift và chỉnh sửa các tập tin setup.py:

rhc app create -a APPNAME -t python-2.6 
cd APPNAME 
vim setup.py 

Bạn cần phải bỏ ghi chú "install_requires = [ 'Django> = 1.3']"

Sau đó, bạn có thể cam kết tới máy chủ:

git commit -a -m "Initialization" 
git push 

Theo mặc định, nó cài đặt django 1.4 nhưng tôi nghĩ bạn có thể chọn phiên bản khác với yêu cầu cài đặt chính xác trong setup.py. Dù sao, bạn sẽ phải chạy cùng một phiên bản django trên máy tính của bạn và máy chủ cho những điều sau đây.

Tạo dự án django của bạn:

cd wsgi 
django-admin.py startproject PROJECTNAME 

Sau đó, bạn sẽ phải chỉnh sửa các ứng dụng tập tin, thay thế toàn bộ nội dung bởi:

#!/usr/bin/python 
import os, sys 

os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECTNAME.settings' 
sys.path.append(os.path.join(os.environ['OPENSHIFT_REPO_DIR'], 'wsgi', 
    'PROJECTNAME')) 

virtenv = os.environ['APPDIR'] + '/virtenv/' 
os.environ['PYTHON_EGG_CACHE'] = os.path.join(virtenv, 'lib/python2.6/site-packages') 
virtualenv = os.path.join(virtenv, 'bin/activate_this.py') 

try: 
    execfile(virtualenv, dict(__file__=virtualenv)) 
except IOError: 
    pass 

# 
# IMPORTANT: Put any additional includes below this line. If placed above this 
# line, it's possible required libraries won't be in your searchable path 
# 
from django.core.handlers import wsgi 
application = wsgi.WSGIHandler() 

Cuối cùng, bạn có thể cam kết những sửa đổi:

cd .. 
git add . 
git commit -a -m "Project Creation" 
git push 

Bạn sẽ thấy trang chào mừng django. Bây giờ bạn có thể chỉnh sửa cài đặt và nhập ứng dụng django của bạn mà không có nội dung không mong muốn

+4

Công việc tuyệt vời. Cảm ơn! Tiện ích mở rộng nhỏ cho các bước ở trên. 1. Để các tệp tĩnh của bạn được phân phát, bạn cần đặt chúng trong 'PROJECTNAME/wsgi/static'. 2. Trong 'PROJECTNAME/wsgi/static', bạn cũng nên đặt thư mục' admin' từ 'site-packages/Django-xxx/django/contrib/admin/static/admin'. Nếu không, bạn sẽ bỏ lỡ các tập tin quản trị Django tĩnh. – orschiro

+5

Thật không may khi tôi đã thử giải pháp của bạn, tôi nhận được một lỗi Tạm thời Dịch vụ 503. Tôi đã chỉnh sửa PROJECTNAME theo tên dự án của tôi và chỉnh sửa dòng với python2.7. Dường như thiếu tài liệu dự án cho OpenShift: ( – shailenTJ

+0

tôi biết bạn vừa chỉnh sửa [tệp này] (https://github.com/suhailvs/django-example/blob/master/wsgi/application) nhưng vẫn cảm ơn cho công việc GREAT :)))) – suhailvs

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