かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

PHP:処理結果をログに吐いて動作確認。(LAMPならどんな環境でも多分OK)

Linux + PHP + Apache で開発していて、特定の処理をログに吐いて動作確認したい場合、設定の自由度の高さゆえ、サービスで設定しているログの出力先を解析するのが面倒臭いケースも多々あるかと思います。
 
加えて、ディストリビューションやバージョンの違いによる差異もあるし。
 
そんな場合、一時的な出力先を作成して、ログを吐くのが楽なんじゃないかと思います。
具体的には以下のような操作。LAMPなら、多分どんなディストリやバージョンでも行けます。
 

サーバ側の設定

  • 一時的なログ出力先のフォルダとファイルを作成
  • ファイルのオーナーを apache に変更
  • ファイルの権限を変更

具体的なコマンド

sudo mkdir /test01
sudo touch testlog01

sudo chown apache:apache /test01
sudo chown apache:apache /test01/testlog01

sudo chmod 777 /test01
sudo chmod 777 /test01/testlog01

PHP側の記述

こんな感じ。

error_log($message,"3","/test01/testlog01");

第2引数に「3」を渡すと、ログファイルのパスを指定できます。
 
 
Vagrant を使ってる場合、特に設定を変えていなければ、suパスワードは「vagrant」です。

Git:【GUIで済ませたい人向け】logの確認は、VSCode のプラグイン「Git History」が便利。

Git のコミット履歴(ログ)の確認をコマンドラインで解決させるのは、私にとってはしんどいんで Visual Studio Codeプラグイン「Git History」を愛用しています。

インストール

プラグインの検索ウィンドウにて「git history」と検索。
インストールして再読み込み。
f:id:kakisoft:20190206000815p:plain

起動

右上のアイコンを指定して起動します。
f:id:kakisoft:20190206000846p:plain  

履歴一覧

こんな感じで確認できます。
f:id:kakisoft:20190206000859p:plain  

差分を確認

ブランチを選択し、ファイルを選択。
f:id:kakisoft:20190206000937p:plain  
「Compare against workspace file」や
「Compare against previous version」を選択。
f:id:kakisoft:20190206001011p:plain  
こんな感じで差分を確認できます。 f:id:kakisoft:20190206001024p:plain  

commit間の差分を比較

比較元のブランチの f:id:kakisoft:20190206225418p:plain マークを選択。
その後、「Select this commit ...」を選択。
f:id:kakisoft:20190206225500p:plain  
比較先のブランチの f:id:kakisoft:20190206225418p:plain マークを選択。
その後、「Compare with ...」を選択。
f:id:kakisoft:20190206225514p:plain  
エクスプローラに、「COMPARE COMMITS」が表示されます。
f:id:kakisoft:20190206225528p:plain  
ファイル名を選択すると、差分を比較できます。
f:id:kakisoft:20190206225544p:plain  
 
 
 


<Git History
https://marketplace.visualstudio.com/items?itemName=donjayamanne.githistory

Windows ユーザが初めて Mac を触る時に、きっと役に立つエントリ

初回起動時

名前(ユーザ名)に日本語は使わない方いい。 その名前がホームフォルダになる。
私は「暁(さとる)」という名前なのですが、名前のとこが「akatsuki」というホームフォルダが作られてて、「なんじゃそりゃ!」ってなりました。
多分、変更できません。

下に並んでるアイコンS

Finder

f:id:kakisoft:20190120193814p:plain
エクスプローラに相当。

ターミナル

f:id:kakisoft:20190120193842p:plain
コマンドプロンプトに相当。

システム環境設定

f:id:kakisoft:20190120194007p:plain
コントロールパネルに相当。

メモ

f:id:kakisoft:20190120194102p:plain
Windows で言うメモ帳・・・とは全く違います。
txt 形式での保存も読み込みもしません。
 
メモ帳に相当するのは、『テキストエディット』というツールになります。
そっちは、「Finder -> アプリケーション」から起動してください。

設定

日本語入力してる時に勝手に変換されるアレは何!?

「ライブ変換」と言うらしい。
邪魔なら OFF にしておこう。
 
f:id:kakisoft:20190120194138p:plain

そもそも変換候補出さなくていいよ

システム環境設定 -> キーボード -> 入力ソース -> 「推測候補表示」をOFF

マウスのホイールの方向が逆なんだけど!?

WindowsLinux と上下が逆です。上に行こうとすると下に行き、下に行こうとすると上に行きます。

システム環境設定 -> マウス -> スクロールの方向:ナチュラ
のチェックを OFFにしよう。

ターミナル exit 時の、[プロセスが完了しました] って何? 終わったら閉じてよ。

ターミナル -> 環境設定 -> プロファイル -> シェル
のタブにて、シェル終了時の動作を「ウィンドウを閉じる」
 
とすると、exit でウィンドウを閉じてくれる。
 
f:id:kakisoft:20190120194226p:plain

拡張子を表示するには?

Finder -> 左上メニュー -> すべてのファイル名拡張子を表示

スクロールバーが無いよ?

システム環境設定 -> 一般 -> スクロールバーの表示
にて、「常に表示」を選択。

コンピュータ名の変更は?

システム環境設定 -> 共有 -> 「コンピュータ名」を編集

操作

GUI でフォルダが開けない・・・

command + ↓

ファイルの削除ができん・・・

command + delete

コピー&ペーストは?

command + c → command + v

アンドゥ、リドゥは?

command + z
command + shift + z

 ウィンドウの最大化

command + control + f

ウィンドウの最小化

command + m

「alt + F4 」(アプリケーションの終了)は?

command + q
アプリのページ単位(ブラウザのタブ1つ単位など)を閉じる場合は、 command + w

「ctrl + tab」でのアプリ切り替えは?

command + tab

