web-dev-qa-db-ja.com

GoDaddyにDjangoサイトをインストールする

私は以前にDjangoサイトをデプロイしたことがありません。現在、デラックスなGoDaddyアカウントでセットアップしようとしています。pythonおよびDjango?

30
Carl W.

将来の参考のために、あなたが先に進んだと思うので...

GoDaddyホスティングでDjangoを使用できます。推奨されるVirtualEnvを使用します。Python 2.7はネイティブにインストールされ、正常に動作しますが、デフォルトではありません実行するバージョン。

  • サイトでSSHアクセスを有効にします。
  • ホスティングパネルを使用して、初期MySQLデータベースをセットアップします。エントリは必要ありません。存在することを確認し、接続情報を書き留めてください。
  • SSHでVirtualEnv.pyをダウンロードします。 tarball全体を入手できますが、必要なファイルは1つだけです。
  • 「/usr/bin/python2.7 virtualenv.py --system-site-packages your_new_env」を実行します
  • 「source your_new_env/bin/activate」を実行します
  • 「pip install Django」を実行します
  • Djangoチュートリアルを直接実行できます。ただし、runserverを使用していない場合を除きます(既にWebサーバーが実行されているため)

これはデラックスアカウントで機能しますが、必ずDjangoを使用することをお勧めします。GoDaddyはあまりフレンドリーではなく、すべてが継続するかどうかはわかりません。働く。


[〜#〜] edit [〜#〜]

Django通常のmod_ *オプションなしで、Apache内で正常に実行する方法にも混乱があるかもしれません。これが私のアプローチでした。

  • Django htmlディレクトリ構造外のどこかにプロジェクトを作成します。たとえば、〜/ codeでDjango-adminを実行して〜/ code/yoursiteを作成します。
  • Djangoチュートリアルで説明されている通常のプロジェクトとデータベースのセットアップに従ってください。
  • 仮想環境python環境から、「pip install flup」を実行します。
  • 〜/ code内に次のスクリプト「Django_cgi.py」を作成します(python path!)に注意してください):

    #!~/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を通過することを保証するだけです。

参考文献
DjangoとFastCGI
Start of Django Tutorials
VirtualEnv

44
Chris

Godaddyによると、彼らはPython 2.7.2を使用することができ、彼らのウェブホスティングのデラックスエディションがある場合はプログラムできます。私が理解する方法は、pythonは、pythonインストールの最初の行にあるディレクトリの場所を入力するとすぐに機能します。

 #!/usr/local/bin/python2.7

しかし、私がそれをテストしようとしたとき、それは機能しません。アカウントでSSHを有効にしました。 PuTTYと接続しようとしましたが、実行すると動作します。しかし、問題は、サイトが表示されないことです。

Pythonのバージョンが何であるかを確認しようとしました。それがPython 2.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をサポートしていると主張しています。しかし、彼らは本当にそうではありません。

しかし、結論に飛び込む前に、GoDaddy Python Serverを2.7に変更することを要求しました。わかったらこの投稿を更新します。

更新:Godaddyは、Python Virtual Private ServerまたはDedicated Serverで実行できる可能性があると考えていますが、技術的には、自分のコンピューターに何でもインストールできます。したがって、Pythonが実行される場合、Djangoが実行される場合がありますが、彼らがそれをサポートする方法を知っているかどうかは疑問です。

4
Franz Noel

私はGoDaddyのセットアップに特に精通していませんが、一般的には、Djangoは、特にサポートされていない限り(Dreamhostで)共有ホスティングにインストールできません。そのため、GoDaddyがドキュメントでDjango(またはmod_wsgiなど)を明示的に言及していない限り、それはサポートされていないと想定できます。

理論的には、Pythonをインストールし、シェルアクセスと十分な権限がある場所からDjangoを実行できますが、Djangoサイトを実際に提供することはできません。 Webサーバー設定にアクセスできないため、共有ホスティングの一部(つまり、ポート80で選択したホスト名に応答する)。

VPS(GoDaddyが提供していますが、コアビジネスではありません。LinodeとRackspaceは他のオプションです)、またはDjangoを特にサポートする共有ホスト(例:Dreamhost)、またはアプリケーションホスト(HerokuまたはGoogle App Engine)。特に、独自のWebサーバーのセットアップと保守に自信がない場合は、Herokuを個人的にお勧めします。

3

他の回答から、GoDaddyの共有ホスティングはDjangoを実際にはサポートしていないようです。また、検索フォームで「Django」を検索しても何も返されません。その場合、あなたの最善の策は、 herehere にリストされている評判の良いDjangoに優しいホスティング会社を使用することだと思います。

2
pram

これが私がやった方法です。

  1. CENTOS 5.8を使用して、実サーバー(フルアクセスのサーバー)にchrootを作成します。
  2. Sqlite3-devel、a python 2.7自分でコンパイルする、仮想envなど)を含む、必要なすべてのパッケージをそこにインストールします。
  3. そこにDjangoをインストールし、すべて設定します。
  4. Chroot全体のスナップショットを作成してマシンにコピーし、
  5. 実行するには、virtualenvを使用するだけで機能します。

こちらのreadmeを参照してください: https://github.com/lawrencecreates/RHEL5-chroot/blob/master/README 私もそのツールのコードを修正しましたそれは私が使用したものです。

0
h4ck3rm1k3