はじめに
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
はじめに
python3のインストール方法をメモします。
macはpython2はデフォルトでインストールされています。簡単なpythonファイルの実行であればそのままでできると思います。
2008年からpython3はリリースしていますが、現行でも2を使っているほうが多いように思いましたが、機械学習系のライブラリが充実しているためせっかくなので最新版のpython3をインストールします。
※なぜかライブラリが3にまだ対応していない場合があるので、使いたいライブラリに合わせたほうが良さそうです。
python3公式ドキュメント
https://docs.python.jp/3/tutorial/
pythonのデフォルトバージョン確認
mac標準でインストールしているpython2のバージョンを確認します
$ python –version
Python 2.7.10
python3をhomebrewでインストール
パッケージ管理のhomebrewを使いインストールします
$ sudo brew install python3
パスの設定をします(zshの場合は.zshrc)
export PYENV_ROOT=${HOME}/.pyenv
if [ -d "${PYENV_ROOT}" ]; then
export PATH=${PYENV_ROOT}/bin:$PATH
eval “$(pyenv init -)”
eval “$(pyenv virtualenv-init -)”
fi
python3のバージョン確認をします
$ python3 –version
Python 3.5.2
pythonのバージョンの管理ツールpyenvをインストール
Rubyのrvm(rbenv)のようなツールがpythonにもあるのでインストールします。
python2やpython3以外にもpythonの細かいバージョン毎にインストールまたは切り替えする場合に利用します。
公式githubリポジトリ
https://github.com/pyenv/pyenv
まずはインストールします
$ sudo brew install pyenv
インストールしたバージョンを確認します
$ pyenv –version
pyenv 20160726
pyenvの使い方
pythonをバージョン指定してインストールします。
今回は3.3.6と3.5.1をインストールします
$ pyenv install 3.3.6
$ pyenv install 3.5.1
インストールバージョンの確認をします
$ pyenv versions
* 3.3.6
3.5.1
*が付いている3.3.6が利用しているバージョンになります
バージョンの切り替えをします
$ pyenv global 3.5.1
バージョンの切り替えをします
$ python3 –version
Python 3.5.1
anaconda
anacondaはpython+ライブラリ(よく利用するもの)がセットになったものです。
そのため一般的にpython開発を使う場合はanacondaを入れるのがスタンダードのようです。
anacondaのインストール
インストールできるpythonのバージョンを確認します
$ pyenv install –list
anaconda3-と続くものがanacondaのパッケージになります。anaconda2はpython2系、anaconda3はpython3系になります。
バージョンを指定してanacondaをインストールします
今回はanaconda3-2.4.1とします
$ pyenv install anaconda3-2.4.1
バージョンの切り替えをします
$ pyenv global anaconda3-2.4.1
これでanacondaを利用可能です。
virtualenvとpyenv-virtualenv
pyenv以外にもバージョン関係でvirtualenvとpyenv-virtualenvがあります
はじめに
ターミナル起動時に画面に警告がでました。無視するで「y」で飛ばしてもいいのですが、毎回表示されるため消す方法をメモします。
zsh compinit: insecure directories, run compaudit for list.
Ignore insecure directories and continue [y] or abort compinit [n]?
原因
環境により違いがあると思いますが「compaudit」コマンドで何が影響か確認します。
$ compaudit
There are insecure directories:
/usr/local/share/zsh/site-functions/_carthage
/usr/local/share/zsh/site-functions/はzshでコマンド候補を文字するディレクトリです。
carthageはiosのパッケージマネージャで前回入れたものです。
対応:コマンドの警告を表示しないようにする
検索して調べると権限問題などで権限を755設定で解決するとありました。
http://qiita.com/ayihis@github/items/88f627b2566d6341a741
そもそもzshのワーニング表示を消したかったので、zshrcから警告を表示しない対応をします。
.zshrdファイルに次のシェルを追加します。(compinitの-uオプションを付けることで警告を無視します)
autoload -U compinit
compinit -u
これでターミナル起動時に警告が表示しなくなります。
はじめに
Carthage(カーセッジ)を使ったプロジェクトでswiftを2.2から3.0にコンバートした時に出たエラーを改善したメモを残します。
以下の2つのライブラリを取り込んでいたところエラーが表示しました
import Alamofire
import SwiftyJSON
原因
エラー内容
Module compiled with Swift 3.0 cannot be imported in Swift 3.0.2
swiftの3.0でコンパイルしたものを3.0.2でインポートすることはできないと言っているようです。
すでにコンパイルしているライブラリを持ってきていることが原因です。
解決
ソースコードを持ってきてローカル側でビルドすることで改善します。
carthageのupdateコマンドに–no-use-binariesオプションを追加することでバイナリを持ってこなくなります。
$ carthage update –no-use-binaries
最後にプロジェクトのクリーンを行いプロジェクトのビルドをすることで実行できました。
はじめに
1からMacにRails環境を構築する方法と概要についてメモします。
パッケージ管理ソフトはhomebrewを使用します。
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.3.0のrubyをインストールする場合
$ rbenv install 2.3.0
※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.3.0
rubyのバージョンを確認します
$ ruby -v
ここでバージョンが2.3.0になっていれば成功です。
失敗した場合、PATHを確認します
$ which ruby
/usr/bin/rubyなどの場合はPATHが正しくありません
PATHの設定を行います
下記はbashの場合の.bash_profileにパス設定を行いますが、zshなどの場合はファイルを変更してください。
echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bash_profile
echo ‘if which rbenv > /dev/null; then eval “$(rbenv init -)”; fi’ >> ~/.bash_profile
再度PATHを確認します
$ which ruby
/Users/*******/.rbenv/shims/rubyのようになっていれば成功です。
再度rubyのバージョンを確認します
$ ruby -v
ここでバージョンが2.3.0になっていれば成功です
Railsインストール
ruby標準のダウンロードツール(コマンド)gemを使いインストールします。
RDoc(Documentation from Ruby Source Files)をインストールします
$ gem install rdoc
※これをいれずにRailsをインストールすると「file ‘lib’ not found」がでます。
bundleライブラリを使ってrailsとその他gemをインストールする
Rails開発で使いそうなライブラリもgemでインストールしておきます。
gemをまとめて管理するためにbundleライブラリが用意されています。
gemfileにインストールするgemのリストを作るとインストールできます。
bundlerをインストールします
$ gem install bundler
gemfileの初期設定を行います。
bundle init
※カレントディレクトリにGemfileが作成されます。
Gemfileを次のように追加します。(よく利用するgemを仮にインストール設定します)
source “https://rubygems.org”
gem “rails”
gem “mysql”
gem “sqlite3″
gem “rake”
gem “uglifier”
gem “json”
gemのインストールを行います
$ bundle install –path vendor/bundle
Railsのバージョンを確認します
$ sudo rails -v
2016/12現在5.0.0.1が最新です
Railsプロジェクト作成
新規Railsプロジェクトの構成を作成します
$ sudo bundler exec rails new .
Gemfileを上書きするか聞かれますが、Yで上書きしてください。
Railsプロジェクト実行
Railsプロジェクトの直下でサーバを起動します
$ sudo bundler exec rails s
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode…
* Version 3.6.2 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
ブラウザでアクセスすることでRailsの初期画面が表示します。(起動を中止する場合はCtrl+Cです)
http://localhost:3000
はじめに
macにhomebrewを使用してhydraをインストールしてクラックをデモしてみます。
hydraインストール
hydraはパスワードクラック用のライブラリです。
あるサーバのftpやssh、basic認証のパスをクラックします。
クラックを推奨しているわけではなく、自サーバがブルートフォースにあった場合に突破されにくいかどうかをチェックするためです。汗
インストール
まずはhydraの概要をチェックします
% brew info hydra (git)-[master] hydra: stable 8.1 (bottled), HEAD Network logon cracker which supports many services https://www.thc.org/thc-hydra/ /usr/local/Cellar/hydra/8.1 (14 files, 1.2M) * Built from source with: --with-libssh From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/hydra.rb ==> Dependencies Build: pkg-config ✔ Required: openssl ✔ Optional: subversion ✘, libidn ✘, libssh ✔, pcre ✔, gtk+ ✘ ==> Options --with-gtk+ Build with gtk+ support --with-libidn Build with libidn support --with-libssh Build with libssh support --with-pcre Build with pcre support --with-subversion Build with subversion support --HEAD Install HEAD version
info情報の通り、opensshが必須です。インストールされていない場合(チェックになっていない)はインストールしてください
% brew install openssh
ではhydraをインストールします
libsshも必要なようなのでwithオプションでインストールします
% brew install hydra --with-libssh
これでインストールできました。
hydraのバージョンをチェックしてみましょう ※合わせてオプションを確認してみましょう
% hydra -v Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-SuvVd46] [service://server[:PORT][/OPT]] Options: -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -C FILE colon separated "login:pass" format, instead of -L/-P options -M FILE list of servers to attack, one entry per line, ':' to specify port -t TASKS run TASKS number of connects in parallel (per host, default: 16) -U service module usage details -h more command line options (COMPLETE HELP) server the target: DNS, IP or 192.168.0.0/24 (this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk cisco cisco-enable cvs ftp ftps http[s]-{head|get} http[s]-{get|post}-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-{cram|digest}md5][s] mssql mysql nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp redis rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs. Licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra Don't use in military or secret service organizations, or for illegal purposes. Example: hydra -l user -P passlist.txt ftp://192.168.0.1
-xオプションを使う場合のyosemite環境の対策
-xオプションはランダム(passlistがない場合 ※password辞書)なブルートフォースを行う場合に使えるオプションです。
/usr/includeディレクトリがない場合に-xオプションでエラーとなるため対応が必要です。
macのバージョンにより存在しないようでyosemite環境ではなかったです。marveric以降はないのかもしれません。
% hydra -x -h Hydra v8.1 (c) 2014 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes. [ERROR] -x option is not available as math.h was not found at compile time
※/usr/includeの直下にmath.hが必要です
以下のコマンドでダイアログが表示されるのでインストールしてください
% xcode-select --install
hydraでsshクラックデモ
今回はsshクラックのみ確認してみます
パスワードリストファイルを使用してブルートフォース
まずはパスワードリストファイルを作ります。適当です。
password 123456 abc123 hello testtest
※ファイル名はpasslistとしておきます
よく使われるパスワードトップ500について参考:
http://www.symantec.com/connect/blogs/top-500-worst-passwords-all-time
※ここにあるパスワードは個人でパスワードとしては使わないほうが安全です
フォーマット
hydra -l [ユーザ名] -P [パスワード辞書ファイル] [対象サーバIPアドレス] ssh
ではクラックします
% hydra -l root -P passlist 123.456.789.000 ssh
※ユーザ名はroot,サーバIPは123.456.789.000として確認します。ユーザ名もパスワード同様に-Lオプションでクラック可能です。
うまくパスワードをクラックすると以下のようなメッセージになります
1 of 1 target successfully completed, 1 valid password found
ランダム値を使用してブルートフォース(-xオプション使用)
フォーマット
hydra -l [ユーザ名] -x [パスワードパターン] [対象サーバIPアドレス] ssh
[パスワードパターン]は MIN:MAX:CHARSET形式で指定します
MINからMAXまでの範囲の文字数のパスワードを設定します ※4:6であれば4文字から6文字の範囲
CHARSETは、1指定で数字、a指定でアルファベット小文字、A指定でアルファベット大文字を指します
ではクラックします
% hydra -l root -x 4:6:1aA 123.456.789.000 ssh
※ユーザ名はroot,サーバIPは123.456.789.000として確認します。
うまくパスワードをクラックすると以下のようなメッセージになります
1 of 1 target successfully completed, 1 valid password found
はじめに
コマンドラインから打ったコマンドのインクリメンタルサーチ(逐次検索)が可能なpecoを導入してみました。
とても便利だったので忘れないようにメモしておきます。
peco導入
percolというインクリメンタルツールをGO言語に移行して日本人によりpecoが出来たようです。違いはGO言語のためインストールが簡単になったようです。
そのため元のpercolでも同様にできるので、どちらをいれても良さそうです。
環境はmacでパッケージ管理はhomebrew、シェルはzshです。
公式ページ
http://peco.github.io/
https://github.com/peco/peco
pecoインストール
homebrewでインストールを行います
$ brew tap peco/peco $ brew install peco
使い方
psコマンドでインクリメンタルサーチ表示
ps aux | peco
Query>入力モードになり、インクリメンタルサーチで探したいキーを入力するとピックアップされます。
また矢印キー(↓↑)で移動ができ、エンターで決定できます。
※Query>はエンターを押すと抜けることができます
これだけでも、 | grep を使うより便利になりました。
zshのhistory(Ctrl + r)をpeco表示にする
zshのhistory機能は大変便利ですが、それをpeco表示に変えてさらに扱いやすくします。
.zshrc設定/反映
.zshrcへ関数を定義します(peco-select-history)
キーバインドをzshのCtrl+rをオーバーライドする形で設定します。
function peco-select-history() { local tac if which tac > /dev/null; then tac="tac" else tac="tail -r" fi BUFFER=$(\history -n 1 | \ eval $tac | \ peco --query "$LBUFFER") CURSOR=$#BUFFER zle clear-screen } zle -N peco-select-history bindkey '^r' peco-select-history
設定反映
source .zshrc
使い方
ターミナルからCtrl + rを押すとpeco表示の履歴検索になります。とても便利でした。
peco導入
そのほか、pecoで関数を作成し、他コマンドと組み合わせていろいろできそうです。
Qiitaやブログの記事を見るとgitと組み合わせて使う場合が多い様です。
参考:
http://qiita.com/Kuniwak/items/b711d6c3e402dfd9356b
http://qiita.com/la_luna_azul/items/7998abd0379e8a3248f4
はじめに
iosの申請ではとくにスクリーンショットの画像を作成するのが手間になるので、忘れないように直にできる方法をメモしておきます。
申請時のスクリーンショットについて
5パターンの解像度に合ったサイズでスクリーンショットを載せる必要があり少しめんどくさいです。
スクリーンショットのため、対象のアプリを起動してiphoneでまず5枚(最低1枚)のスクリーンショットを撮ってください。
その画像を元に、リサイズ処理をするのが手っ取り早いと思います。
各申請サイズ一覧
画像サイズ | 備考 | |
3.5inch[iphone3/3GS/4/4S] | 640*920,620*960,960*640 | 最大5枚指定(最低1枚必須) |
4inch[iphone5] | 640*1096,640*1136,1136*600,1136*640 | 最大5枚指定(最低1枚必須) |
4.7inch[iphone6] | 750*1334,1334*750 | 最大5枚指定(最低1枚必須) |
5.5inch[iphone6] | 1242*2208,2208*1242 | 最大5枚指定(最低1枚必須) |
ipad | 768*1024 | 最大5枚指定(最低1枚必須) |
リサイズツールでリサイズ
画像のリサイズツールは検索すると沢山あるのでどれでもいいとは思いますが、macを使っている場合は「iMage Tools」というツールが使いやすかったのでおすすめです。
下記よりインストールをしてください
https://itunes.apple.com/jp/app/image-tools/id493949693?mt=12
起動したらスクリーンショット画像をドラッグでアプリに貼付けます。右側メニューのResizeをONにして、「Fix to Rectangle」を選択します。そこからwidth,heightを指定します。各サイズに合わせて指定し、startボタンでリサイズが実行されます。
アルファ(透過)の除去
iosの申請時に画像に透過画像がある場合、エラーメッセージが表示されて画像を指定できません。
そのため、アルファを除去する必要があります。macの場合、画像をダブルクリックでプレビューアプリが起動します。メニューの「ファイル」を選択し、「書き出す」でフォーマット(png,jpg,tiffなど)、アルファの指定ができます。
アルファのチェックを外し保存でアルファを除去できます。
はじめに
ssh認証でサーバにログインする場合にsshのconfigを設定しておくと楽になるのでやり方をメモしておきます。
設定しておくと、秘密鍵の指定や接続先ホスト名の指定を簡単にすることができます。
~/.ssh/configの使い方
configのフォーマットについて
~/.ssh/configファイルのフォーマット:
Host [ホスト名] HostName [リモートサーバIP] Port [ポート番号] User [ユーザ名] IdentityFile [秘密鍵のpath]
通常のssh接続
通常時のサーバ接続:
$ ssh [リモートサーバIP]
config設定をした場合のssh接続
configファイルの作成:
$ vim ~/.ssh/config $ chmod 600 ~/.ssh/config
configファイル編集:
Host hoge HostName [リモートサーバIP]
※hogeという名前でエイリアスを設定
config設定時のサーバ接続:
$ ssh hoge
はじめに
ssh認証で公開鍵をサーバに保存する場合に、scpコマンドでファイルをサーバに転送していましたが、もっと便利なコマンドを知ったので忘れないようにメモしておきます。
ssh-keygenについてはこちら:
[MAC]ssh-keygenコマンドで秘密鍵・公開鍵生成
sshで公開鍵をサーバに転送する
ssh-keygenにより作成した公開鍵はssh-copy-idコマンド(shell)を利用する事で簡単にできます。
ssh-copy-idの使い方
~/.ssh/id_rsa.pubの公開鍵をサーバに転送する場合:
$ ssh-copy-id [ユーザID]@[リモートサーバ]
~/.ssh/id_rsa.pub以外の公開鍵をサーバに転送する場合
$ ssh-copy-id -i [公開鍵のpath] [ユーザID]@[リモートサーバ]
ssh-copy-id実行時にエラー「ERROR: No identities found」がでる場合
エラーの原因は対象サーバに「~/.ssh/authorized_keys」が存在しない場合です。
そのため、サーバにauthorized_keysを作成します。
$ touch ~/.ssh/authorized_keys $ chmod 600 ~/.ssh/authorized_keys
Vagrant(CentOS) + VirtualBoxでRailsの開発環境を構築するときのメモ
Vagrantは、仮想化マシン(VirtualBox,VM etc)の自動作成・管理ツール。
今回はVirtualBoxでCentOSを使用し、Railsの環境を構築しておく。
一度テンプレート化しておくと、次回以降に同様の環境を作成するのが楽になる。
公式サイト:
Vagrant
https://www.vagrantup.com/
VirtualBox
https://www.virtualbox.org/
Vagrant + VirtualBoxダウンロード・インストール
OSにあわせて公式サイトよりダウンロードを行う
現在2015/3/2時点でCentOS[7.0],Vagrant[1.7.3],VirtualBox[4.4.2]のバージョンが最新となっている
Vagrant:
https://www.vagrantup.com/downloads.html
VirtualBox:
https://www.virtualbox.org/wiki/Downloads
ダウンロードしたdmgやmsiファイルからインストール作業を行う
※ウィザードに従いそのままインストールで良い
Vagrantのバージョン確認
バージョン確認:
$ vagrant -v Vagrant version 1.7.3
※インストールバージョンが表示されればインストールOK
Box(CentOS)のテンプレートを取得
Boxリンクが集まっている有名サイト:
http://www.vagrantbox.es/
https://vagrantcloud.com/boxes/search
※今回はCentOS7の最新で仮想ソフトにVirtualBoxを使用しているBoxを選択する:
https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box
Boxの追加コマンド:
$ vagrant box add centos https://f0fff3908f081cb6461b407be80daf97f07ac418.googledrive.com/host/0BwtuV7VyVTSkUG1PM3pCeDJ4dVE/centos7.box Downloading or copying the box... Extracting box... Successfully added box 'centos' with provider 'virtualbox'!
※centos部は任意のboxの名前
「Successfully added box ‘centos’ with provider ‘virtualbox’!」のメッセージが表示されればOK
Boxの確認:
$ vagrant box list centos (virtualbox)
Box(CentOS)のテンプレートから仮想マシンを作成
仮想マシン作成のディレクトリを作成し移動
$ mkdir RailsEnv $ cd RailsEnv
仮想マシンを作成
$ vagrant init centos
※centosはboxに任意につけておいた名前を指定
仮想マシンの起動
仮想マシンの起動
$ vagrant vp
※Vagrantfileの設定情報を読み込み起動する
仮想環境のアクセス(設定)
仮想環境にssh接続を行う
$ vagrant ssh
仮想環境の設定・ツールインストールなど
ファイアーウォールを切っておく ※ローカル環境のためセキュリティは無視
$ sudo service iptables stop $ sudo chkconfig iptables off
vimをインストール
$ sudo yum -y install vim
仮想マシンへブラウザからアクセスするための接続設定 ※Vagrantfileの編集
仮想マシンを抜ける
$ exit
Vagrantfileの編集
$ vim Vagrantfile
ネットワークアクセスのconfigのコメントアウトを解除する(#を消す)
デフォルト設定されている「192.168.33.10」でアクセスができるようになる
# Create a private network, which allows host-only access to the machine # using a specific IP. config.vm.network :private_network, ip: "192.168.33.10"
※ 仮想マシンの/var/www/htmlディレクトリへアクセスされる
Vagrantfileの設定反映
$ vagrant reload
仮想マシンの「/var/www/htmlディレクトリ」とローカルの「仮想マシンディレクトリ」のリンク設定
シンボリックリンクを設置
$ vagrant ssh $ ln -s /vagrant /var/www/html/
※ Vagrantでは仮想マシンの「/vagrantディレクトリ」はローカルの「仮想マシンディレクトリ」とリンクしている
Ruby/Rails環境を構築
以前の記事「最新・安定版のRuby2.2.1(rbenv) / Rails4.1.1環境を構築する」の通り環境を構築する
ここまでで構築完了!
tmux上でmacコマンドpbcopy,pbpaste(クリップボードのコピーペースト)を使用できるようにする方法をメモ
tmux上でpbcopyを実行してもクリップボードにコピーされなかったので忘れないようにメモ
tmux上でクリップボードに保存するにはこちら方法でも可能
[tmux]tmux上でviモードでクリップボードにコピーする方法
参考:
https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard
検証
testという文字列をクリップボードにコピー
echo test | pbcopy
コピーの終了コードを確認(成功は0 失敗は1)すると1になっている
echo $?
クリップボードのコピーがうまくいっていない
解決方法
こちらで導入したreattach-to-user-namespaceが必要
[tmux]tmux上でviモードでクリップボードにコピーする方法
reattach-to-user-namespaceインストール
brew install reattach-to-user-namespace
tmux.confの編集(下記コードをtmux.confに追加)
set-option -g default-command "reattach-to-user-namespace -l bash"
※シェルがzsh等の場合は最後bashでなく置き換える事
tmux.confの設定を反映
tmux kill-server
再検証
testという文字列をクリップボードにコピー
echo test | pbcopy
クリップボードに保存されていればOK
rbenvで2.0.0系のrubyインストール時のエラーの改善方法メモ
rbenvを使って2.0.0系をインストールをした時に表示されたエラー
環境はMac
Installing ruby-2.0.0... BUILD FAILED Inspect or clean up the working tree at /var/folders/_0/zkqz91qx18d3849bmjzhk5jh0000gn/T/ruby-build.20140416205643.91789 Results logged to /var/folders/_0/zkqz91qx18d3849bmjzhk5jh0000gn/T/ruby-build.20140416205643.91789.log ~~~~~~省略~~~~~ The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
エラーとなりインストールができない。
改善方法
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
オープンSSLのLIBが足りない・・・
ライブラリがOpenSSLが足りていないエラーのためインストール
brew install openssl
brew install readline
※ここら辺はxcodeのバージョンが低いとエラーとなるため、xcodeも最新をいれたほうがよい
ライブラリを指定してインストール
$ RUBY_CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl`" rbenv install 2.0.0-p353
※参考2.0.0-p353の場合
インストール確認
rbenv versions
ではインストール成功したので
関連ディレクトリの更新 ※しないといけない
rbenv rehash
使用するrubyバージョンを設定
rbenv global 2.0.0-p353
※参考2.0.0-p353の場合
これで完了
macのファンが五月蝿いときのメモ
mac起動して再起動してもファンが直に回り出して五月蝿くなった場合の対処方法をメモ。
必ずしもではないが、macのハードウェアの情報が保存されているところで、ここが原因でパソコンが起動しなくなったり、ファンが五月蝿くなったり、ハード系で問題があった場合の最後の対応として使うと助かるかも。
やり方
1.マックの電源を一度切る
2.マックの電源を入れる
3.Appleマークがでてmacの起動音(ダーン)という音と同時に「command + option + P + R」を押す
4.成功したらもう一度macの起動音(ダーン)がなる。(ここでPRAMがクリアされる)
公式:
http://support.apple.com/kb/PH11243?viewlocale=ja_JP&locale=ja_JP
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がサポートされれば、もっとアドオン等増えてくるのではないでしょうか。
明日はクリスマスイブですね。いいことありますように!
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年6月 月 火 水 木 金 土 日 « 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 アーカイブ
- 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月
エントリ