私はこれまでDjangoサイトをデプロイしたことがありません。現在、デラックスなGoDaddyアカウントでセットアップすることを検討しています。GoDaddyにpythonとdjangoをインストールする方法についてのドキュメントはありますか?
5 に答える
将来の参考のために、あなたが先に進んだと思いますが...
推奨されているようにVirtualEnvを使用して、GoDaddyホスティングでDjangoを使用することができます。Python 2.7はネイティブにインストールされ、正常に動作しますが、実行されるデフォルトのバージョンではありません。
- サイトでSSHアクセスを有効にします。
- ホスティングパネルを使用して、最初のMySQLデータベースをセットアップします。エントリは必要ありません。存在することを確認し、接続情報を書き留めてください。
- SSHで接続し、VirtualEnv.pyをダウンロードします。tarball全体を取得できますが、必要なのは1つのファイルだけです。
- '/usr/bin/python2.7 virtualenv.py--system-site-packagesyour_new_env'を実行します
- 'source your_new_env / bin/activate'を実行します
- 'pipinstalldjango'を実行します
- もちろん、runserverを使用しない場合を除いて、djangoチュートリアルを直接実行できるようになりました(すでにWebサーバーを実行しているため)
これはデラックスアカウントで機能しますが、Djangoを確実に使用したい人は、別のホスティングを探すことをお勧めします。GoDaddyはあまり友好的ではなく、すべてが引き続き機能するかどうかはわかりません。
編集
また、通常のmod_ *オプションを使用せずに、Apache内でDjangoを正常に実行する方法にも混乱が生じる可能性があることに気付きました。これが私のアプローチでした:
- htmlディレクトリ構造の外のどこかにdjangoプロジェクトを作成します。たとえば、〜/ codeでdjango-adminを実行して、〜/ code/yoursiteを作成します
- Djangoチュートリアルで説明されているように、通常のプロジェクトとデータベースのセットアップに従います。
- 仮想Python環境から、「pipinstallflup」を実行します。
〜/code内に次のスクリプト'django_cgi.py'を作成します(Pythonパスに注意してください!):
#!~/your_new_env/bin/python import sys, os # Add a custom Python path for your project sys.path.insert(0, "/must/be/full/path/to/code/yoursite") # Set the DJANGO_SETTINGS_MODULE environment variable. # This should match the name for the project you added to the path above os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings' from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")
〜/ html内で、次のバリエーションを使用して.htaccessファイルを作成または編集します。
RewriteEngine On RewriteCond %{REQUEST_URI} !=/mysite.cgi RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT]
最後に、次のように〜/ html/mysite.cgiを作成します。
#!/bin/sh ~/your_new_env/bin/python ~/code/django_cgi.py 2>&1
- すべてが適切にchmodされていることを確認します(755)
これは非常に単純化されていますが機能的であり、ページまたはファイルに対するすべてのリクエストがDjangoに渡されるはずです。
この回避策の理由は、GoDaddyが使用できない古いバージョンのPythonに対してネイティブCGIサポートのみを提供するため、仮想環境を使用する必要があるためです。これをCGIスクリプトで直接使用することはできませんが、幸いシェルスクリプトを実行して手動で呼び出すことはできます。mod_rewriteルールは、すべてのトラフィックがDjangoを通過することを保証します。
Godaddyによると、彼らはPython 2.7.2を使用できる可能性があり、Webホスティングのデラックスエディションを使用している場合はプログラムすることができます。私の理解では、Pythonは、最初の行にPythonインストールのディレクトリの場所を入力した瞬間に機能します。
#!/usr/local/bin/python2.7
しかし、私がそれをテストしようとしたとき、それは機能しません。アカウントでSSHを有効にしました。Puttyに接続しようとしましたが、実行すると機能します。しかし、問題は、サイトが表示されないことです。
Pythonのバージョンを確認してみました。Python2.4.3であることがわかりました。それで、私は彼らのディレクトリを見つけようとしました。私はそれが次のようである可能性があることを発見しました:
#!/usr/local/bin/python2.4
または
#!/usr/local/bin/python2.4/site.py - (not sure)
私はすべてのディレクトリを試し、可能な限りすべての構文を変更しました。何も機能しません。
Pythonをサポートするための記事は次のとおりです: http ://support.godaddy.com/help/article/7254/can-i-use-python-272-with-my-hosting-account?locale = en
したがって、私の観察によれば、どちらの答えも正しいかもしれません。
- Godaddyは、Pythonをサポートしていると主張しています。しかし、それをサポートする能力がありません。
- GodaddyはPythonをサポートしています。しかし、彼らの技術サポートは彼らのサーバーがどのように機能するかを知りません。
- Godaddyは、Pythonをサポートしていると主張しています。しかし、実際にはそうではありません。
しかし、結論に飛び込む前に、GodaddyPythonServerを2.7に変更するように要求しました。わかったら、この投稿を更新します。
更新: Godaddyは、仮想プライベートサーバーまたは専用サーバーでPythonを実行できる可能性があると主張しています。これは、自分のコンピューターを実行しているため可能だと思います。技術的には、自分のコンピューターに何でもインストールできます。したがって、Pythonを実行すると、Djangoが実行される可能性がありますが、Pythonをサポートする方法を知っているかどうかは疑問です。
私はGoDaddyのセットアップに特に精通していませんが、一般的に、特にサポートされていない限り、共有ホスティングにDjangoをインストールすることはできません(Dreamhost)。そのため、GoDaddyがドキュメントでDjango(またはmod_wsgiなど)について具体的に言及していない限り、サポートされていないと見なすことができます。
理論的には、Pythonをインストールして、シェルアクセスと十分な権限があればどこからでもDjangoを実行できますが、共有ホスティングの一部として(つまり、ポート80で、選択したホスト名に応答して)Djangoサイトを実際に提供することはできません。 Webサーバー構成にアクセスできないためです。
VPS(GoDaddyが提供しますが、コアビジネスではありません。LinodeとRackspaceは他のオプションです)、Djangoを特別にサポートする共有ホスト(Dreamhostなど)、またはアプリケーションホスト(HerokuまたはGoogle App Engine)のいずれかが必要になります。特に、独自のWebサーバーのセットアップと保守に自信がない場合は、Herokuを個人的にお勧めします。
これが私がやった方法です。
- 実サーバー(フルアクセス権を持つサーバー)でCENTOS5.8を使用してchrootを作成します
- sqlite3-devel、自分でコンパイルしたpython 2.7、仮想環境など、必要なすべてのパッケージをそこにインストールします。
- そこにdjangoをインストールして、すべてセットアップします。
- chroot全体のスナップショットを作成し、マシンにコピーします。
- 実行には、virtualenvを使用するだけで機能します。
こちらのreadmeを参照してください:https ://github.com/lawrencecreates/RHEL5-chroot/blob/master/README私もそのツールのコードを変更し、それを使用しました。