git log のオプション

git log
#05 gitのログを見てみよう
http://dotinstall.com/lessons/basic_git/6705
を参考に、今回は git log について
git log を実行すると
端末にいろいろな情報がでてくる
commit 53d156650c331b31b33c8907f25527e61978dfcf
となっているのが
git のIDのようなもので
基本的にユニーク、つまりかぶらないIDになる
SQL の primary key のようなかんじ
Author: snowpool
Date: Tue May 28 21:28:11 2013 +0900
これは
git したユーザと
コミットした日付
snowpool
がユーザ
Date: Tue May 28 21:28:11 2013 +0900
が日付となる
initial commit
はメッセージ
これはプログラミングでよくつかうコメントアウトのようなもの
ちなみに、
git log –oneline
とすると
コンパクトに一行にまとまる
53d1566 initial commit
というように、IDとメッセージだけでる
53d1566
がID
initial commit がメッセージ
そして、一番使いそうな変更点のみの表示
これを見るには
git log -p
不通に git log
で出した部分に加え、変更点も表示される
diff –git a/index.html b/index.html
new file mode 100644
index 0000000..a29bdeb
— /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+line1
が今回でてきた部分
— /dev/null
は変更点なしということ
@@ -0,0 +1 @@
+line1
変わった行数と変わった内容がでる
@@ -0,0 +1 @@
が変わった行数
+line1
が変わった内容
git log –stat
とすると
どのファイルが何ヶ所変更されたか見る事ができる
今回は
index.html | 1 +
1 file changed, 1 insertion(+)
となっているので
index.html を1箇所変更しているということになる

git によるバージョン管理 コミット

git によるバージョン管理 コミット
まずは
myweb というディレクトリ作成
mkdir myweb
cd myweb/
で作業用ディレクトリに移動
git init
を実行すると git でこの myweb というディレクトリを使う
ということを宣言する
つまり関数の初期化のようなものらしい
成功すれば
Initialized empty Git repository in /home/snowpool/myweb/.git/
というようにでるので
そしたら次の段階へ
もしダメなら
git config –global core.editor vim
を実行する必要があるらしい
これで下準備はできたので
ファイルを作成
vim index.html
中身は適当で、ただバージョン確認につかうために作成
今回は再現できればいいので
line1
と書いて保存
ここまでできたら、インデックスへ登録
インデックスへ登録するには
git add を使う
今回なら
git add index.html
となる
インデックスへ登録したら
ようやくリポジトリへ登録
これは
git commit
を使う
すると、エディタが開くので
一番上にメッセージを書き込む
今回も再現をしたいので
initial commit
これをやりたいけど
なぜか ubuntu の場合
git commit
で起動したのは vim ではなく nano
下にヘルプがでているのでそこまで問題にはならないけど
使いなれた vim のほうがやりやすいので
Nanoの基本ガイド
http://www.gentoo.org/doc/ja/nano-basics-guide.xml
を見ながら
Ctrl + o で保存して
Ctrl + x で終了
git config –global core.editor vim
を実行して
nano から vim へ変更
履歴の確認をするには
git log
で見る事ができる

git によるバージョン管理

git によるバージョン管理
git とはバージョン管理につかうもの
公式サイトは
http://git-scm.com/book/ja

ドットインストールでは
Linux で
git
vim
を使っている
作業ディレクトリは
/home/ユーザとなっている
このあたりについては
#01 gitとは何か?
http://dotinstall.com/lessons/basic_git/6701
を参照
とりあえず、今回はgit の学習ということで
デスクトップの Ubuntu へインストール
参考にしたのは公式サイトの
インストールページ
http://git-scm.com/book/ja/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
sudo apt-get install git
でインストール完了
vim に関しては
sudo apt-get install vim
でインストールできる
ちなみに、
ディストリによってインストール方法が異なる
fedora
centOS の場合
yum install git-core
となる
git の概要としては
ファイル作成
修正
ある程度まとまったらDBへ保存
作業ディレクトリ
 ファイルの作成、修正など
インデックス
それぞれの状態、つまりバージョンの違いを保存
リポジトリ
ローカルとリモートがある
個人ならローカル
リモートはネット上でソース共有に使える
ドットインストールでは
ローカルのほう
準備完了できたら
#04 初めてのコミットをしてみよう
http://dotinstall.com/lessons/basic_git/6704
から
git の学習を開始

AWS のバーチャルホスト設定

value domain でドメイン取得したので
AWSで設定してみました
参考サイト
http://centossrv.com/apache-virtualhost.shtml

http://www.server-world.info/query?os=CentOS_6&p=httpd&f=6
まず、バーチャルホストのためのディレクトリ作成
cd /var/www/html
mkdir ドメイン名
どちらのサイトを参考にしても
NameVirtualHost *:80
の#を消すとあるので実行
しかしうまくいかないため
aws バーチャルホストで検索
http://qiita.com/items/075ccbf147ca8eb568b8
を参考にしたら、
元ドメインも定義しないとダメということなので
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName ドメイン名
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html/www.ドメイン名/
ServerName www.ドメイン名
</VirtualHost>
と最終行にいれて
apache2 再起動したら、独自ドメインが反映されたけど
バーチャルドメインはダメでした
つまり、
ドメイン名
はOK
でも
www.ドメイン名
はダメ
という状態でした
今回は value domain だったので、他のところも試してみようと思います

