forget for get

覚えるために忘れる

apacheでバーチャルドメインの設定


apacheでバーチャルドメインの設定を簡単にメモ。

/etc/httpd/conf/httpd.confに以下を追記
NameVirtualHost *:80
Include /etc/httpd/conf/virtualdomain/httpd-oreore.conf

/etc/httpd/conf/virtualdomain/httpd-oreore.confは以下のように書く。
<VirtualHost *:80>
    DocumentRoot /var/www/html/oreore/
    ServerName oreore.jp
</VirtualHost>

apacheの再起動を忘れずに。
再起動の前に設定が間違っていないかは以下のコマンドでチェックできる。
apachectl configtest

hostsファイルを以下のように編集
192.168.xx.xx       oreore.jp
詳しくは「hostsファイルを編集してローカルサーバにテストドメイン名で接続する」を参照。

これで、ブラウザで「http://oreore.jp」でアクセスできる。

hostsファイルを編集してローカルサーバにテストドメイン名で接続する

ローカルサーバにテストドメイン名で接続したい場合、
hostsファイルを編集するとよい。

Windows7の場合
メモ帳を右クリックして「管理者として実行」する。
「ファイル>開く」で
C:\Windows\System32\drivers\etc\hosts
を開き、以下のように追記する。
--
192.168.xx.xx       testdomain.jp
--

すると、ブラウザで「testdomain.jp」にアクセスすると、「192.168.xx.xx」につながる。

Laravelでドキュメントルートを変えずに複数サイト運営するTips


Laravelを使うには、publicディレクトリをドキュメントルートにしないといけないのですが、
レンタルサーバなどでドキュメントルートを変更できない場合の対応。
また、小規模サイトの場合、サイトごとにLaravelを使うよりは、
一つのLaravelでルーティングで複数サイトを使いたいという場合の対応。

ディレクトリ構成のイメージ

laravel/app/routes.php
       /public/
       
mypage/.htaccess
      /css/
      /js/

yourpage/.htaccess
      /css/
      /js/


mypage/.htaccessを以下のようにする。(yourpage/.htaccessも同じ)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ ../laravel/public/index.php [L]

すると、「http://ドメイン/mypage/xxx」のアクセスをLaravelで受け取れる。(yourpageも同じ)

laravel/app/routes.phpを以下のようにする。

Route::group(array('prefix' => 'mypage'), function()
{
    Route::get('/', 'MyPageController@index');
    Route::get('/news', 'MyPageController@news');
});

Route::group(array('prefix' => 'yourpage'), function()
{
    Route::get('/', 'YourPageController@index');
    Route::get('/news', 'YourPageController@news');
});


prefixでまとめることで、複数サイトも管理しやすい。

ただ、ドキュメントルートにLaravel本体を置くのはセキュリティ上よろしくないと思うので、
正しい解決策ではないかもしれません。

知識の広げ方-Q&Aサイトで質問に答えまくる

最近「teratail」の広告を見ることが多いのですが、こういうQ&Aサイトの活用方法として、質問に答えまくるというのがあります。

ヤフー知恵袋とかStackOverflowとかなんでもいいですけど、

質問に答えていくことで知識を広げていけます。

仕事でもつまずいたら検索して答えをみつけて知識が広がっていくと思うのですが、

Q&Aサイトにはそういうつまずきポイントが山ほど転がっているので、

効率よく知識を広げていけるかと思います。

 

エンジニア特化型Q&Aサイト【teratail】

仕事中など、座りながらできる運動まとめ

プログラマをやっていると、一日中座って作業するので運動不足になります。

中年になってくると基礎代謝も落ちるので、お腹周りのお肉が気になってきます。 

また、同じ姿勢を長く続けていると、血流が悪くなり、筋肉も硬くなり、肩こりや腰痛などのトラブルになります。

 

プログラマに限らず、事務職など、長時間座りながら仕事をする人にとって、これは大きな課題です。

なにか良い手はないものか、、
と考え、仕事中に座りながらできる運動をネットで調べてみました。

仕事中に運動・トレーニングができれば、貴重なプライベート時間を消費することなく健康的な肉体を手に入れることができて素敵です。

以下、まとめ。

・腕
腕引き
両手を体のお腹の前あたりで組み、左右に引っぱる。

机持ち上げ
机の下に両手をいれて机をもちあげるように力をいれる。(実際に机をもちあげなくてよい)

腕組み
背すじを伸ばしてイスに座り、腕組みをした腕をプルプル震えるくらい強く締めつける。腕の上下を変えて同じように締めつける。

・腹筋
椅子に座りお腹にぐっと力をいれ、30秒間キープする。

・背筋
背筋のばし
伸びをするように腕を上に上げて、そのまま肩胛骨を挟むように後ろに回しながら腕を下に降ろす。そのまま肩をグイッと下げてお腹に力を入れる。気がついた時にこの体勢で座っていれば背筋がつく。さらにこの方法を繰り返すと姿勢もよくなるので一石二鳥だ

キャット
① 椅子に座り、2秒かけて胸を張り、背中を反らせる。
② 4秒かけて背中を丸める。
③ ①、②の繰り返し。

ウイング
① 椅子に座り、両腕を前方につきだす。
② 2秒かけて両ひじを後ろへ引き、左右の肩甲骨を寄せる。
③ 肩甲骨を寄せた状態を8秒間キープする。
④ 2秒かけて両腕を前方につきだす。
⑤ ②~④の繰り返し。