「ファイル名を指定して実行」は?

command + space

「cmd」でコマンドプロンプトを起動できる?

command + Space で入力枠が出てくるので、「ter」と入力。

「ペイント」はどこ?

デフォルトで入ってる「プレビュー」 というアプリでどうでしょう。
下図のマークを押すと、画像の編集が可能です。
 
f:id:kakisoft:20190120194252p:plain

デスクトップを表示するには?

fn + F11
が、何かのアプリを起動すると、全部のアプリがフロントに戻る。 Windows と違って使いづらい。

print screen(画面キャプチャ)は?

command + shift + 3
他にも、
command + shift + 4
で、部分的にキャプチャを取ることもできるぞ。

タッチパネルで右クリックができないんだけど・・・

指2本で真ん中あたりを軽くタッチしよう。
指1本だと、どこを選択しても左クリック扱い。  
 
 
 
 


では、快適な Mac ライフを。  
 
 

Mac:英字キーボードでの日本語入力

<環境>
Mojave. 10.14.2


1.

システム環境変数の、「キーボード」を選択。
f:id:kakisoft:20190108021101p:plain

2.

「入力ソース」タブにて、「+」ボタンを選択。
f:id:kakisoft:20190108021143p:plain

3.

「日本語」を追加。
f:id:kakisoft:20190108021206p:plain

4.

control + space にて、切り替えができるようになります。
下図のメニューが表示される前にボタンを離してもOKです。
f:id:kakisoft:20190108021222p:plain

Oracle→SQL Serverへの移行

<環境>
Windows 10


SSMA(SQL Server Migration Assistant)という、Microsoft が配布しているコンバートツールにて、変換が可能です。
 
OracleSQL Server へ接続可能な端末で実行しています。

1.

配布ページより、「SSMA for Oracle」をダウンロードします。

2.

インストーラを起動し、インストールします。
その後、SSMA(SQL Server Migration Assistant)を起動します。
通常通り使う分には、インストールオプションは「Typical」で問題ないかと思います。
 
f:id:kakisoft:20181231043247p:plain

3.

「File → New Project」を選択し、適当なプロジェクト名を設定し、SQL Server のバージョンを選択します。
 
f:id:kakisoft:20181231044234p:plain
 
f:id:kakisoft:20181231043251p:plain

4.

「Connect to Oracle」を選択し、Oracleへ接続します。
tnsnames.ora は、あらかじめ編集しておきます。
 
f:id:kakisoft:20181231043256p:plain
 
f:id:kakisoft:20181231043259p:plain

5.

Oracleへの接続に成功すると、スキーマ情報を参照できます。
 
f:id:kakisoft:20181231043302p:plain

6.

続いて、「Connect to SQL Server」を選択し、SQL Serverへ接続します。
 
f:id:kakisoft:20181231043305p:plain
 
f:id:kakisoft:20181231043309p:plain

7.

SQL Serverへの接続に成功すると、スキーマ情報を参照できます。
 
f:id:kakisoft:20181231043313p:plain

8.

「Convert Schema」を実行すると、Oracle から SQL Server にコンバートします。
 
f:id:kakisoft:20181231043316p:plain

補足1

稀に、コンバートの対象から漏れてしまうファンクションがあります。
その場合、スクリプトファイルから生成します。
 
f:id:kakisoft:20181231043319p:plain

補足2

トリガーはテーブルの下の階層となっています。

Windows環境にて Dockerを使用する(Hyper-V)

<環境>
ホストOS:Windows 10 Pro
※Home Editionでは、Hyper-Vが使えません。


Hyper-V を有効化

コントロールパネル → プログラムと機能 → Windowsの機能の有効化または無効化
にて、「Hyper-V」 のチェックをON。
 
f:id:kakisoft:20181126231119p:plain

その後、再起動。

dockerをインストール

Chocolatey(パッケージマネージャー) を使用しています。
Chocolateyのインストールはこんな感じです。
コマンドラインより実行して下さい。

choco install -y docker
choco install -y docker-compose
choco install -y docker-for-windows

完了。
 
dockerコマンドが使用できるようになっています。

初回実行時に以下のようなメッセージが出ますが、
再起動でOKです。 f:id:kakisoft:20181126225757p:plain

試しに Redmineのコンテナを動かしてみました。

Redmineコンテナ起動

docker pull redmine
docker run -p 8080:3000 -dti redmine

127.0.0.1:8080 にアクセスすると、ログイン画面が表示されます。

注意点

  • Hyper-V を ONにすると、virtualbox等の他の仮想環境ツールが上手く動かなくなる。(OFFにすると、再び使用できる。)
  • Hyper-V仮想マシンとして Vagrantを使う場合、設定が結構面倒。また、Hyper-Vに対応していない Boxも多い。

tsv・csv から INSERT文を作成するスクリプト

tsv または csv から INSERT文を作成するスクリプトを書いてみた。 https://kakisoft.github.io/MyTrivialTools/CreateInsertStatement.html  
 
ChromeFirefox で動作確認しています。  

使う場面

開発時、適当にテストデータを作って、サクッとデータを登録したい時。
 
f:id:kakisoft:20181028002204p:plain

ソース

特に隠してないので、「ページのソースを表示」で全部見れます。
表示されるソース 1つで動きます。
 
GitHub はこちら。
https://github.com/kakisoft/MyTrivialTools/blob/master/CreateInsertStatement.html
 
おかしい所を指摘したくなったり、突っ込み入れたりしたくなった場合は是非お願いします。

備考

フットワーク良く動かすために、外部ライブラリを使わず、素の JavaScriptオンリーで書いてます。

その他

データ長のチェック、数値チェック、必須入力チェックとか、今後入れ・・・なくてもいいかな、別に。
適当に使えりゃそれで。