はじめに
macのバージョンをHighSierraにアップデートしてgit pushをサーバに実行するとエラーになりました。
ssh接続もできなくなっていました。
Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.
原因
sshクライアント側の使用している暗号がサーバ側で対応していない判断になりこのようになるそうです。
対応
ssh/confgファイルの設定を変更します
# vim ~/.ssh/config
下記の内容を追加します。これによりローカルクライアントでサポートされている暗号がリモートサーバーによって提供されている暗号と一致することを確認するために調整されます。
Host *
Ciphers +aes256-cbc
CentOSへ最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築するときのメモ
Rubyのインストールはrbenvを使用する。
rbenvはrubyのバージョン間の切り替えが行えるツール。
現時点でRubyの2.2.1が一番最新で安定版となっている。
※似たものでrvmがあるがrbenvのほうが簡単
参考:http://passingloop.tumblr.com/post/10512902196/difference-between-rbenv-and-rvm
Ruby環境(rbenv)を構築
Gitのインストール
$ sudo yum -y install git
rbenvインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
ruby-buildのインストール ※Rubyをインストールするためのrbenvのプラグイン
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenvを使用できるようにするためのPATH設定
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
設定の反映
$ source ~/.bashrc
設定の確認
$ type -t rbenv function
※functionと表示されればOK
Rubyインストール ※rbenvを使用
$ rbenv install 2.2.1
※rbenvでインストールできるlistは[rbenv install -l]コマンドで確認できる
Rubyインストールでエラー
BUILD FAILED (CentOS release 6.4 (Final) using ruby-build 20150303)
2.2.1のインストールでエラーとなったので改善
$ sudo yum -y install libffi-devel
参考:http://shiro-16.hatenablog.com/entry/2014/12/26/003810
再度Rubyインストール
$ rbenv install 2.2.1 Downloading ruby-2.2.1.tar.gz... -> http://dqw8nmjcqpjn7.cloudfront.net/5a4de38068eca8919cb087d338c0c2e3d72c9382c804fb27ab746e6c7819ab28 Installing ruby-2.2.1... Installed ruby-2.2.1 to /home/vagrant/.rbenv/versions/2.2.1
※これでOK
インストールバージョンをデフォルトで使用するように設定
$ rbenv global 2.2.1
バージョン確認
$ ruby -v ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-linux]
※これでOK
Rails環境を構築
Railsインストール
$ gem install rails -v 4.1.1
バージョン確認
$ rails -v Rails 4.1.1
※これでOK
gitのmakeインストールでバージョンを最新バージョンにする方法をメモ
デフォルトでインストールされているgitのバージョンが1.7.1のため、最新バージョン1.9.0(※2015/2/25現在)にアップデートする
最新バージョンの確認
下記サイトより最新バージョンのgitを確認
https://code.google.com/p/git-core/downloads/list
※現在はgit-1.9.0.tar.gz
インストールされているgitを削除する
デフォルトインストールされているgitはyum削除しておく
$ sudo yum -y remove git
gitインストールに必要なパッケージをインストール
インストール時に必要なためあらかじめインストール
$ sudo yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
makeインストール
ソースコードの展開ディレクトリへ移動(linuxの仕様上、ここが推奨されている)
$ cd /usr/local/src/
最新バージョンをインストールし解凍
$ sudo wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz $ sudo tar zxvf git-1.9.0.tar.gz
解凍ディレクトリへ移動
$ cd git-1.9.0
設定ファイルを作成
$ sudo ./configure
コンパイル
$ sudo make
makeインストール
$ sudo make install
インストールバージョン確認
gitインストール確認
$ git --version -bash: /usr/bin/git: そのようなファイルやディレクトリはありません
※「そのようなファイルやディレクトリはありません」エラーとなる
エラーの解決 ※シンボリックリンクを作成する
git の場所を確認
$ which git /usr/local/bin/git
※エラーで表示されている「/usr/bin/git」と場所が違う
シンボリックリンクを作成
$ sudo ln -s /usr/local/bin/git /usr/bin/git
再度インストールバージョン確認
$ git --version git version 1.9.0
正しいインストールしたバージョンが表示されればOK
不要ファイルの削除
ダウンロードしたファイルと解凍ファイルを削除 ※インストール終わったので不要
$ cd /usr/local/src/ $ sudo rm -f git-1.9.0.tar.gz $ sudo rm -rf git-1.9.0
WIP PR(Work In Progress Pull Request)の運用フロー(作業見える化)をメモ
コードレビューを最適化できるWIP PRについてメモしておく
WIPとは
WIPは作業途中(Work In Progress)という意味がある。通例としてgit上でwipといれたcommitを見かけた場合は、まだ作業途中という目印として使われる。一般的にcommit履歴が汚れるを嫌がり、ローカルではwipは合ってもサーバにはwipは上がらないようにする場合が多い。
※pull requestでwipがcommitメッセージについているのは基本ありえない。作業途中なcommitはpull requestしない。
WIP PR運用フロー
通常pull requestをすることがないwip状態のcommitをpull requestする考え方の運用フロー。
開発のフローとしてチーム全員の作業状況が分かり且つレビューワーは暇しない作業フローになる。
レビューワーは仕上がったpull requestを待つ事なく作業途中の過程を見る事ができるため戻り発生を減らす事に有効
これから作業をする場合に、事前にpull requestを作成して送る場合、gitは基本変更が合った場合にcommitを行うため、何も変更がない場合、commitもpull requestも行わない。
「変更がない」状態の空のcommitを作る事がgitではできるようになっているので、これから作業しようとしている内容をcommitメッセージに含めてcommit / pull requestを行うことで、wipのprフローを開始できる。
WIP PR運用フロー手順1(空のbranchを作成し作成したbranchへ移動する)
次の作業が分かりやすいブランチ名にしておく
git checkout -b feature/fizzbuzz
※masterのコピーとしておく
WIP PR運用フロー手順2(空のコミットを作成する)
commitメッセージはcommitの中身が分かる内容で。
git commit --allow-empty -m "fizzbuzz feature"
WIP PR運用フロー手順3(空のcommitをpushする)
git push origin feature/fizzbuzz:feature/fizzbuzz
WIP PR運用フロー手順4(pull requestする)
commitメッセージには通例[WIP]を入れておく
git pull-request -m "[WIP] fizzbuzz feature" -b upstream:master -h origin:feature/fizzbuzz
※hubコマンドが入っていない場合はgithubのブラウザ上からpull request
hubコマンドを使ってpull requestのコマンド
http://to-developer.com/blog/?p=1372
ここまでで空のwipをpull requestはOK
WIP PR運用フロー手順5(新規commitを更新する)
一旦作業が進んだら細かくコミットしてpushしておく
touch fizzbuzz.rb git add fizzbuzz.rb git commit --amend git push origin feature/fizzbuzz:feature/fizzbuzz
※commitオプションの–amendで以前のcommitを更新するとcommit履歴が汚くならない
これの繰り返しを行うことでレビューがシンプルに!
・・・・wip ・・・to be continued
githubに「pull request」を送れたりするhubコマンドを導入方法をメモ
hubコマンドはGitHub社が公開しており、githubに関する様々な処理をコマンドで実行する事ができるもの。
gitコマンドで既にできることを、シンプルなコマンドで解決したり、gitコマンドではないpull requestなどをコマンドで行う事ができるようになる。
※ 通常はgithubのブラウザからpull requestをする
またhubはgitコマンドを包括しており、hubコマンドでgitコマンドを全て使用することができるようになる。
hubのupstreamリポジトリのreadmeでインストールからコマンドの使い方まで載せているので参考にするとよい。
hubコマンドのリポジトリ:
https://github.com/github/hub
今回はmacでパッケージ管理はhomebrewを使用する
インストール
インストール
brew install --HEAD hub
設定
既存のgitコマンドは全てhubに置き換えられるようになる。
つまりは
git add .
は
hub add .
で、できるようになるが、慣れないためhubコマンドもgitコマンドで使えるようにalias設定をしておく
これはhubのreadmeに記載されている
シェルの設定ファイル:
eval "$(hub alias -s)"
※bashの場合は.bash_profile、zshの場合は、.zprofile
hubの使い方(git clone)
git cloneコマンドについてreadmeより、
git clone $ git clone schacon/ticgit > git clone git://github.com/schacon/ticgit.git $ git clone -p schacon/ticgit > git clone git@github.com:schacon/ticgit.git $ git clone resque > git clone git@github.com/YOUR_USER/resque.git
※gitはalias設定のhubをコールしているため、hubとしても動く
git cloneを行う場合にgithubのリポジトリ指定をなしにしてリポジトリ名のみで取得ができる。またはユーザ名の指定などもできるサンプル
これ以外にも省略できるコマンドはreadme参照
hubコマンドでpull request
git pull-requestコマンドについてreadmeより
# while on a topic branch called "feature": $ git pull-request [ opens text editor to edit title & body for the request ] [ opened pull request on GitHub for "YOUR_USER:feature" ] # explicit title, pull base & head: $ git pull-request -m "Implemented feature X" -b defunkt:master -h mislav:feature
オプションについて
-m : pull requestメッセージ
-b : プルリク先の指定
-h : プルリク元の指定
下記はつまり、メッセージが「Implemented feature X」でmislavのfatureブランチからdefunktのmasterブランチへpull requestのサンプルになる
git pull-request -m "Implemented feature X" -b defunkt:master -h mislav:feature
-mを指定しない場合は、指定しているエディターが起動する(commitと同様)ので指定のフォーマットで記載する
指定フォーマット:
[pull requestタイトル]
[改行]
[pull requestメッセージ]
使える便利コマンド
githubをブラウザで開いてリポジトリを参照するコマンド
git browse
githubをブラウザで開いてdiffを参照するコマンド
git compare
git compareコマンドについてreadmeより
$ git compare refactor > open https://github.com/CURRENT_REPO/compare/refactor $ git compare 1.0..1.1 > open https://github.com/CURRENT_REPO/compare/1.0...1.1 $ git compare -u fix > (https://github.com/CURRENT_REPO/compare/fix) $ git compare other-user patch > open https://github.com/other-user/REPO/compare/patch
The following untracked working tree files would be overwritten by merge:の解決メモ
gitでpullやfetchしたリモートブランチをmergeする場合にこのエラーが発生する場合がある
The following untracked working tree files would be overwritten by merge: 追跡されていないファイルは、マージにより上書きされる
.gitignoreで指定されているファイルがリモートブランチに存在する場合にでるらしい。
このエラーとなると、ファイルの取得ができずに困る。
[追記2014/6/15]
根本解決ではないため、.gitignoreに追加されているファイルをリモートから削除するほうが良い気がする
解決方法
リモートブランチの状態をfetchで取得し、リセット(reset)コマンドを実行すると強制的に取得できる
•まずはfetch実行
git fetch origin
※originがリモートブランチの場合
•fetchしたブランチにリセット(–hardで作業ディレクトリ、ステージングディレクトリ)
git reset --hard FETCH_HEAD
”FETCH_HEAD” で最後にfetchしたブランチの先頭の意(git fetch. で入手したコミットの先頭)
この状態でpullまたはmergeしたかった状態に作業ディレクトリ、ステージングディレクトリともになっている
git fetch した後に差分を確認する良くやるやり方についてメモ
gitでfetchで現在のリポジトリの最新版を取得した場合に、どのように変更が加えられているのかチェックしたいときがある。
その場合によく使うdiffの指定方法に付いてメモ
ローカルのHEADとリポジトリのHEADとの差分を確認
現在の ”ローカルの最新版(HEAD)” とfetchで取得した ”リポジトリの最新版(HEAD)”を比較する
git diff HEAD [リポジトリ/ブランチ名]
※[リポジトリ/ブランチ名]はfetchしたのを指定すれば良い
または
git diff HEAD..[リポジトリ/ブランチ名]
no-fast-foward状態になった地点からリポジトリのHEADとの差分を確認
”現在のローカルの最新版(HEAD)” とfetchで取得した ”リポジトリのHEAD” の共通の親(差分が発生している地点)から ”リポジトリのHEAD” との差分を表示。
つまり現在の自分のローカルにはない、リポジトリに加えられた差分だけを確認したい場合に使う。
これが一番差分が分かりやすくとても重宝するdiffの指定方法。
no-fast-foward = 早送りできない地点 (ブランチが分かれた地点)
git diff HEAD...[リポジトリ/ブランチ名]
ドットを三つ指定する
fetchしたらまずはリポジトリにのみ加えられた変更を確認することができるので便利
Untracked Filesになったファイル群を削除する方法をメモ
コミット履歴からresetした場合に、ローカルに存在するがreset元には存在していないファイルがある場合に、ローカルにのみ存在しているファイル群はすべて Untracked Files扱いになる。勝手に削除しないところがgitのいいところ。
ただ不要なファイルの場合はじゃまなので削除したい。
Untracked Filesはgitで追跡していないファイル群。もし再追跡する場合はaddすればよい。
Untracked Filesを削除する
まずは現在のUntracked Filesを確認
git status
# Untracked files:
# (use “git add
のリストで表示されているところがUntracked Filesとなる。
Untracked filesとして削除対象となるファイル群を確認
git clean --dry-run
※怖いので一応
削除して問題なければ削除
git clean -f
これで完了。
Githubのブランチを削除する方法をメモ
ローカルのブランチを削除する場合は下記コマンドで削除できるがgithubでは特定のブランチのみの削除ができない?かな
ローカルブランチの削除
git branch -d [ブランチ名]
githubのブランチを削除する
githubから削除できないため、ブランチをリモートにpushするのと同様で削除した情報をpushですれば削除可能。
githubブランチの削除
git push [push先リポジトリ] :[削除したいブランチ名]
[push先リポジトリ]の後に半角スペースがあるがこれが重要。
これで削除可能。
納得いかない場合はこれより下を参照。
git push 概要
git pushの詳細
git push [push先リポジトリ] [ローカルブランチ名]:[リモートブランチ名]
つまりブランチ削除時に[ローカルブランチ名]を空指定したことで空のブランチをpushという意味
【余談】
git push origin master
上記コマンドは下記コマンドの省略形
git push origin master:master
追記
githubブランチの削除を削除する場合は下記でも可能(というかこっちが正当)
git push --delete [push先リポジトリ] [リモートブランチ名]
自動化ツールGruntの開発環境構築をメモ
Webデザイナの間で流行っている(便利な)Gruntについて。
Gruntは主にWebデザイナの普段の作業を自動化するツールになる。
ブラウザのオートリロードやSass/Lessのコンパイル、minファイル(css,javascriptの縮小)作成の自動化、ファイルの結合、バージョン管理システムとの連携などの作業を自動化してくれる。
今回はオートリロードが動作するところまで確認する。
ブラウザのオートリロードを実現するためにはGruntのサーバとブラウザにクライアントツールを設置する必要がある。
オートリロードはファイル更新時のブラウザの更新Windowsの場合は「F5」MACの場合は「Ctrl + R」が自動化される。そのため作業の手間を1つ減らす事ができる。
node.jsとnpmのインストール
node.jsは非同期処理を実現するためのjavascriptライブラリ(リアルタイム処理が可能)でGruntを動かすためにはこれが必要となる。
npmはnode.jsのパッケージ管理ツールでnode.jsのプラグインをインストールしたりする場合に使用する。
公式サイトより「Install」ボタンを押下してファイルダウンロードしそのまま実行する。
基本的に変更しないで全て「次へ」でインストール完了
動作確認:
windowsの場合:
コマンドプロンプト(すべてのプログラム > アクセサリ)を立ち上げて下記コマンドを実行し、バージョン番号が表示されれば成功
macの場合:
ターミナルを立ち上げて下記コマンドを実行し、バージョン番号が表示されれば成功
node.jsのインストール確認
node -v
npmのインストール確認
npm -v
grunt-cliをインストール
gruntの実体をnpmパッケージ管理ツールでインストールする
npm install -g grunt-cli
※ -g オプションを入れることでグローバル領域にインストールされる
サンプルプロジェクトのダウンロード
オートリロードのサンプルをとりあえず動作させる。
まずはサンプルを下記よりダウンロード
https://github.com/y-matsumoto/grunt-sample
ディレクトリ構成について:
css
- base.css ※サンプルCSSのため好きなファイルへ変更して良い
- style.css ※サンプルCSSのため好きなファイルへ変更して良い
index.html ※サンプルHTMLのため好きなファイルへ変更して良い
Gruntfile.js ※Gruntの設定ファイル(パッケージ追加などはここで行う)
package.json ※npmの設定ファイル(基本的に一度作成したら手動では弄らない)
サンプルプロジェクトへGruntインストール
1.コマンドプロンプトでサンプルディレクトリへ移動する
※cdコマンド 参考:http://cmd-pro.com/com_00.html
2.インストールコマンドの実行
npm install
Gruntサーバの立ち上げ
Gruntサーバの立ち上げ
grunt
Running “watch” task
Waiting…
状態であれば成功
※基本的にこの状態でサーバが立ち上がっている状態のため常に起動しておくこと
Gruntクライアントツールのインストール
GoogleChromeやFireFoxヘクライアントツールのLiveReloadプラグインを導入する
下記参考サイトを参考に導入すると良い。
参考サイト:http://blog.sou-lab.com/livereload/
クライアントツールの起動
index.htmlファイルをプラグインをインストールしたブラウザで開き、LiveReloadのスイッチを入れる
※参考サイトを参考にすること
オートリロード動作確認
index.html、各cssを更新し、ファイルを保存しリアルタイムで更新されたら成功
※更新されるタイミングはファイルを保存したタイミングになる
それぞれのファイルの設定情報などについてはまた次回!
Android開発のgitignoreついてメモ
.gitignoreの設定をすぐに移行できるように残しておく
※環境はMAC OS でも Windowsでも不要なものは排除しておく
.gitignore
# Mac不要ファイル .DS_Store # Windows不要ファイル Thumbs.db # Java class files *.class # built application files *.apk *.ap_ # files for the dex VM *.dex # generated files bin/ gen/ # Local configuration file (sdk path, etc) local.properties # eclipse settings .classpath .project .settings/
.gitignoreをプロジェクトへ反映
.gitignoreはアカウント直下に設定しておく事とする
git config --global core.excludesfile $HOME/.gitignore
HerokuへFuelPHP環境を構築する手順をメモ
FuelPHP Advent Calendar 2013の23日目です。昨日は、@egmcさんの「FuelPHPがOpAuth対応になったのでfacebookログインをしてみる」でした。
以前まではサービスをリリースするときにはレンタルサーバを借りてサービスをデプロイすることが一般的でしたが、最近はPaaSと呼ばれるアプリケーションの動作環境をプラットフォーム上で一式提供されている形態を使う事が増えてきています。有名どころではAmazonのAWSやMicrosoftのWindows Azureなどがあります。
PaaSサービスのそれぞれの違いはスペック・料金・機能などがあり、レンタルサーバと比較した場合のPaaSのメリットはスケールアップ、アウトが簡単に行えることです。
サービスのユーザ数が大幅にふえてサーバに負荷がかかるようになった場合や、予想してた以上にユーザ数が延びなかった場合などに役立ちます。
個人的にはHerokuはRailsのアプリをテスト的に公開したくなったときなどに使ったりしています。もともとHeroku自体はrubyの環境用としてスタートしていて現在はjava,node.js,ruby,phthonなどをサポートしています。
現在Herokuではphpは非サポートとなっていますがphpも動作します。
Herokuコマンド参考ページ:http://d.hatena.ne.jp/xyk/20101102
————————————————————————————————–
試みたのは、下記サイトに記載されているbuildpackを使用してサーバはnginxを使用するつもりでしたが、
nginxのconfigファイルの設定がFuelPHPのプロジェクトに合わせるとなぜかうまくページが表示されず原因不明だったので今回は見送ることにします。すみません。
http://tkyk.name/blog/2012/11/28/php-on-heroku/
————————————————————————————————–
1.Herokuアカウントを取得
公式サイトより「login」押下して「signup」よりアカウントを取得します
公式サイト:https://www.heroku.com/
2.heroku toolbelt(ターミナルからherokuを操作するツール)をインストール
下記サイトよりtoolbeltを環境に合わせてインストールします
3.SSH公開鍵の設定
(1)ターミナルを立ち上げてloginコマンドを実行
$ heroku login Enter your Heroku credentials. Email: [1で作成したアカウントを入力] Password (typing will be hidden): [1で作成したアカウントのパスワードを入力] Authentication successful.
「Authentication successful.」でアカウント認証成功 ※「Authentication failed.」は失敗
(2)公開鍵をジェネレート
Could not find an existing public key. Would you like to generate one? [Yn] [Yを指定してエンター] Generating new SSH public key. Uploading SSH public key /Users/(PCユーザー名)/.ssh/id_rsa.pub Authentication successful.
「Authentication successful.」で成功
初期ログイン時に公開鍵を生成しなかった場合は手動で「ssh-keygen」で作成しherokuに公開鍵を設定する必要があります
ssh-keygenについては前記事参照http://to-developer.com/blog/?p=563
Herokuに公開鍵を設定する
$ heroku keys:add
※Herokuのgui画面から設定も可
4.fuelphpプロジェクトを生成
(1)アプリケーションを作成
$ oil create [アプリ名を入力]
(2)index.php作成
Herokuはrootディレクトリにindex.phpがないと動作しないため、今のところ空のindex.phpファイルを生成しときます
$ touch index.php
(3).htaccessを作成(fuelphpのディレクトリ構成に合わせてリダイレクト処理を入れる)
fuelphpディレクトリ構成のpublic/以下にindex.phpのアクセスをリダイレクト
参考サイト:http://blog.livedoor.jp/erscape/archives/6937126.html
$ vim .htaccess
.htaccessの設定情報
RewriteEngine on RewriteBase / RewriteRule ^(.+)-info\.php$ $1-info.php [L] RewriteCond %{SCRIPT_FILENAME} !^/app/www/public/ RewriteRule ^(.*)$ public/$1 [L]
(4)不要ファイル削除(サブモジュールなどはaddできないので削除)
$ rm -rf .git .gitmodules $ rm *.md $ rm -rf docs // 下記も不要なため削除 $ rm -fr fuel/core/ $ rm -fr fuel/packages/auth/ $ rm -fr fuel/packages/email/ $ rm -fr fuel/packages/oil/ $ rm -fr fuel/packages/orm/ $ rm -fr fuel/packages/parser/
※サブモジュールをaddする方法(git submodule addコマンド)
例)opauthサブモジュールの場合
$ git submodule add git://github.com/andreoav/fuel-opauth.git fuel/packages/opauth
5.ローカルリポジトリにコミット
$ cd [アプリ名を入力] $ git init $ git commit -am "initial commit"
6.buildpackをherokuへインストール
$ heroku create --buildpack https://github.com/winglian/heroku-buildpack-php [アプリ名を入力]
※アプリ名はここで入れなくてもデフォルトの名前が付けられる。gui画面などから確認・変更が可能
buildpack:https://github.com/winglian/heroku-buildpack-php
7.herokuのリポジトリへ反映
$ git push heroku master
※アプリが複数存在する場合、Herokuのリモートリポジトリが違いpushできない場合があるので都度確認が必要
※1 リモートリポジトリherokuの設定
$ git remote add heroku [リモートリポジトリ]
※2 リモートリポジトリ確認
$ git remote show
※3 リモートリポジトリ削除
$ git remote rm [リモートリポジトリ]
8.動作確認
$ heroku open
9.mysqlアドオンを入れる
無料版のアドオンを入れる場合も公式サイトからログインを行いクレジットカードの登録が必要です。
ただ無料版の場合は料金が引かれるなど初期費用なども基本ないようです。
mysqlのアドオンはhttps://addons.heroku.com/からsearchボックスに「mysql」と検索すると2013/12時点で4つのアドオンが見つかりました。
Adminium Full fledged admin interface without touching your app code heroku addons:add adminium
Amazon RDS Hook your app up to Amazon’s RDS heroku addons:add amazon_rds
ClearDB MySQL Database The high speed, 100% uptime database for your MySQL powered applications. heroku addons:add cleardb
Xeround Cloud Database αlpha Scalable, highly available, zero-management cloud database for MySQL heroku addons:add xeround
今回は「ClearDB」とする
参考サイト:http://www.ownway.info/Ruby/index.php?heroku%2Fhow%2Fmanagement%2Fdatabase%2Fcleardb
(1)公式サイトよりクレジットカード登録を行う
(2)アドオンをインストール
$ heroku addons:add cleardb:ignite Adding cleardb:ignite on tranquil-cliffs-2547... done, v6 (free) Use `heroku addons:docs cleardb:ignite` to view documentation.
インストール完了
(3)接続情報を確認
$ heroku config === tranquil-cliffs-2547 Config Vars BUILDPACK_URL: https://github.com/winglian/heroku-buildpack-php CLEARDB_DATABASE_URL: mysql://[ユーザ名]:[パスワード]@[ホスト名]/[DB名]?reconnect=true
※CLEARDB_DATABASE_URLに接続文字列が表示
CLEARDB_DATABASE_URL: mysql://[ユーザ名]:[パスワード]@[ホスト名]/[DB名]?reconnect=true
(4)シェル接続方法は?
mysql –host=[ホスト名] –user=[ユーザ名] –password=[パスワード] [DB名]
10.fuelphpプロジェクトからmysqlへ環境変数で接続
$cleardb = parse_url(getenv('CLEARDB_DATABASE_URL')); $conn = new PDO( sprintf("mysql:dbname=%s;host=%s", substr($cleardb['path'], 1), $cleardb['host']), $cleardb['user'], $cleardb['pass'] );
ここまででphp + mysql + apacheのFuelPHPが動作する環境の構築完了です
まとめ
Herokuにやや癖があり使いにくいと思ってしまった事もありましたが、慣れるとここまで行うのに15分程でできるとおもいます。一度環境を作ってしまえばあとの更新作業はすぐにできますね。
他のPaaSはあまり使った事がありませんが、動作確認程度の使用でしたらHerokuでいいと思います。
またHerokuから公式にphpがサポートされれば、もっとアドオン等増えてくるのではないでしょうか。
明日はクリスマスイブですね。いいことありますように!
githubで新規リポジトリ作成のあとのpushコマンドについてメモ
githubにリポジトリを生成しファイルをアップするときに必要となるremoteとpushコマンドについて。
Create a new repository on the command line
下記コマンドをそのまま実行する事でリポジトリにファイルをpush(アップ)することが可能
touch README.md git init git add README.md git commit -m "first commit" git remote add origin [サーバリポジトリURL] git push -u origin master
分かりにくいのは最後の二行かな
git remote add origin [サーバリポジトリURL] git push -u origin master
git remote add origin [サーバリポジトリURL]
のoriginはエイリアスでサーバのURLに別名を付けるために実行する。
別名を付けなくても良い場合にはこれはそもそも実行する必要なし
git push origin master
はorigin(サーバリポジトリ)へmaster(ローカルブランチ)をアップを実行する
masterをプッシュする場合には「-u」オプションを入れなくても良し
push = サーバへアップロード
origin = サーバリポジトリURL
master = デフォルトのブランチ名 (svnのtrunkと同じ)
git remote add で
エイリアスを付けない場合は
git push [サーバリポジトリURL] master
これで良い
masterの正式な形はmaster:masterのため
git push [サーバリポジトリURL] master:master
の形でも良い
gitリポジトリからサブモジュールを削除する手順をメモ
Gitリポジトリからファイルを削除するには「git rm」コマンドを使うがサブモジュールを削除する場合には「git rm」コマンドでは削除できないので対応法をメモ
不要ディレクトリの削除
下記3つをそれぞれ削除していかないと全てを削除する事はできない
•git/config
•gitmodules
•サブモジュールがあるディレクトリ
$ git config --remove-section submodule.SUBMODULE $ git config --file .gitmodules --remove-section submodule.SUBMODULE
$ git rm SUBMODULE rm 'SUBMODULE' fatal: git rm: 'SUBMODULE': Operation not permitted
オペレーションの許可がされていないと言われるので
–cachedオプションを付加してステージングからのみ削除する※作業ディレクトリは残る
$ git rm --cached SUBMODULE
作業ディレクトリからも削除
$ rm -rf SUBMODULE
gitでmarge又はpullでコンフリクトした場合の対処法をメモ
警告メッセージ「All conflicts fixed but you are still merging」
pull「git pull」はfetch、mergeを併せ持っているので
裏では同様にmarge時にコンフリクトが起きている
対処法1 [マージ元、マージ先を手動マージ]
1.マージを修正
2.コンフリクト起こしたファイルをステージング「git add .」
3.コミット「git commit」
※ 2,3をまとめて「git commit -a」
対処法2 [マージ元を採用]
「git checkout –theirs .」
対処法3 [マージ先(workディレクトリ)を採用]
「git checkout –ours .」
※「.」(ディレクトリ配下全て)ではなくファイル単位(ファイル名を指定)でも指定可
coffee-break
Don't write code that useless.
1日5杯はコーヒー、カフェオレ飲みます。狭心症のため安静にします☆松本 雄貴
Kotlinでサービスリリース目指す!
iOSでチャットアプリ作成中。自然言語解析LSIを習得中
Mac / Android・iOS / Rails / Oracle
2017年 Lpic L2取得
2012年 Android技術者資格取得
2010年 OracleMasterGold10g取得
2008年 CCNAQiitaもたまに投稿
https://qiita.com/y-matsumoto東京近郊で常駐開発探してる方はこちらよりご連絡ください
SES企業でパートナー会社を探している企業様はこちらよりご連絡ください
スプリットカメラ iOS / Android
音声認識で聞いた日付から曜日当てアプリ Android
ソーシャルタイマー Android
カテゴリー
- ActiveRecord (2)
- Android (52)
- AndroidStudio (10)
- Ansible (1)
- AWS (1)
- Bash (18)
- Blog (7)
- BootStrap (1)
- CentOS (16)
- Chef (1)
- css (2)
- Eclipse (5)
- error (1)
- Facebook (2)
- Firebase (1)
- FuelPHP (16)
- Git (22)
- GitHub (3)
- Gradle (2)
- GraphAPI (1)
- Grunt (1)
- heroku (2)
- illustrator (1)
- iOS (17)
- Java (4)
- Jenkins (1)
- jQuery (3)
- Kotlin (2)
- Mac (22)
- nginx (1)
- Node.js (3)
- peco (1)
- php (5)
- Python (1)
- Rails (16)
- Ruby (11)
- shell (1)
- SNS (1)
- Swift (2)
- tmux (2)
- Vagrant (6)
- Vim (6)
- windows (2)
- WordPress (3)
- zsh (4)
- フリーランス (1)
- ライブラリ (1)
- 勉強会 (2)
- 宣伝 (1)
- 未分類 (2)
最近の投稿
- [MAC]HighSierraでgitプッシュエラー「Unable to negotiate with xxx.xxx.xxx.xxx port xx: no matching cipher found. Their offer: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se fatal: Could not read from remote repository.」
- [iOS]iOS11からFacebook,Twitter連携(シェアなど)廃止の対応方法
- [iOS]速報2017AppleSpecialEventのiOS11、iPhone8など発表内容について
- [iOS][Firebase]The default Firebase app has not yet been configured. Add `[FIRApp configure];
- [iOS]2017年9月リリースのiOS11で開発者が対応するべきこと
- 今人気の現金化サービスCASH(キャッシュ)を使ったレビュー
- [Pandoc][Mac]pandocでmarkdownからwordファイル作成
- [Android]映画サマーウォーズの聞いた日付(誕生日)から曜日当てをアプリ音声認識で簡単に実現
- [Android]起動しているActivityを取得するadb shell コマンド
- [Android][Kotlin]kotlin学習で参考になるサイト一覧
2023年12月 月 火 水 木 金 土 日 « 5月 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 アーカイブ
- 2018年5月
- 2017年9月
- 2017年8月
- 2017年7月
- 2017年6月
- 2017年5月
- 2017年2月
- 2017年1月
- 2016年12月
- 2016年7月
- 2016年6月
- 2016年1月
- 2015年12月
- 2015年11月
- 2015年10月
- 2015年9月
- 2015年8月
- 2015年7月
- 2015年6月
- 2015年5月
- 2015年4月
- 2015年3月
- 2015年2月
- 2015年1月
- 2014年12月
- 2014年11月
- 2014年6月
- 2014年5月
- 2014年4月
- 2014年3月
- 2014年2月
- 2014年1月
- 2013年12月
- 2013年11月
- 2013年9月
- 2013年8月
- 2013年7月
- 2013年6月
- 2013年5月
- 2013年4月
- 2013年3月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年10月
- 2012年5月
- 2010年6月
エントリ