UbuntuにMySQLをインストール
環境
mysqlをインストール
まずはインストールされるバージョンを確認
まだ5.6は登録されていないみたいですね。
$ sudo apt-get update
$ apt-cache show mysql-server | grep Version
Version: 5.5.37-0ubuntu0.12.04.1
Version: 5.5.22-0ubuntu1
aptでインストール
$ sudo apt-get install mysql-server
$ mysql --version
mysql Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (x86_64) using readline 6.2
設定
設定ファイルはバックアップしておきましょう
$ cd /etc/mysql
$ cp my.cnf my.cnf.org
文字コードなどを設定
$ sudo vi my.cnf
下記を追記
[client]
default-character-set = utf8
[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8
設定を反映させるためmysqlを再起動
$ sudo service mysql restart
mysqlにログイン
$ mysql -u root -p
ステータスをチェック
mysql> status
--------------
mysql Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (x86_64) using readline 6.2
Connection id: 37
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.37-0ubuntu0.12.04.1 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 19 min 17 sec
Threads: 1 Questions: 112 Slow queries: 0 Opens: 171 Flush tables: 1 Open tables: 41 Queries per second avg: 0.096
--------------
起動、停止、再起動
$ sudo service mysql start
$ sudo service mysql stop
$ sudo service mysql restart
プロセスの確認
$ ps aux | grep mysqld
mysql 1461 0.0 4.2 492564 42912 ? Ssl 06:40 0:00 /usr/sbin/mysqld
hoge 3372 0.0 0.0 14572 948 pts/0 S+ 06:51 0:00 grep --color=auto mysqld
MySQLをGUIで管理
$ sudo apt-get install mysql-workbench
参考
Nginx, Unicornで作るRailsアプリ
環境
Railsアプリ
Railsはインストール済みとする。
とりあえず適当にプロジェクトの作成
$ rails new blog
nginxのインストール
aptでnginxの公式リポジトリを使うように設定する。
$ sudo vi /etc/apt/sources.list.d/nginx.list
nginx.listに下記を追記
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
PGP公開鍵を追加する必要があるらしい
$ curl http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
インストール可能なバージョンを確認
$ sudo apt-get update
$ apt-cache show nginx | grep Version
Version: 1.4.7-1~precise ## 最新のバージョンが確認できればおk
Version: 1.1.19-1ubuntu0.6
Version: 1.1.19-1ubuntu0.5
Version: 1.1.19-1
nginxのインストール
$ sudo apt-get install nginx
$ nginx -v
nginx version: nginx/1.4.7
nginxの設定
/etc/nginx/conf.d/default.conf
upstream backends {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name localhost;
location / {
if (-f $request_filename) { break; }
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://backends;
}
}
Unicornのインストール
Gemfileにunicornを追加
gem 'unicorn'
bundleでサクッとインストール
$ bundle install
設定ファイルの作成
config/unicorn.rb
# config:utf-8
# unicorn.rb
# process count
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 4)
# 15秒でWorkerをkillしてタイムアウト
timeout 15
# trueにしておくとダウンタイムが発生しないらしい
preload_app true
# 使用するポート番号を指定
listen 3000
# Capistranoを使うときに設定
pid "/path/to/rails/tmp/pids/unicorn.pid"
# ログの設定
stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT'])
before_fork do |server, worker|
old_pid = "#{server.config[:pid]}.oldbin"
if File.exists?(old_pid) && server.pid != old_pid
begin
Process.kill("QUIT", File.read(old_pid).to_i)
rescue Errno::ENOENT, Errno::ESRCH
end
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.connection.disconnect!
end
after_fork do |server, worker|
Signal.trap 'TERM' do
puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to send QUIT'
end
defined?(ActiveRecord::Base) and
ActiveRecord::Base.establish_connection
end
def rails_root
require "pathname"
Pathname.new(__FILE__) + "../../"
end
taskの作成
lib/tasks/unicorn.rake
namespace :unicorn do
# Tasks
desc "Start unicorn"
task(:start) {
config = rails_root + "config/unicorn.rb"
env = ENV['RAILS_ENV'] || "development"
sh "bundle exec unicorn_rails -D -c #{config} -E #{env}"
}
desc "Stop unicorn"
task(:stop) { unicorn_signal :QUIT }
desc "Resta unicorn with USR2"
task(:restart) { unicorn_signal :USR2 }
desc "Increment number of worker processes"
task(:increment) { unicorn_signal :TTIN }
desc "Decrement number of worker processes"
task(:decrement) { unicorn_signal :TTOU }
desc "Unicorn pstree (depends on pstree command)"
task(:pstree) do
sh "pstree '#{unicorn_pid}'"
end
# Helpers
def unicorn_signal signal
Process.kill signal, unicorn_pid
end
def unicorn_pid
begin
File.read(rails_root + "tmp/pids/unicorn.pid").to_i
rescue Errno::ENOENT
raise "Unicorn doesn't seem to be running"
end
end
def rails_root
require "pathname"
Pathname.new(__FILE__) + "../../../"
end
end
unicorn起動
$ rake unicorn:start
動作確認
http://localhost/ にアクセスできればおk
その他
参考
間違えてユーザーの所属グループを上書きしてしまった時
環境
- Ubuntu 12.04
所属グループが消えとるんだが(;´Д`)
よしhogeユーザーをnewgrpグループに追加しようと思い、下記コマンドを実行した
$ usermod -G newgrp hoge
その後に、sudoを使ったら何故かpermission denyとか言って怒られる。
何故だろうと思い$ id -a
で所属グループを確認したらnewgrp以外消えとるんだが(;´Д`)
どうやら$ usermod -G ...
だとグループの追加ではなく上書きで変更するらしい。
そんな事知らずに今まで使ってたんだが…
そんな訳で、一旦recovery modeでログイン
最初に登録されていたグループ一覧は
$ cat /etc/group- | grep hoge
で確認できるはず。
$ mount -o rw,remount / ## これをしとかないと次のコマンドを実行できないよ
$ usermod -G adm,cdrom,...,plugdev hoge
これで、グループが元に戻せるはず。
ユーザーの所属グループを追加したいとき
$ gpasswd -a hoge newgrp
これでいけるらしい。
参考
初めてのRuby on Rails
目的
Railsをインストールして動作確認する
環境
環境の確認
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
$ gem -v
2.2.2
Railsのインストール
Gemを使ってRailsをインストール
$ gem install rails
$ rbenv rehash ## rbenvを使っているので更新を反映
$ rails -v
Rails 4.0.4
Railsアプリケーション
Railsアプリを新規作成しサーバーを起動する。
ちゃんと起動できていれば http://localhost:3000/ にページが表示されるはず。
$ rails new blog
$ cd blog
$ rails server ## サーバー起動
参考
Macでシステム情報を確認する方法
Linuxでは /proc/cpuinfo
とかを見ればシステム情報がわかるが、
Macでシステム情報を見たいときは system_profiler
コマンドを使えばいいらしい
ハードウェア情報が見たいときはこんな感じ
$ system_profiler SPHardwareDataType
Hardware:
Hardware Overview:
Model Name: MacBook Pro
Model Identifier: MacBookPro11,1
Processor Name: Intel Core i5
Processor Speed: 2.4 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Memory: 8 GB
Boot ROM Version: MBP111.0138.B03
SMC Version (system): 2.16f58
Serial Number (system): ABCDEFGHIJKL
Hardware UUID: AAAAAAAA-BBBB-CCCC-3939-DDDDDDDDDDDD
取得できる情報一覧
$ system_profiler -listDataTypes
Available Datatypes:
SPParallelATADataType
SPUniversalAccessDataType
SPApplicationsDataType
SPAudioDataType
SPBluetoothDataType
SPCameraDataType
SPCardReaderDataType
SPComponentDataType
SPDeveloperToolsDataType
SPDiagnosticsDataType
SPDisabledSoftwareDataType
SPDiscBurningDataType
SPEthernetDataType
SPExtensionsDataType
SPFibreChannelDataType
SPFireWireDataType
SPFirewallDataType
SPFontsDataType
SPFrameworksDataType
SPDisplaysDataType
SPHardwareDataType
SPHardwareRAIDDataType
SPInstallHistoryDataType
SPNetworkLocationDataType
SPLogsDataType
SPManagedClientDataType
SPMemoryDataType
SPNetworkDataType
SPPCIDataType
SPParallelSCSIDataType
SPPowerDataType
SPPrefPaneDataType
SPPrintersSoftwareDataType
SPPrintersDataType
SPConfigurationProfileDataType
SPSASDataType
SPSerialATADataType
SPSPIDataType
SPSoftwareDataType
SPStartupItemDataType
SPStorageDataType
SPSyncServicesDataType
SPThunderboltDataType
SPUSBDataType
SPNetworkVolumeDataType
SPWWANDataType
SPAirPortDataType
rbenvで作るRuby開発環境 for Mac OS X
目的
環境
- OS X 10.9.2
- Homebrew 0.9.5
デフォルトで入ってるRubyの確認
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
Homebrew
Mac OS X 用のパッケージ管理ソフト
今回はこれを使ってRuby等をインストールしていく
インストール方法
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
rbenv
Rubyの環境切り替えツール
インストール方法
$ brew install rbenv ruby-build
パスの追加
## ~/.bash_profile に追加
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
profileを再読み込み
$ source ~/.bash_profile
Rubyのインストール
$ rbenv install -l ## インストール可能なRuby一覧表示
$ rbenv install 2.0.0-p451 ## ちょっと時間かかる(;´Д`)ハァハァ
$ rbenv install 2.1.0
$ rbenv install 2.1.1
$ rbenv rehash
$ rbenv versions ## インストール済みのRuby一覧表示
* system (set by /Users/owner/.rbenv/version)
2.0.0-p451
2.1.0
2.1.1
Rubyの切り替え
指定ディレクトリ内での切り替え
$ rbenv version
system (set by /Users/owner/.rbenv/version)
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
$ rbenv local 2.1.1
2.1.1 (set by /Users/owner/workplace/.ruby-version)
$ ruby -v
ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
とりあえずRubyの切り替えができるようになったのでおk?
Gemも環境別に設定できたほうがいいと思うが
Gemに関してはよく分かってない、というかRuby自体よく分かってないので
そこら辺は保留に・・・
参考
http://m-tkg.hatenadiary.jp/entry/2013/12/06/180650
http://qiita.com/emadurandal/items/a60886152a4c99ce1017
Markdown
Markdown
Markdown(マークダウン)は、文書を記述するための軽量マークアップ言語のひとつである。
Elements
- Block Elements
- Paragraph and Line Breaks
- Headers
- Blockquotes
- Lists
- Code Blocks
- Horizontal Rules
- Span Elements
- Links
- Emphasis
- Code
- Images
- Miscellaneous
- Backslash Escapes
- Automatic Links
Paragraph and Line Breaks
段落は1つ以上の空行によって区切られる連続したテキストである。
(スペースやタブしか含まれない行は空白としてみなされる)
改行<br/>を挿入したい時は行末に2つ以上のスペースを記述すればよい。
Markdownでは\nが改行に自動的に変換されるのではなく、明示的に改行を記述する必要がある。
Headers
MarkdownではSetextとatxの2タイプのヘッダーの表現方法をサポートしている。
Setext-styleのヘッダーは等号(=)とダッシュ(-)を使用したものである。
( = や - の数はいくつでもおk)
H1 Header
=========
H2 Header
---------
H1 Header
H2 Header
Atx-styleのヘッダーはH1~H6のヘッダーに対応し、1~6個のハッシュ記号(#)で表現する。
# H1 Header
## H2 Header
### H3 Header
#### H4 Header
##### H5 Header
###### H6 Header
H1 Header
H2 Header
H3 Header
H4 Header
H5 Header
H6 Header
また、オプションとしてatx-styleを閉じるときにハッシュ記号を記述してもよい。
(閉じるときのハッシュ記号の数に特に指定はない)
# H1 Header #
#### H4 Header ###########
H1 Header
H4 Header
Blockquotes
Markdownではemail-style > 記号を使用して引用を表現する。
メールで返信するときに > 記号を用いて本文を引用するのと同じような感じ。
> この文章を引用します。
> 2行目はここです。
>
> ### Markdownを使用することもできる
>
> echo "Hello World";
>
> > Blockquoteを入れ子にすることもできる
この文章を引用します。
2行目はここです。Markdownを使用することもできる
echo "Hello World";
Blockquoteを入れ子にすることもできる
Lists
Markdownでは順序ありのリストと順序なしのリストをサポートしている。
順序なしのリストは *, +, - 記号を使用して表現する。
* red
* blue
* green
----------
1. red
2. green
3. blue
4. black
5. white
----------
* red
- crimson
- pink
* blue
+ skyblue
* green
----------
* pタグで囲まない
* pタグで囲まない
----------
* pタグで囲む
* pタグで囲む
- red
- blue
- green
- red
- green
- blue
- black
- white
- red
- crimson
- pink
- blue
- skyblue
- green
- pタグで囲まない
- pタグで囲まない
pタグで囲む
pタグで囲む
Code Blocks
<pre>タグと<code>タグでcode blockを囲む。 code blockを生成するには4つ以上のスペース又はタブで字下げを行う。
echo "This is a code block";
echo "This is a code block";
Horizontal Rules
3つ以上の -, *, _ のみで行を記述することで<hr/>タグを表現することができる。
* * *
***
*****
- - -
---------------------------------------
Links
Markdownではinlineとreferenceの2タイプのリンクの表現方法をサポートしている。 両スタイルにおいてリンクは[]で区切られている。
inline-style [うまとま君の技術めも](http://umatomakun.hatenablog.com/ "タイトル")
相対アドレス [ファイトだよ!](/entry/2014/04/03/025107)
reference-style [うまとま君の技術めも][myblog]
[myblog]: http://umatomakun.hatenablog.com/ "タイトル"
[google]: http://google.com/ 'Google'
[yahoo]: http://yahoo.co.jp/ (Yahoo)
inline-style うまとま君の技術めも
相対アドレス ファイトだよ!reference-style うまとま君の技術めも
Emphasis
*, _ でテキストを囲むことで<em>または<strong>タグを表現することができる。
*em tag - asterisks*
_em tag - underscore_
**strong tag - asterisks**
__strong tag - underscore__
em tag - asterisks
em tag - underscorestrong tag - asterisks
strong tag - underscore
Code
` でテキストを囲むことでコードを表現することができる。
Use the `echo()` function.
``コード内ではバッククォートも使える (`) ``
Use the
echo()
function.
コード内ではバッククォートも使える (`)
Images
![Alt text](http://cdn-ak.f.st-hatena.com/images/fotolife/u/umatomakun/20140403/20140403204609.png "プロフィール画像")
![Alt text][image]
Automatic Links
URLとメールアドレスは自動リンクを生成するためのショートカットスタイルをサポートしている。
<http://example.com/>
<a href="http://example.com/">http://example.com/</a>
<a href="http://example.com/" target="_blank">http://example.com/</a>
<address@example.com>
http://example.com/
http://example.com/
http://example.com/
address@example.com
Backslash Escapes
次の文字はバックスラッシュでエスケープ可能。
\ backslash
` backtick
* asterisk
_ underscore
{} curly braces
[] square brackets
() parentheses
# hash mark
+ plus sign
- minus sign (hyphen)
. dot
! exclamation mark