公開鍵認証ではまった事

公開鍵認証ではまった事
CentOS 6.4 64bit で
公開鍵認証でアクセスするように変更して躓き
解決したのでメモです
クライアントマシンは
Ubuntu 12.04 LTS 64bit
まず、Ubuntu で
Ctrl + Alt + t
で端末を開き
ssh-keygen -t rsa
で鍵を作成
パスワードを聞かれるので、任意のパスワードを入力
ssh-copy-id コマンドで転送できるので
ssh-copy-id ‘-p2222 snowpool@192.168.10.110’
で転送
書式解説すると
-p2222 は変更したポート番号
あとは
ユーザ名@IPアドレス
となっています
ポートを変更していないのなら
ssh-copy-id ユーザ名@IPアドレス
でOKです
その後
ssh-add ~/.ssh/id_rsa
を実行して
あとは
ssh -p 2222 192.168.10.110
でログインできるようになります
もし
ssh-add ~/.ssh/id_rsa
を忘れると
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
と表示されログインできません
このエラーがでることによりかなり悩みました
sshの公開鍵認証の設定でつまずいた
http://daily.belltail.jp/?p=112
を参考にすることで、無事解決しました
ポート変更後の
ssh-copy-id コマンドについては
How to use ssh-copy-id on a non-standard port
http://superuser.com/questions/446665/how-to-use-ssh-copy-id-on-a-non-standard-port
を参考にさせていただきました

linux-headers-3.5.0-30-generic インストール

VMware Player を起動しようとしたところ
カーネルがみつからないということで
必要なパッケージをインストール
uname -r
でカーネルバージョンを確認し
次に
sudo apt-get install linux-headers-3.5.0-30-generic
でインストール
あとは、普通に
vmplayer &
で起動して 管理者権限パスワードをいれれば無事アップデート完了

twitter のユーザ認証

twitter のユーザ認証
#07 ユーザー認証をしてみよう
http://dotinstall.com/lessons/tw_connect_php_v2/21907
を参考にユーザ認証について学習
認証したユーザーの情報を取得するためのAPIは
https://dev.twitter.com/docs/api/1.1/get/account/verify_credentials
を参考にする
認証に必要な callback.php を作成
ユーザ認証には
codebird.php を使うので
require_once(‘config.php’);
require_once(‘codebird.php’);
で読み込む
ファイルのパスに注意
初期化に
consumer key
consumer secret
が必要なので、これは定数から取得する
初期化のあたりは、
https://github.com/mynetx/codebird-php

1. Authentication
を参考にして、ほぼコピペ
Codebird\Codebird::setConsumerKey(‘YOURKEY’, ‘YOURSECRET’);

Codebird::setConsumerKey(CONSUMER_KEY, CONSUMER_SECRET);
というように定数に変更
$cb = \Codebird\Codebird::getInstance();
はそのままコピペ
ユーザ認証関連もコピペでOKらしいけど
https://github.com/mynetx/codebird-php

