序章
クラウドコンピューティングは、情報技術(IT)業界全体を形作っており、Ubuntuはまさにその上にあります– 文字通り!非常に多くのさまざまなツール、ライブラリ、およびアプリケーションのサポートが提供され、使いやすさと難しいタスクをシンプルにする方法と相まって、この信頼できるLinuxディストリビューションは、パブリッククラウドスペースを引き継ぐ多くの人にとって頼りになる選択肢となっています。
このDigitalOceanの記事では、PythonWebアプリケーションをホストするためにUbuntuクラウドサーバーを最初から準備する方法を学習します。 このチュートリアルに従うことで、Pythonプロジェクトをデプロイするために必要なほぼすべてのツールを備えたUbuntuが確実にインストールされます。
Ubuntu 13.10(リリース日:2013年10月)
まず、システムの更新、[Pythonの場合]必要なツールとライブラリのダウンロードとインストールを行い、次にWebアプリケーションに最適なデプロイメント環境を作成します。
システムの更新
最初に行うことは、Ubuntuにすでに付属しているすべてのものを最新の状態にすることです。
ソフトウェアソースリストを更新してから、古いアプリケーションをアップグレードしましょう。
# Update the applications sources list:
aptitude update
# Upgrade the outdated applications on the system:
aptitude -y upgrade
必要なシステムツールとライブラリの入手
次に、直接使用するか、将来便利になる必要なツールとライブラリをダウンロードしてインストールしましょう。
次のコマンドを実行して、アプリケーションのソースコードのコンパイルに必要なbuild-essential
パッケージをインストールします。
aptitude install -y build-essential
次に、開発に必要なバージョン管理ツールは次のとおりです。
aptitude install -y cvs subversion git-core mercurial
一部のPythonアプリケーションを機能させるには、特定のPythonパッケージも必要です。
aptitude install python-setuptools python-dev \
python2.7-dev python-software-properties \
libpq-dev
そして最後に、画像処理など、他のさまざまなことに必要ないくつかのサードパーティライブラリ:
aptitude install libtiff4-dev libjpeg8-dev \
zlib1g-dev libfreetype6-dev liblcms2-dev \
libwebp-dev tcl8.5-dev tk8.5-dev
一般的なPythonツールの入手
UbuntuとDebianでは、Pythonインタープリターの最新バージョン(使用可能)がデフォルトで付属しています。 インストールする追加パッケージの数は限られています。
-
pip (パッケージを管理するため);
-
virtualenv (分離された仮想環境を作成するため)。
次のコマンドを実行して、pipをインストールします。
# Get pip's dependency:
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
# And then pip:
curl https://bootstrap.pypa.io/get-pip.py | python -
# Finally, let's add it the PATH variable:
export PATH="/usr/local/bin:$PATH"
Pythonアプリケーションをそのすべての依存関係とともに独自の環境内に含めるのが最善です。 環境は、(簡単に言えば)すべてが存在する孤立した場所(ディレクトリ)として最もよく説明できます。 この目的のために、virtualenvと呼ばれるツールが使用されます。
次のコマンドを実行して、pip
を使用してvirtualenvをインストールします。
pip install virtualenv
PythonWebアプリケーション用の環境の作成
注:ここに記載されている手順は簡潔にしています。 詳細については、pipおよびvirtualenvに関するハウツー記事をご覧ください:一般的なPythonツール:virtualenvの使用、Pipでのインストール、パッケージの管理。
次のコマンドを実行して、PythonWebアプリケーションの仮想環境を作成します。
# Create a virtual environment:
# Usage: virtualenv [main app. directory name]
# Example:
virtualenv django_app
# Enter the directory to start working with
# the Python interpreter:
# Example:
cd django_app
その後、分離されたPythonインタープリターと pip パッケージマネージャーを操作するには、次のように環境をアクティブ化します。
# Activate the *virtualenv*:
source bin/activate
または、この環境内にあるアプリケーションを操作する必要があるときはいつでも、Pythonインタープリターを直接呼び出します。例:
# Call the Python interpreter directly:
# Usage: bin/python [command]
# Example:
bin/python manage.py runserver 0.0.0.0:8000
アプリケーションのインストール
すべての準備が整ったら、Pythonの操作を開始して、Webアプリケーションを構築できます。
ここにいくつかの素晴らしい例があります:
- フラスコ:
- ピラミッド:
PyramidFrameworkを使用してPythonWebアプリを構築する方法
ピラミッドベースのPythonWSGIWebアプリケーションをデプロイする方法
- Web2py:
Web2pyフレームワークを使用してPythonアプリをすばやく構築する方法
- ボトル:
ボトルマイクロフレームワークを使用してPythonWebアプリを開発する方法
- Django CMS:
DjangoCMSをセットアップしてインストールする方法
DjangoCMSバージョン3ベータ3をインストールする方法
- メザニン:
DjangoベースのMezzanineCMSをインストールして開始する方法
生産の準備
Djangoに付属しているテスト[アプリケーション]サーバーは、実際の本番シナリオには適していません。 アプリケーションをオンラインにする前に、適切なPythonアプリケーションサーバーをダウンロードしてインストールし、構成する必要があります。 ただし、これは非常に簡単なプロセスであるため、恐れることはありません。
どのアプリケーションサーバーがニーズに最も適しているかを判断するには、記事PythonベースのWebアプリケーション用のWebサーバーの比較を確認してください。
決定したら、次のチュートリアルのいずれかを実行して、Mezzanineアプリケーションを確実で信頼性の高い方法でオンラインにデプロイします。
- Gunicorn:
Nginxの背後にあるGunicornHTTPサーバーを使用してPythonWSGIアプリをデプロイする方法
- uWSGI:
NginxでuWSGIWebサーバーを使用してPythonWSGIアプリケーションをデプロイする方法
- CherryPy:
Nginxの背後にあるCherryPyWebサーバーを使用してPythonWSGIアプリケーションをデプロイする方法
Apacheの操作に慣れている場合、または何らかの理由でApacheを保持したい場合は、NginxをApacheに置き換えることを選択できます。 上記のアプリケーションサーバーのいずれかに対するリバースプロキシとして現在のApacheインストールを使用する方法を確認するには、記事 mod_proxyExtensionを使用してApacheHTTPサーバーをリバースプロキシとして使用する方法を確認してください。