胸筋
胸の前で両手の手のひらを合わせ、肘を張る。その状態で両手を押し合うように力を入れる。

・脚
レッグ・レイズ
① 椅子に座り、両足をそろえる。
② 2秒かけて両足をもちあげる。
③ 4秒かけて両足をおろす。
④ ②、③の繰り返し。

ももの筋トレ
両手で片ももを上から力一杯押さえつける。この間、足は力一杯上に押し返す。

内ももの筋トレ
両ひざ同士を内側に向けてギューッ!と押し合う。

・尻
お尻の中心にギュッと集めるようにお尻に力を入れる。その状態をキープする。

TeraTerm 自動ログインマクロ

毎日TeraTermでサーバに接続して作業するときに、毎回IP、ユーザ名、パスワードを入力するのはめんどくさい。
TeraTermのマクロを1度つくれば、あとはダブルクリックで簡単に接続できる。

・簡単パターン(IP、ユーザ名、パスワード固定)

connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'

上記をファイル名.ttlで保存し、ttpmacro.exeで開けばOK!

※ダブルクリックで開かない場合は、「拡張子とプログラムの関連付け」を行ってください。

 

秘密鍵を使う場合

connect '192.168.110.101:22 /ssh /2 /auth=publickey /user=kohshi /passwd=kohshi123 /keyfile=C:\pathtokey\private_key'

 

・接続した後、特定のコマンドを実行したい場合
(例)suしてcd

connect '192.168.110.101:22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi123'
wait "$"
sendln "su"
wait ":"
sendln "kohshi"
wait "#"
sendln "cd /var/www/html/"

waitで特定の文字列を待ち受けて、sendlnでコマンド実行です。

 

コメントアウト

;一行コメント
/*
複数行コメント
*/


・ユーザ入力を受け付けたい場合
(例)接続先IPを入力させる

inputbox 'IPを入力してください' 'IP入力'
HOSTADDR = inputstr
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND

inputboxでダイアログを出して入力受付、入力された値はinputstrに入っている
「strconcat 文字列 文字列」で文字列を結合する。

 

・選択肢から選びたい場合

(例)接続先IPを選ばせる

strdim HOSTNM 2
HOSTNM[0] = '192.168.0.101'
HOSTNM[1] = '192.168.0.102'

listbox '接続先IPを選択して下さい' '接続ホスト選択' HOSTNM if result >= 0 then HOSTADDR = HOSTNM[result] else end endif

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND

 

(例)接続先名から接続先IPを選ばせる

strdim HOSTNM 2
HOSTNM[0] = 'dev'
HOSTNM[1] = 'stg'

strdim HOSTIP 2
HOSTIP[0] = '192.168.0.101'
HOSTIP[1] = '192.168.0.102'

listbox '接続先を選択して下さい' '接続ホスト選択' HOSTNM
if result >= 0 then
    HOSTADDR = HOSTIP[result]
else
    end
endif

COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user=kohshi /passwd=kohshi'
connect COMMAND


strdimで配列を宣言して、値を入れる。
listboxに配列を渡すと、選択した値がresultに入る。
キャンセルされた場合はresultに−1が入る。

・ログを保存

FILEPATH = 'C:\Users\kohshi\Desktop\tera.log'
logopen FILEPATH 1 1
logclose

logopen FILEPATH 1 0 ;2つめを0にすると上書き。1だと追記。
logcloseがなくてもteratermを閉じればログも閉じるので、途中でログだけ閉じたいときに使う。

・ファイル名に日付を入れたい

getdir FILEPATH
strconcat FILEPATH '\'
getdate FILENAME '%Y%m%d-%H%M%S.log'
strconcat FILEPATH FILENAME
logopen FILEPATH 1 0

getdirでマクロがあるディレクトリを取得。
getdateで変数FILENAMEに指定したフォーマットで文字列を入れる。
strconcatで変数FILEPATHに足していく。

viコマンドまとめ

viのコマンドをまとめてみました。

最初は使いづらいと思うかもしれませんが、慣れると使いやすいです。

1. 最小限覚えるコマンド(これだけで編集できる。が、時間がかかる)
i カーソルの左から文字入力(Escで文字入力モード終了)
:q 保存しないで終了
:w 保存
:wq 保存して終了

2. 作業をスピードアップさせるために最低限覚えるコマンド
yy 行をコピーする
p コピーしたものを貼り付け
dd 行を削除(切り取りなのでpで貼り付けれる)
※ 5yyとすると、5行コピー。5ddは5行削除。

u 元に戻す
Ctrl+r やり直し

/キーワード 前方検索
?キーワード 後方検索
n 次の候補にカーソル移動
N 前の候補にカーソル移動

nnG nn行目にカーソル移動
shift+G 最終行へカーソル移動

0 行頭へカーソル移動
$ 行末へカーソル移動

Ctrl+v押して矢印で矩形選択
Shift+iで入力モードになる
文字入力後ESCで反映される

Ctrl+v押して矢印で矩形選択
xで選択範囲が削除される

:%s/置換前/置換後/g
※矩形選択した状態で↑だと選択範囲内を置換


3. その他よく使うコマンド
:set number 行数表示
:set nonumber 行数非表示

:e ファイル名 別のファイルを開く
:e# 別のファイルを閉じる
o カーソルの下に1行追加して文字入力
x カーソルの下の1文字を消す

r カーソルの下の1文字を上書き

^ 文頭へカーソル移動
w 次の単語へ
b 前の単語へ