みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Herokuのローカル開発環境の整備

VMware上のUbuntu 16.04 LSTにHerokuのローカル開発環境を作成するためのメモ.PythonのDjangoを使ったWebアプリケーションの開発を目的とした記事です.

パッケージのバージョンなどは現時点でのもので,適宜読み替えてください.

VMware FusionのゲストOSで作業をするメリット

Macに直接HerokuやPostgreSQLをインストールしてしまうと,不要なサービスが常時起動することになります.Macで映画鑑賞している間にPostgresサーバーが起動しているのは気持ちが悪いです.複数の開発環境を作成する方法としてPythonのvirtualenvなどが有名ですが,ゲストOSを複数用意するのが最も頭を使わなくて済むとみーは考えています.

Mac上に開発用のファイルを置いて,テキスト編集などはMacで行い,共有フォルダを用いてゲストOSからMac上のファイルを参照できるようにして,実行はゲストOSで行うのが簡単だと考えます.

Ubuntuの用意

Ubuntuならばapt-getで簡単にCLIからインストールができるので,ゲストOSはUbuntuを使います.

Heroku Command Line Interfaceのインストール

UbuntuでHeroku Command Line Interfaceをインストールします.

Getting Started on Heroku with Python | Heroku Dev Center

PostgreSQLのインストール,設定

DjangoでPostgreSQLを使うにはpsycopg2が必要で,postgresql-server-dev-9.5に依存しています.

sudo apt-get install postgresql postgresql-server-dev-9.5

ここではpsql 9.5.5を使用しています.

PostgreSQLをCLIで操作するのは面倒などで,pgAdmin IIIなど,GUIツールを利用するのがおすすめです.

Python3のインストール

python3をインストールし,pip3から適宜必要なモジュールをインストールします.

$ sudo apt-get install python3-pip
$ sudo pip3 install Django psycopg2

PostgreSQLの初期設定

PostgreSQLはデフォルトでpostgresという名前のユーザーが存在するので,このユーザーとしてログインします.

$ sudo -i -u postgres

PostgreSQLにアクセスするためのユーザーを作成します.-Pはパスワードを設定するオプションで,-dはデータベースの作成を許可するオプションです.

$ createuser --interactive -P -d
Enter name of role to add: xxx
Enter password for new role: 
Enter it again: 
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create more new roles? (y/n) y

これでxxxというユーザーが作成できました.pgAdmin IIIから,新規に作成したユーザーでアクセスします.Ubuntuではpeer authenticationという機能が存在するため,Ubuntuのユーザーとは独立したユーザー名とパスワードでログインするにはHostをlocalhostと明示する必要があります.