vim-quickrunでjavaプログラムを実行する方法についてメモ
vim-quickrunというvimのプラグインを使い、javaプログラムを実行する
プラグイン提供元:
https://github.com/thinca/vim-quickrun
導入
.vimrcファイルにvim-quickrunをインストールするシェルを記述する
NeoBundleを使用:
NeoBundle 'thinca/vim-quickrun'
設定
日本語対応:
alias javac = javac -J-Dfile.encoding=UTF8 alias java = javac -Dfile.encoding=UTF8
let g:quickrun_config["java"] = {'exec' : ['javac -J-Dfile.encoding=UTF8 %o %s', '%c -Dfile.encoding=UTF8 %s:t:r %a']}
参考:http://qiita.com/kuhataku/items/120e0f2606f9d9e1666e
.vimrcの反映
:NeoBundleUpdate
使い方
現在のファイル(バッファー)を実行する
バックスラッシュ + r
現在のファイル(バッファー)を言語指定で実行する
:QuickRun java
現在のファイル(バッファー)を引数指定で実行する
:QuickRun -args "test"
参考:https://github.com/thinca/vim-quickrun/blob/master/doc/quickrun.txt
ctagsを設定して定義元クラス・メソッドへ遷移する方法をメモ
ctagはEclipseなどのIDEにはある定義元へ遷移する機能をvimなどのエディタで使えるようにするためtagを作成するためのもの。
プロジェクト(php,ruby,perl,javaなど)のコードから定義元のtagを作成する。このctagで作成したtagをつかうことで定義元クラス・メソッドへ遷移する機能を使用できるようになる仕組み。
tagは非常に開発で便利なので是非入れたほうが良い
ctagsインストール
Mac(homebrew)の場合:
brew install ctags alias ctags="`brew --prefix`/bin/ctags"
[alias ctags="`brew --prefix`/bin/ctags"]の部分はエイリアスのため、.bashrc,.zshrcなどのシェルに記載でもよい
参考:http://nob-log.info/2012/07/29/ctags-illegal-option/
設定したエイリアスの確認
alias
設定したエイリアスの削除
unalias [エイリアス名]
CentOSの場合:
yum install ctags
Ubuntuの場合:
sudo apt-get install exuberant-ctags
ctagsの設定
$HOME/に.ctagsのドットファイルを作成する
touch .ctags
--append=yes --recurse=yes --php-kinds=cfd --html-kinds=af --java-kinds=cfimp --ruby-kinds=cfm --perl-kinds
–append=yes ➡ tagsが既にあれば上書きではなく追加
–recurse=yes ➡ 配下ディレクトリを再起的にタグ作成するかどうか(-Rと同じ)
–[言語]–kind ➡ なんのタグを作成するかの設定(c=classなど)
参考:http://hp.vector.co.jp/authors/VA025040/ctags/help_j.html
対象言語拡張子の確認
対象言語の拡張子を確認:
ctags --list-maps
結果:
Ant *.build.xml Asm *.asm *.ASM *.s *.S *.A51 *.29[kK] *.[68][68][kKsSxX] *.[xX][68][68] Asp *.asp *.asa Awk *.awk *.gawk *.mawk Basic *.bas *.bi *.bb *.pb BETA *.bet C *.c C++ *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx C# *.cs Cobol *.cbl *.cob *.CBL *.COB DosBatch *.bat *.cmd Eiffel *.e Erlang *.erl *.ERL *.hrl *.HRL Flex *.as *.mxml Fortran *.f *.for *.ftn *.f77 *.f90 *.f95 HTML *.htm *.html Java *.java JavaScript *.js Lisp *.cl *.clisp *.el *.l *.lisp *.lsp Lua *.lua Make *.mak *.mk [Mm]akefile GNUmakefile MatLab *.m OCaml *.ml *.mli Pascal *.p *.pas Perl *.pl *.pm *.plx *.perl PHP *.php *.php3 *.phtml Python *.py *.pyx *.pxd *.pxi *.scons REXX *.cmd *.rexx *.rx Ruby *.rb *.ruby Scheme *.SCM *.SM *.sch *.scheme *.scm *.sm Sh *.sh *.SH *.bsh *.bash *.ksh *.zsh SLang *.sl SML *.sml *.sig SQL *.sql Tcl *.tcl *.tk *.wish *.itcl Tex *.tex Vera *.vr *.vri *.vrh Verilog *.v VHDL *.vhdl *.vhd Vim *.vim YACC *.y
※言語に拡張子を追加する場合は.ctagsへ–langmapを設定するとできる
tag作成
対象プロジェクトディレクトリ内で実行
ctags
※-Rオプションは不要(.ctagsで–recurse=yesに指定してるため)
ディレクトリ直下にtagsファイルが生成されていればOK
vim-tagsプラグイン導入
プログラミング中にあたらしく追加されたコードからtagを毎回作成するのを自動化してくれるvimプラグイン「vim-tags」を導入
※参考:https://github.com/szw/vim-tags
neobundleを使っている場合:
NeoBundle 'szw/vim-tags'
使い方:
:TagsGenerate
※これでtagを再構築してくれる
vimでの使い方
ショートカット:
定義へ移動 = Ctrl + ]
定義へ移動(複数ある場合にプロンプト表示)= g + Ctrl + ]
履歴戻る = Ctrl + t or Ctrl + 0 or :pop
定義へ移動で常に複数ある可能性を考えてvimrcにキーバインドを変更しておくと良い
nnoremap <C-]> g<C-]>
java.io.IOException: Cannot run program “sh”エラーの対応をメモ
シェルの実行で「ビルド実行」を行い、「コンソール出力」で確認するとエラーとなっている
[workspace] $ sh -xe C:\Windows\TEMP\hudson1301455313927193009.sh 指定されたファイルが見つかりません。 FATAL: コマンドの実行に失敗しました java.io.IOException: Cannot run program "sh" (in directory "C:\Jenkins\jobs\hello\workspace"): CreateProcess error=2, ?w?????t?@? at java.lang.ProcessBuilder.start(Unknown Source) at hudson.Proc$LocalProc.<init>(Proc.java:244) at hudson.Proc$LocalProc.<init>(Proc.java:216) at hudson.Launcher$LocalLauncher.launch(Launcher.java:780) at hudson.Launcher$ProcStarter.start(Launcher.java:360) at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97) at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535) at hudson.model.Run.execute(Run.java:1732) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:234) Caused by: java.io.IOException: CreateProcess error=2, ?w?????t?@? at java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.<init>(Unknown Source) at java.lang.ProcessImpl.start(Unknown Source) ... 16 more Build step 'シェルの実行' marked build as failure Finished: FAILURE
GitBashを導入している場合にシェル実行exeのパスが通らなくなっている。※これ以外でもあるかも
Git配下のsh.exeをシェルのパスとしてJenkinsに通すことで改善される
解決
Jenkinsブラウザ画面より
Jenkinsの管理 >> システムの設定 >> シェル
シェル実行ファイル
C:\Program Files (x86)\Git\bin\sh.exe
※デフォルトインストール先(Windows7の場合)のため変更してる場合は確認すること
Jenkinsより「ビルド実行」
Finished: SUCCESS
実行シェルの結果の最後で「SUCCESS」になればOK
Gitlabをサブディレクトリでアクセスしたら遅くなったので対応方法をメモ
[CentOS]Gitlabをサブディレクトリでアクセスできるようにする(およそ3分作業)
サブディレクトリでアクセス出来るように対応したら、速度が激減したので対応したやり方を忘れないようにメモ
vagrant,vpsなどにインストールされているcentosでも同作業。
もともとサブディレクとでなく、ルート直下「http://[ipアドレス/ホスト名]:8000」で動作させていた時は、ストレスを感じない速度だったが、サブディレクトリ対応「http://[ipアドレス/ホスト名]:8000/gitlab」をした途端に重くなった。
gitlabのページを開く時、別ページに遷移するときが全て時間がかかるようになった。
解決策
gitla-http.confファイルの編集で速度が元にもどった
参考:
http://qiita.com/tnamao/items/a7bb1ca868b594eaf788
gitla-http.confの編集
vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
< 修正1 >
下記箇所をすべてコメントアウト対応
#location ~ ^/(assets)/ { # root /opt/gitlab/embedded/service/gitlab-rails/public; # gzip_static on; # to serve pre-gzipped version # expires max; # add_header Cache-Control public; #}
< 修正2 >
下記locationの場所を修正
変更前
location / { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. try_files $uri $uri/index.html $uri.html @gitlab; }
変更後
location /gitlab { ## Serve static files from defined root folder. ## @gitlab is a named location for the upstream fallback, see below. alias /opt/gitlab/embedded/service/gitlab-rails/public; try_files $uri $uri/index.html $uri.html @gitlab; }
ここまでの対応を行い、速度が改善された。理由は・・・・わからない。
< 修正2 > でいうとaliasを付けて速度が改善したなら、ファイルのルートの場所がわからず探しているのに時間がかかっていたのか・・・
不明。
MacにRails環境を構築する方法をメモ
パッケージ管理ソフトはhomebrew、一からMacにRails環境を構築する方法と概要について。
Command Line Toolsインストール
Macで開発を行うためのコマンドラインツールをインストールする。
参考抜粋
——————————————————————————————————-
デベロッパ ポータルから直接、Xcode コマンド ライン ツールを .dmg ファイルとしてダウンロードすることができます。
Mac で https://developer.apple.com/downloads/index.action にアクセスします。
インストールの途中で Apple Developer としてログインするよう求められます。
[Downloads for Apple Developers]リストで、必要な[Command Line Tools]の項目を選択します。
——————————————————————————————————-
参考:
http://www.hulinks.co.jp/support/fortran/f_macosx018.html
Homebrewインストール
パッケージ管理ソフトのHomebrewをインストールする。Macにパッケージ類をインストールするためのソフト。
インストール
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
インストール確認(バージョンチェック)
brew -v
homebrewのバージョンが表示されれば成功
rbendインストール
Rubyのバージョン管理に使用するrbenvをインストールする。rubyのバージョンアップの切り替えをサポートするツール。
rbend,ruby-buildインストール
brew install rbenv ruby-build
rbendのパスを設定
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile echo 'export PATH="$HOME/.rbenv/shims:$PATH"' >> ~/.bash_profile source ~/.bash_profile
Rubyインストール
rbenvを使いrubyのインストール可能バージョンを確認
rbenv install -l
インストールしたいrubyを選びインストール
rbenv install (バージョン名)
例) 2.0.0-p353のrubyをインストールする場合
rbenv install 2.0.0-p353
※The Ruby openssl extension was not compiled. Missing the OpenSSL lib?エラーとなる場合
参考http://to-developer.com/blog/?p=1197
インストール確認
rbenv versions
関連ディレクトリの更新 ※しないといけない
rbenv rehash
参考
http://dqn.sakusakutto.jp/2014/02/rbenv_rehash_what_it_does.html
使用するrubyバージョンを設定
rbenv global 2.0.0-p353
rubyのバージョン確認
ruby -v
ここで2.0.0になっていれば成功
Railsインストール
ruby標準のダウンロードツール(コマンド)gemを使いインストールする。
RDoc(Documentation from Ruby Source Files)をインストール
gem install rdoc
※これをいれずにRailsをインストールすると、「file ‘lib’ not found」がでる
sudo gem install rails
Rails開発で入れておいた方が良いライブラリ群のインストール
Rails開発で使いそうなライブラリもgemでインストールする。
gem install bundler gem install mysql gem install sqlite3 gem install jquery-rails gem install rake gem install activerecord-postgresql-adapter gem install uglifier gem install json
Railsプロジェクト作成
新規Railsプロジェクトのディレクトリ作成
rails new [プロジェクト名]
tmuxの設定ファイルtmux.confの設定情報を変更して反映されない場合の対応をメモ
tmuxでキーバインドを変更したりしたあとに、開いていたtmuxをexitして再度tmuxを開いても反映されない。さらに、ターミナル(iTermを使用)を閉じた後に再度開いても反映されない。
解決方法
これはtmuxのプロセスが残っていて次回の起動時に前回のプロセスでセッションが起動してしまう事が原因。そのため反映されていない。
ではどうするか・・プロセスを殺して対応
まずは下記でtmuxのプロセスとプロセス番号を確認する
ps ax | grep tmux
tmuxのプロセスを全て殺す
kill -9 [プロセス番号]
再度tmux起動
tmux
これで反映されているはず。
自動化ツール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を更新し、ファイルを保存しリアルタイムで更新されたら成功
※更新されるタイミングはファイルを保存したタイミングになる
それぞれのファイルの設定情報などについてはまた次回!
標準出力と標準エラー出力についてメモ
毎回調べ直すことになっているので、メモメモ。さらに調べるのにまとまったサイトがなくて1つ1つ調べるはめになるので。まとめ
シェルによって違いがあるため今回はbashに限る
前提知識
【知識0】
unixコマンドは左から右に処理される。これは絶対
【知識1】
(標準入力 : 0)
標準出力 : 1 ※画面に出力される
標準エラー出力 : 2 ※画面に出力される
【知識2】
0,1,2はファイルディスクリプタと呼ぶ
【知識3】
「>」リダイレクト
シェルの結果を出力する場所を指定可能
command ファイル・ディスクリプタ> 出力先
※commandは何らかのコマンドかshファイルとしている
【知識4】
出力先などを特定のファイルディスクリプタに送りたい場合は「&ファイル・ディスクリプタ」とする
echo "standard output" >&2
【知識5】
/dev/nullはunixのスペシャルファイルで空ファイルの事
例えば下記はhoge.txtファイルを空にする
cat /dev/null > hoge.txt
標準出力とは
単純に画面に出力する文字列のこと(実行結果)
#!/bin/bash echo 'standard output'
標準エラー出力とは
シェルで実行時に発生したエラー・メッセージのこと(実行した結果コマンドエラーとなった出力)
標準出力ではなく標準エラー出力として出力する
#!/bin/bash echo 'standard error output' 1>&2
標準エラー出力のみ出力する
標準出力と標準エラー出力が表示される場合に標準エラー出力のみを表示する
#!/bin/bash command > /dev/null
※commandは何らかのコマンドかshファイルとしている
標準出力も標準エラー出力も出力しない
標準出力と標準エラー出力が表示される場合に標準エラー出力のみを出力する
#!/bin/bash command > /dev/null 2>&1
※commandは何らかのコマンドかshファイルとしている
1>&2
1の出力先を2の出力先にマージする ではなく 1の出力先を2の出力先と同じものに設定する ということらしい
「x>&y」は「x の出力先をyの出力先と同じものに設定する」が正しい
実践
■リダイレクトなしの場合
#!/bin/bash command
※commandは何らかのコマンドかshファイルとしている
標準出力 : 画面
標準エラー出力 : 画面
■標準出力のみファイルにリダイレクトする場合
#!/bin/bash command 1>file
※commandは何らかのコマンドかshファイルとしている
標準出力 : file
標準エラー出力 : 画面
■標準出力と標準エラー出力をファイルにリダイレクトする場合
#!/bin/bash command 1>file 2>&1
※commandは何らかのコマンドかshファイルとしている
標準出力 : file
標準エラー出力 : file
これはunixコマンドは左から右に処理されるため、まずは1>fileから処理される
標準出力 : file
標準エラー出力 : 画面
そして2>&1が処理されるため2の出力先を1の出力先と同じに設定したため
標準出力 : file
標準エラー出力 : file
このようになる
ここら辺を追って理解できれば知識として問題なしとしておこう
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がサポートされれば、もっとアドオン等増えてくるのではないでしょうか。
明日はクリスマスイブですね。いいことありますように!
MACでディレクトリ一括差分チェックする方法をメモ
windowsであればwindiffがあるが、macはあまり対応ソフトが少ない。diffコマンドでも可能だがGUIのほうが見やすいので使いやすいものをピックアップ。
いくつか使用したがstory + p4margeの組み合わせがディレクトリ差分と日本語差分に対応できるのでいいと思う
ただ差分ファイル名を取得するだけとかならdiffコマンドが楽
差分ファイル名取得コマンド)diff -rq ディレクトリ名1 ディレクトリ名2
storyをダウンロード・インストールする
公式サイトより
Japanese OSX PPCをダウンロードし実行する
p4margeをダウンロード・インストールする
公式サイトより
Visual Clientをダウンロードし実行する
Applicationsディレクトリへ移動しておく※次のパス指定で使用する
storyのdiffツールにp4margeを設定する
story.appを起動し下記に移動する
メニュー > 環境設定 > デフォルトアプリケーション
「テキスト差分ツール」に「別のアプリケーションを使用する」のラジオボタンをチェックして
「/Applications/p4merge.app/Contents/Resources/launchp4merge」を設定する
※p4margeをApplicationsへ保存した場合
storeを起動して差分実行
storeを起動して「ディレクトリの比較」ダイアログで比較対象のディレクトリを指定して「比較」ボタン押下で実行可能。
あとはwinmargeと殆ど変わらずファイルの差分がチェックできる
実機デバッグでdata/dataの中身を確認する手順をメモ
エミュレータの場合はDDMSで確認できるが実機の場合確認する事が出来ないので方法をメモ
※端末によりアクセスできない端末もある
android付属のshellを使用する
•接続
adb shell
•パッケージフォルダの中身にアクセス
run-as [パッケージディレクトリ指定]
上記の実行でディレクトリを確認できる。
あとは通常のshell同様にlsコマンドでディレクトリ中身確認、cdコマンドで移動が可能
EC2のインスタンスにssh接続する手順をメモ
「AWS Management Console」へログインしインスタンスを表示
sshの接続コマンドを取得
表示されているEC2インスタンスを右クリックし「connect」をクリックする
「Connect with a standalone SSH Client」のインスタンスを展開し「Example」へ
「Enter the following command line:」コマンドが表示されている。
sshコマンドをコピーする
ssh -i [pemファイル名] root@[ホスト名/IPアドレス]
[pemファイル名] は秘密鍵でAWSから取得したプライベートキー(.pem)を使用する
ターミナルでssh接続
取得したsshコマンドをそのままターミナルを立ち上げてペーストし実行する。
そのあと( yes/no )? でyesでエンターしログイン完了
※パーミッションエラーになる場合はアクセス権を600にすること(600以外ではだめ。理由不明)
pemはwindowsで抽出したものでもmacで使える。逆も。
いろいろな作業をする場合(インストールなど)はrootである必要があるため
「sudo su -」コマンドでチェンジ
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
の形でも良い
ssh-keygenコマンドで秘密鍵・公開鍵生成メモ
公開鍵・秘密鍵生成
1.ターミナルソフトを立ち上げて「ssh-keygen」実行。
2.Enter file in which to save the key (/Users/[ユーザ名]/.ssh/id_rsa): 保存先ファイル名を指定(デフォルトで良ければEnter)
3.Enter passphrase (empty for no passphrase): 任意のパスフレーズを設定
4.Enter same passphrase again: 上記パスフレーズの確認入力
5.確認:2で生成した場所にファイルが存在するか確認(デフォルトの場合は秘密鍵id_rsa,公開鍵id_rsa.pub)
完了
※fingerprintを後から確認するには「ssh-keygen -lf /Users/[ユーザ名]/.ssh/id_rsa」コマンドで確認可能
サーバに公開鍵設定
1.サーバの.sshを開き上記で生成した公開鍵(デフォルト:id_rsa.pub)の中身をコピー
2.コピーした内容をサーバのauthorized_keysへペースト(最後に改行必要)
ついでにGitHubへ公開鍵登録方法
1.githubへログイン
2.「edit your profile」から「ssh keys」を選択
3.「add ssh key」を押してtitleとkeyを設定
※titleは覚えやすい名前/keyは公開鍵の中の文字列(改行などをいれるのはだめ)
参考:http://git-scm.com/book/ja/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-SSH-%E5%85%AC%E9%96%8B%E9%8D%B5%E3%81%AE%E4%BD%9C%E6%88%90
macにnode.jsをインストールする手順のメモ
パッケージマネージャはhomebrewを使用する
Homebrewはmac os x用のパッケージマネージャ。Debianでいうところのapt-getに近いもの。macportというパッケージ管理もあるらしいが、homebrewの方が人気が上がっているという記事を読んだのでこちらを使用してみる。
パッケージマネージャがなくても、node.jsをダウンロードして解凍してインストールの3手順でできるけど、homebrewだと一発で入る
ちなみにコマンドでダウンロードする場合は以下 ※ mac os xはデフォルトでwgetは入っていない
curl -o node-v0.9.5.tar.gz http://nodejs.org/dist/v0.9.5/node-v0.9.5.tar.gz
node.js公式サイト: http://nodejs.org/
導入はおよそ1分の作業
手順1.node.jsをインストール
brew install node
——————————————————————————————
==> Downloading http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz
######################################################################## 100.0%
==> ./configure –prefix=/usr/local/Cellar/node/0.8.16
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
/usr/local/share/npm/bin
/usr/local/Cellar/node/0.8.16: 870 files, 13M, built in 2.5 minutes
——————————————————————————————
現在の最新版0.9.5なんだけど0.8.16が入った・・・・なんでだろう。まあいいか
あとnpmっていうrubyで言うところのgem、fuelphpで言うところのoilコマンドをインストールしたいところだけど、「Homebrew installed npm.」て書いてあるので、nodeインストールで自動的に入れてくれているっぽい
※1/7補足:brew info node とかでデフォルトでインストールされるバージョンが分かる。シェルでバージョンを変更することもできるそう。
npmのインストール確認
npm -v
これでバージョンが表示されればOK
手順2./usr/local/share/npm/binを環境変数に設定
.bashrcファイルに環境変数を設定する ※.bash_profileファイルでも同様
export PATH=$PATH:/usr/local/share/npm/bin
手順3..bashrcファイル反映
source .bashrc
※再起動でも良い
動作確認
公式サイトのトップにあるサンプルアプリhelloworldを動かす
1.ファイル作成
新規でexample.jsファイルを作成する
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
2.node.jsを実行
node example.js
3.ブラウザで確認
下記URLにアクセスしてhelloworldが表示されれば成功
http://127.0.0.1:1337/
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年5月 月 火 水 木 金 土 日 « 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月
エントリ