Or you authenticate, like this:
の下にコードが載っているが、バージョン変更されたのか
コードが微妙に違っているので
http://dotinstall.com/lessons/tw_connect_php_v2/21907
の部分を使ってみた
twitter で認証されると
GETで ’oauth_verifier’ が渡される
if (! isset($_GET[‘oauth_verifier’])) {
なので、もし渡されないならという意味
$auth_url = $cb->oauth_authorize();
header(‘Location: ‘ . $auth_url);
die();
では、 twitter 認証画面に飛ばしている
その場合、スコープ内の処理が実行される
認証できたなら
else のスコープの中の処理が実行される
‘oauth_verifier’
は認証完了したときに返ってくる値
$_SESSION[‘oauth_token’] = $reply->oauth_token;
$_SESSION[‘oauth_token_secret’] = $reply->oauth_token_secret;
はユーザが必要なAPIにアクセスするのに必要
$cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
でユーザが必要なAPIを使えるようにする処理
$me = $cb->account_verifyCredentials();
でユーザ情報をみることができる
ここまでできたら
var_dump($me);
で格納できているか確認
account_verifyCredentials();

codebird.php での twitter API を使ったアクセス方法
詳しくは
https://github.com/mynetx/codebird-php
3. Mapping API methods to Codebird function calls
を参考に

ツイッターでログインするWebサービス作成 

ホーム画面の作成
http://dotinstall.com/lessons/tw_connect_php_v2/21905
を参考に
/var/www/twitter/へ
index.php を作成
まず、
reqiure_once(‘config.php’)l
require_once(‘codebird.php’);
で必要なファイルの読み込み
このとき、注意点として
config.php

codebird.php

index.php とおなじディレクトリにおくこと
これを間違えるとファイルパスが違っていて
画面が真っ白になるので注意
ファイルの有無は
Linux なら ls コマンドをつかって確認可能
もし、別の場所におきたいのなら
require_once() のパスを変えること
これは、java の import
C の include と同じ
次に
HTMLタグを使って画面を作成
普通のHTMLと変わらないけど
a要素で
<a href=”logout.php”>ログアウト</a>
というようにログアウトする処理をつけること
そして、つぶやきのリスト表示のため
<ul>
<li></li>
</ul>
で場所を指定しておく
ファイルの編集はテキストエディタではなく
Eclipse を使用
ただ、あまり多くのプロジェクトが開いていると面倒なので
Ctrl[ + Shift] + W [全て]閉じる
で一旦今つかっているのを消しておきます
Eclipse と追加プラグインにより、
コードの記述が楽になるし、タイプミスが減るので
便利ツールは活用することをおすすめします
Eclipse にはショートカットキーがあり
これを知っていると作業効率があがります
http://dotinstall.com/lessons/tw_connect_php_v2/21906
を参考にログイン画面を作成
セッションを使うので、コードを追記
session_start();
でセッション開始
そして、ログイン判定をif で実装
ログインしているなら me に格納します
if (empty($_SESSION[‘me’]))
は me の中身が空ならという意味
header(‘Location: ‘.SITE_URL.’login.php’);

SITE_URL は config.php で
定義した定数で、サイトのURL
これは公開環境じゃなくて
ローカルIPでもOK
PHPでは . で java script の+連結みたいに使えるので
SITE_URL.’login.php’
http://192.168.10.248/login.php
という意味になる
これができたら、次にログイン画面作成
最初からつくるのは面倒なので
cp base.html login.php
でファイルをコピーし
内容を編集します
変更点として
a要素で
ログインするため、いろいろな処理をするのは
callback.php になっているので
<a href=”callback.php”>twitter でログイン</a>
というように、ファイルを指定します

twitter アプリのための設定

twitter アプリのための設定
#04 アプリの設定をしよう
http://dotinstall.com/lessons/tw_connect_php_v2/21904
に書かれているソースを
/var/www/twitter/config.php に追記していく
必要なものを定数として格納する
定数はPHPでは define() で行う
左が自作の定数
右がその内容
となる
つまり、メンテを考えると、非常に効率的
右の値を変えるだけで、簡単に変更ができる
define(‘DSN’, ‘mysql:host=localhost;dbname=dotinstall_tw_connect_php’);
では
ホスト名、DBの名前になる
今回なら
ホスト名 = localhost
DB名 = dbname=dotinstall_tw_connect_php
どちらも sql の設定で行ったもの
define(‘DB_USER’, ‘dbuser’);
これはユーザ名
grant all on dotinstall_tw_connect_php.* to dbuser@localhost identified by ‘**********’;
で作成した
@localhost の前にある名前
また
define(‘DB_PASSWORD’, ‘**********’);
はパスワード
*********は任意のものに変えてある
define(‘CONSUMER_KEY’, ‘********************’);
define(‘CONSUMER_SECRET’, ‘*********************************’);
これらは、
twitter のアプリの設定画面の
Details のところに載っている
define(‘SITE_URL’, ‘http://dev.dotinstall.com/tw_connect_php/’);
はサイトURL
error_reporting(E_ALL & ~E_NOTICE);
はエラー関連の表示
session_set_cookie_params(0, ‘/tw_connect_php/’);
はセッション範囲の指定

twitter アプリのためのDB作成

twitter アプリのためのDB作成
twitter アプリのユーザ情報を格納するので
DBを作成する
開発環境は Ubuntu12.04 64bit
すでに apache2 と PHP はインストール済みなので
MySQL を入れる
sudo apt-get install mysql-server
でインストールできる
install しているときに root 権限のパスワードを設定するのでパスワードを入力
この root は Ubuntu のではなくて
MySQL の root 権限
これで準備できたので
#03 データベースの設定をしよう
http://dotinstall.com/lessons/tw_connect_php_v2/21903
を参考にDBの作成
今回、アプリ作成のためディレクトリを作成
/var/www/twitter としてみた
前回ダウンロードした圧縮ファイルを
ここに解凍して置く
codebird-php-master/src/codebird.php
が使うファイルなので、
codebird.php

/var/www/twitter/
へコピーしておく
そしたら、DB の作成
動画では、PHPファイルを作成し
その中のものから コピペしているけど
sql ファイルにまとめておいて実行するということもできるので
今回はこの方法を使います
config.php のSQL部分のコピペを行い
vim setup.sql で sql ファイルを作成し
貼り付け
そのときにパスワードの
********************
を任意のパスワードに変更し保存
mysql -u root -p < setup.sql を実行すれば、sqlファイルの内容を実行することができます 作成できているか確認するには mysql -u root -p で mysql にログインして show databases; でDBを確認して dotinstall_tw_connect_php があるのを確認 そして use dotinstall_tw_connect_php で使用DBを切り替えて desc users; でテーブルの中身を確認 これでOKなら exit で mysql を抜けます