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と明示する必要があります.