我試圖用heroku部署我現有的django項目,遵循heroku提供的步驟,並根據需要進行調整以適合我的項目。只是爲了通過什麼我迄今所做的快速運行:用Heroku部署Django
- 安裝Django的工具區在我的virtualenv
在我的項目的命名
Procile
根,其中包括創造了一個Procfile:web: gunicorn projectname.wsgi
使用
foreman start
確認我的項目仍在本地正常運行- 創建
requirements.txt
使用pip freeze
並把它放在我的項目 根添加以下到
settings.py
:import dj_database_url DATABASES['default'] = dj_database_url.config() # Honor the 'X-Forwarded-Proto' header for request.is_secure() SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') # Allow all host headers ALLOWED_HOSTS = ['*'] # Static asset configuration import os BASE_DIR = os.path.dirname(os.path.abspath(__file__)) STATIC_ROOT = 'staticfiles' STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )
這是一個地步,我有點糊塗,演練沒有提及發生了什麼與我現有的數據庫設置,保持原樣,刪除,更改?
添加以下到wsgi.py:
from django.core.wsgi import get_wsgi_application from dj_static import Cling application = Cling(get_wsgi_application())
添加的Heroku作爲遠程Git推我的項目的Heroku。有效。
heroku ps:scale web=1
然而,當我嘗試訪問我的項目,我得到一個Application Error
。當我檢查與英雄heroku ps --app projectname
狀態它說,測功機已經崩潰。重新啓動什麼也不做。
heroku logs --app projectname
產量:
2013-07-18T00:01:14.246956+00:00 heroku[web.1]: Starting process with command `gunicorn projectname.wsgi`
2013-07-18T00:01:16.054952+00:00 app[web.1]: 2013-07-18 00:01:16 [2] [INFO] Starting gunicorn 17.5
2013-07-18T00:01:16.058972+00:00 app[web.1]: 2013-07-18 00:01:16 [2] [INFO] Listening at: http://0.0.0.0:55131 (2)
2013-07-18T00:01:16.061566+00:00 app[web.1]: 2013-07-18 00:01:16 [2] [INFO] Using worker: sync
2013-07-18T00:01:16.080073+00:00 app[web.1]: 2013-07-18 00:01:16 [7] [INFO] Booting worker with pid: 7
2013-07-18T00:01:16.091347+00:00 app[web.1]: Traceback (most recent call last):
2013-07-18T00:01:16.091347+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 473, in spawn_worker
2013-07-18T00:01:16.091347+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
2013-07-18T00:01:16.091347+00:00 app[web.1]: worker.init_process()
2013-07-18T00:01:16.091347+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2013-07-18T00:01:16.091347+00:00 app[web.1]: self.callable = self.load()
2013-07-18T00:01:16.091558+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 353, in import_app
2013-07-18T00:01:16.091347+00:00 app[web.1]: return util.import_app(self.app_uri)
2013-07-18T00:01:16.091558+00:00 app[web.1]: __import__(module)
2013-07-18T00:01:16.091347+00:00 app[web.1]: 2013-07-18 00:01:16 [7] [ERROR] Exception in worker process:
2013-07-18T00:01:16.091347+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 33, in load
2013-07-18T00:01:16.091558+00:00 app[web.1]: Traceback (most recent call last):
2013-07-18T00:01:16.091771+00:00 app[web.1]: return util.import_app(self.app_uri)
2013-07-18T00:01:16.091771+00:00 app[web.1]: __import__(module)
2013-07-18T00:01:16.091558+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
2013-07-18T00:01:16.091558+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 115, in wsgi
2013-07-18T00:01:16.091771+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 33, in load
2013-07-18T00:01:16.091347+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 115, in wsgi
2013-07-18T00:01:16.091558+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 473, in spawn_worker
2013-07-18T00:01:16.091558+00:00 app[web.1]: self.callable = self.load()
2013-07-18T00:01:16.091771+00:00 app[web.1]: ImportError: No module named projectname.wsgi
2013-07-18T00:01:16.091558+00:00 app[web.1]: ImportError: No module named projectname.wsgi
2013-07-18T00:01:16.091558+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2013-07-18T00:01:16.091558+00:00 app[web.1]: worker.init_process()
2013-07-18T00:01:16.099257+00:00 app[web.1]: 2013-07-18 00:01:16 [7] [INFO] Worker exiting (pid: 7)
2013-07-18T00:01:16.091771+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 353, in import_app
2013-07-18T00:01:16.286985+00:00 app[web.1]: 2013-07-18 00:01:16 [2] [INFO] Shutting down: Master
2013-07-18T00:01:16.288144+00:00 app[web.1]: 2013-07-18 00:01:16 [2] [INFO] Reason: Worker failed to boot.
2013-07-18T00:01:17.956769+00:00 heroku[web.1]: Process exited with status 3
2013-07-18T00:01:17.981029+00:00 heroku[web.1]: State changed from starting to crashed
2013-07-18T00:11:46.404151+00:00 heroku[web.1]: State changed from crashed to starting
2013-07-18T00:11:50.427658+00:00 heroku[web.1]: Starting process with command `gunicorn projectname.wsgi`
2013-07-18T00:11:51.405718+00:00 app[web.1]: 2013-07-18 00:11:51 [2] [INFO] Starting gunicorn 17.5
2013-07-18T00:11:51.406995+00:00 app[web.1]: 2013-07-18 00:11:51 [2] [INFO] Listening at: http://0.0.0.0:21344 (2)
2013-07-18T00:11:51.407226+00:00 app[web.1]: 2013-07-18 00:11:51 [2] [INFO] Using worker: sync
2013-07-18T00:11:51.418300+00:00 app[web.1]: 2013-07-18 00:11:51 [7] [INFO] Booting worker with pid: 7
2013-07-18T00:11:51.425145+00:00 app[web.1]: Traceback (most recent call last):
2013-07-18T00:11:51.425145+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 33, in load
2013-07-18T00:11:51.425145+00:00 app[web.1]: 2013-07-18 00:11:51 [7] [ERROR] Exception in worker process:
2013-07-18T00:11:51.425145+00:00 app[web.1]: self.callable = self.load()
2013-07-18T00:11:51.425145+00:00 app[web.1]: worker.init_process()
2013-07-18T00:11:51.425145+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2013-07-18T00:11:51.425145+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 115, in wsgi
2013-07-18T00:11:51.425145+00:00 app[web.1]: return util.import_app(self.app_uri)
2013-07-18T00:11:51.425145+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 473, in spawn_worker
2013-07-18T00:11:51.425145+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
2013-07-18T00:11:51.425341+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 353, in import_app
2013-07-18T00:11:51.425341+00:00 app[web.1]: __import__(module)
2013-07-18T00:11:51.425341+00:00 app[web.1]: ImportError: No module named projectname.wsgi
2013-07-18T00:11:51.425341+00:00 app[web.1]: Traceback (most recent call last):
2013-07-18T00:11:51.425341+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 473, in spawn_worker
2013-07-18T00:11:51.425341+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 100, in init_process
2013-07-18T00:11:51.425341+00:00 app[web.1]: self.callable = self.load()
2013-07-18T00:11:51.425341+00:00 app[web.1]: worker.init_process()
2013-07-18T00:11:51.425341+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 115, in wsgi
2013-07-18T00:11:51.425341+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2013-07-18T00:11:51.425513+00:00 app[web.1]: return util.import_app(self.app_uri)
2013-07-18T00:11:51.425513+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 33, in load
2013-07-18T00:11:51.425513+00:00 app[web.1]: File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 353, in import_app
2013-07-18T00:11:51.425513+00:00 app[web.1]: __import__(module)
2013-07-18T00:11:51.425513+00:00 app[web.1]: ImportError: No module named projectname.wsgi
2013-07-18T00:11:51.425868+00:00 app[web.1]: 2013-07-18 00:11:51 [7] [INFO] Worker exiting (pid: 7)
2013-07-18T00:11:51.550395+00:00 app[web.1]: 2013-07-18 00:11:51 [2] [INFO] Shutting down: Master
2013-07-18T00:11:51.550395+00:00 app[web.1]: 2013-07-18 00:11:51 [2] [INFO] Reason: Worker failed to boot.
2013-07-18T00:11:52.851413+00:00 heroku[web.1]: Process exited with status 3
2013-07-18T00:11:52.867339+00:00 heroku[web.1]: State changed from starting to crashed
2013-07-18T00:14:14.285978+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=projectname.herokuapp.com fwd="173.54.54.86" dyno= connect= service= status=503 bytes=
2013-07-18T00:14:14.405875+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=projectname.herokuapp.com fwd="173.54.54.86" dyno= connect= service= status=503 bytes=
任何幫助/建議將不勝感激,我發現沒有辦法直接的Heroku在此聯繫,這裏的一切是指你左右。
謝謝,但是,並沒有詳細說明我的數據庫設置會發生什麼。 – apardes
那麼你可以使用這樣的事情ATABASES = {'default':dj_database_url.config(default ='postgres:// settings_stuff')}。你也應該檢查https://devcenter.heroku.com/articles/heroku-postgresql#connection-in-python以瞭解連接到數據庫 – dusual