2015年9月13日日曜日

Django

Django で作成したwebサイトをEC2 で公開する

$ python manage.py runserver 0:8000
デフォルトではローカルホストにしかポートがバインドされないので、明示的に"0:PORT" とポート番号をオプション指定する必要がある。
http://serverfault.com/questions/430848/amazon-ec2-not-able-to-open-web-application-even-if-port-it-opened

Python Django 入門

http://qiita.com/kaki_k/items/511611cadac1d0c69c54
仮想環境上で作業したいときは、 workon env して実行。

ログアウトしてもプロセス実行を継続したい場合は、
$ nohup python manage.py runserver 0:8000
http://qiita.com/QUANON/items/a21d6c1fcdaf009cadb4

実行方法
workon python2.7; python manage.py runserver 0:8000;

2015年9月10日木曜日

ざっくり MySQL 入門(1)

エクセルシートでいうと、
シートにあたるのが table、各列を field、各行(各要素)を record と呼ぶ。
以下実行したコマンド履歴。
create database blog_app;show databases;
use mysql;use test;grant all on blog_app.* to dbuser@localhost identified by "password";use blog_app;create table users( id int, name varchar(255), email varchar(255), password char(32) );show tables;drop table users;show tables;
use blog_app;
create table users(id int not null auto_increment primary key,email varchar(255) unique,score double,sex enum('male','female') default 'male',created datetime);show tables;desc users;drop table users;

create table users( id int not null auto_increment primary key, email varchar(255) unique, score double, sex enum('male','female') default 'male', created datetime );desc users;insert into users (email, score, created) values ('hoge@google.com', '22.2', '2012-11-11 11:11:11')
 insert into users (email, score, created) values ('hoge@google.com', '22.2', '2012-11-11 11:11:11'),('hoge2@google.com', '222.2', '2012-11-11 11:11:11'),('hoge3@google.com', '22.2', '2013-11-11 11:11:11')

select * from users;select email, score from users;select * from users \G
use blog_app;select * from users;select * from users where score < 100;select * from users where score = 222.2;select * from users where score != 222.2;select * from users where email = 'hoge@google.com';select * from users where created < '2012-12-11 11:11:11';select * from users where email like '%@google.com';select * from users where email like '____@google.com';select * from users where score between 0 and 100;select * from users where sex in ('male');select * from users where sex in ('female');select * from users where sex in ('female', 'male');select * from users where sex in ('female', 'male') and score < 100;select * from users where score < 100 or email like '%@google.com';

2015年9月5日土曜日

Vagrant + Ansible で高速開発環境構築

サーバー構築するのに手順書見ながらいちいち apache いれて、mysqlいれて〜。。。
みたいな手作業が面倒だったので、プロビジョニングツールの勉強した。

Chef が流行ってるっぽいけど、
 - 何でもできる分学習コスト高い。(そこまで難しいことする予定がない)
 - Ruby 覚えるの面倒
ということで却下。
YAMLだけ知ってれば簡単に使える Ansible を採用。

ホストOSはMac。
その上で Virtualbox + Vagrant を使ってゲストOSとして CentOS を起動。
Mac 上から CentOS に Ansible 使ってツールをインストールします。

=============================================

まず、vagrant ssh でなくて普通の ssh でゲストOSに接続できるように、
sshのコンフィグファイルに設定を追記。
$ vagrant ssh-config --host 192.168.33.10 >> ~/.ssh/config

$ ssh vagrant@192.168.33.10
で入れればOK。

Ansible を使ってソフトウェアをインストールする手順はここを参照。
http://liginc.co.jp/web/programming/server/129004

あとは先人が作ってくれた playbook をテキトーに clone すれば良いかな。
よさ気なリポジトリをリンク。
https://github.com/ansible/ansible-examples/tree/master/lamp_simple