旅するえんじにあ - Engineers to Travel -

旅するエンジニアの気まま備忘録

【MySQL】 createしようとしたらエラー Can't create table

最近は作るだけの仕事をしていたり、前に作った資産についての質問がきたりで 特に新しい事ができていません。 pull型のDeploy等の仕組みを作ったりしてたのですが、それは今後書いていきます。 さて、今のProjectではMigrationにstandalone-migrationsを使…

【MySQL】 MySQLインストール後、起動に失敗する

ひょんなことからGCPで新しい環境を構築することになり(といっても昔で言うLAMP環境のようなもの) PHPやらNginx、MySQLをインストールしているのですが どうしてもMySQLのStartで[FAILED]になってしまう。 MySQLもyumで入れているし、何か指定が必要だった…

【python】 pythonのバージョンアップ 2.6系から2.7系へ

Google Cloud Platformってもう最近でもないんですが すごく便利なものが出てきましたね。 AWSのS3みたいなものなんでしょうか。 使ったことないのですがね・・・ さてGoogle Cloud Strageを使おうと色々と設定し、shellを書いたり 自動化したりを進めていた…

【Jenkins】 Jenkins権限設定のミスによりログインができなくなった

最近はDeployやらCI環境の構築やらを少しやらせてもらっています。 CIといえばJenkinsですね。 あの紳士なくしてCI環境はと言われるくらいです。 さてそんなJenkinsのバージョンアップ等やっていたのですが グローバルセキュリティの設定を誤って設定してし…

【PHP】 PHP製のDeploy tool deployerでdeployを試す

最近はMySQL partitionのPHPUnitテストとか記事にもならないようなニッチなことをやっていたわけで。 PHPUnitでpartition削除とかDBテストでできればいいのにとか思いつつ、ゴリゴリ書いてたわけで。 ちょっと息抜きに。 Capistranoでdeployをすることが多か…

【Windows】 IPv6よりもIPv4を優先させる設定

自宅からノートPCは全てMacなんですが、今開発端末でWindowsを使っています。 そこでたまに困る事があるんです。 指定されたGitlabへ接続するのにVPNに接続してcloneしようとしても名前解決ができない。 鍵登録してるし、VPN繋いでるし何が悪いんだと思って…

【PHP】 PHPでの静的解析 SonarQubeを使ってみた

最近ネタもなく、日々テストとLibraryの作成を行っていました。 という言い訳で更新しないのは悪だと思っているので、ちょっと心いれかえて。 今回はPHPの静的解析についてです。 前々から静的解析ツールについては良い物が見当たらず、もちろんあるっちゃあ…

【PHP】 filemtime関数の罠

php

APCでデータのキャッシュをさせつつ、色々とロジックを組んでテストしている最中にテストが通らなかったのでメモ やりたかった事としては ・ファイルをオープンして配列化 ・配列化したデータをAPCにキャッシュ ・キャッシュさせたデータにファイルの変更日…

【PHP】 APCu apc.shm_sizeを超えるとどうなるか

さてAPCuを使うようになり、まず気になるところがキャッシュと云えど限界はある。 そう、apc.shm_sizeだ。 毎回悩ましいのが、どれくらいの容量を設定していればいいのか。 実際にはttlに設定されている(実際にはプログラム上で明示的に指定するのだけど)時…

【PHP】 APCuでfetchに失敗する

最近はlibraryのテストしたり検証をしたり 大抵はここはこうしたほうがいいとかこういうルールでやるならこっちのほうがいいんじゃないかっていう討論だけ繰り広げている状態です。 話がまとまれば作業は早いのですが。 さてそんな中今まで意識していないか…

【MySQL】 外部からVirtualBox環境のMySQLへ接続する

今開発環境はWindowsを使用しているのですが、もちろんVirtualBoxの環境はCentOSなわけで。 Mac環境にすればいくらか楽なのですが、なんでか行く先々でWindowsが用意されているので 開発についてはWindowsに慣れてしまっています。 もちろん個人で開発したり…

【Redis】 CentOSにRedisをインストールして簡単な動作検証

今回はRedisの導入をしてみました。 最近はKVSといえばRedisみたいになってきましたね。 そんなことないかもですが。 昔はTokyo TyrantとかKyoto Tycoonとかあったもんですがね。 最近全然聞かず、話に出しても「懐かしー」って感じになってきましたね。 Red…

【nginx】 PHP7(php-fpm)+nginxを動かすまでの設定

さて時間があったので早速nginxの設定を軽く見ていこうということでインストール後すぐの設定が以下の通りになります。 前回のnginxにおけるインストールの記事はこちら さっそくインストール後からのnginx.confから見ていきましょう /etc/nginx/nginx.conf …

【nginx】 CentOSにnginxを簡単にインストールする

仕事が軽く変わり、言語はPHPなのですが、ちょっと研究開発っぽいこともやるようになりそうなので 新たに環境構築しつつPHP7を入れたりして遊んで(仕事して)います。 最近はApacheで環境を組むことが少なくなってきましたね。 ってことで今回は簡単にnginx…

【PHP】 PHP5.4系とPHP7系のパフォーマンスを比較してみた

php

PHP5.4系とPHP7系のパフォーマンスを比較してみた 11月12日はPHP7のリリース日ですね(予定ですが) ということで、最新のRC版を入れて 今更感ありますが、簡単なパフォーマンステストをしてみました。 PHPのメジャーバージョンアップ自体が10年ぶりとなり …

【PHP】ORM Idiormの導入を決意するまで

久々になっちゃいました 最近はインフラっぽいこともせず、とにかくOJTとデザインパターンについて コーディング規約やら書き方を教え、コードレビューをする毎日になっていました。 人が増え、それに対して今後こういうソースの書き方をしていこうと話すの…

【git】 git revert で変更を元に戻す

git

たまにありますよね。 あーーーーpull requestで先に入れないといけないbranchあったのに マージする順番間違えたー はい僕です。 そんな時あー面倒くさいどうしようってちょっと混乱気味になって git reset --hardで戻して・・・git push -f...でいいかな?…

【PHP】 爆速と噂されるPHP FrameworkのPhalconをインストールしてみる

最近爆速と話題のPhalconをインストールしたのでメモ。 今回は以下サーバに対してインストールをしてみようと思います。 最低限のインストール まずは今回使うサーバです。 ちょっと古いですが、以下のサーバにインストールしようと思います。 # cat /etc/re…

【Linux】ファイル内の文字列を検索する

よく使うんだけど、忘れそうなのでメモです。 Linuxのファイル内で特定の文字列を検索したい。 そんなことってたまにありますよね。 自分の場合は、同じプロジェクトのソースでも色々な理由からRepositoryが別れていて IDEにRepository毎に編集したりするん…

【Parse】 Parse.comのCloudCodeでレコードの保存、取得、変更を行う

さて、前回ParseのCloudCodeについてブログを書きましたが 早速使ってみました。 といっても簡単なものですが保存、検索等よく使うものの簡単な説明です。 もちろんafterSaveやbeforeSave等便利なものは多くあるのですが まずは基本です。 今回はTestって安…

【Parse】 最近流行りのMBaaS BaaSの Parse.com を触ってみた。

Baas MBaaSなんて言葉を最近良く聞くようになりました。 これは(Mobile) Backend as a Service の略称になり IaaSとかPaaSなんかのように自分でバックエンドのコードを書いて実装する必要がありますが BaaSやMBaaSについてはSDKとAPIでなんとかしちゃおう的…

【MySQL】 データベース内のテーブルを全てTRUNCATE

たまにありますよね。 phpMyAdminとか使えば簡単かもしれないんですけど データベース内に数百というテーブルが存在していて、これ全部Truncateかけたいんだけど。。。 show tablesでテーブルリスト作ってそこにtruncateを入れて動かす。 そんなんでもいいん…

【vim】検索によるシンタックスハイライトを解除する

vim

別にVimerではないんですが 簡単な修正程度であれば面倒なんでviでやっちゃうときあります。 にわかにちょっとだけコマンド知ってるぜって思いながらやってるのですが。 たまに検索に /php なんてコマンドを使うと そのファイル内の検索を行ってくれるのです…

【PHP】 苦悩の末導入したPHPUnitとDBUnit

やっと忙しい時期がある程度落ち着いたので 久々の更新です。 もちろんコードも書いていますが やはり運用をしていくうえで必要なのがテストです。 これは初めすごく面倒なのですが、一度やってしまうと テストなしではコードが書けなくなります。 自分も最…

【Git】 GithubにSSHの公開鍵を登録する

まぁ最近SVNじゃなくてGitだよね。 ってことでGit導入してみたはいいけど、SSHで鍵登録とかちょっと頭こんがらがりそうで って最初のうち結構そう思ってた。 公開鍵?秘密鍵? わからんよねー。 公開鍵とか秘密鍵っていうのは鍵交換方式認証で使うファイルで…

【MySQL】データベース内のテーブル容量を表示させるquery

今回はMySQLです。 そろそろ環境構築も落ち着いてきて、さてさてソースでも読もうかなって思っている時に、ソースだけじゃわからないようなレガシーなコードなわけですよ。 PHPなんですが$dataだったり、どういう値が入っているかコメントも書かれておらず、…

【PHP】Apacheのaccess_logにユーザIDを追加する

最近プログラムから離れてるけど大丈夫かなぁ。 ってことで今日もサーバいじいじしています。 いや、暇なんじゃないんです。 今日はApacheのログについてです。 モバイルゲームだったりだとか会員制サイトだったり、 ユーザIDが存在するサービスではKPI用に…

【Linux】CentOS6環境にPHPUnitをインストール

さて自分のプログラムもそうなんだけどテスト駆動開発って大切ですよね。 工数かかるし、テストやってると時間ねえよって状態なのは重々承知なのですが これやるだけでmethod単位で動かせてコードを担保できるのはでかいです。 実際にはテストファーストでや…

【Linux】historyコマンドの保存数 表示件数を調整する

今日は簡単に。 最近vmdkファイルを頂いて復元して云々なんて 別の人が作ったイメージを復元して仮想環境を作ることがあったんですが まぁ指示通りにやってもエラーが出たりするわけですよ。 そこでたまに使うのがhistory機能 # history | grep hogehoge な…

【Linux】VirtualBoxでLinuxのWindow表示を広げる

そんな設定することもないからいっか。。。 と思うものほど備忘録に書くものである。 VirtualBoxを使ったりしているとsshでローカルから接続するまであの小さな画面で対応しなければいけない。 とはいえifconfig -aなんてやったときethの情報が隠れて見えな…

【Linux】rm -rf 通称バルスの恐怖からファイルを復元

よくあるやつです。 さすがにrm -rf / とかっていう世界が崩壊するような協力魔法を撃ってしまうとなんともなりませんが、ディレクトリとかファイルであれば"ある程度"復元が可能なようです。 とは言え、ドキドキですよね。 ということで、テスト用のファイ…

【Linux】APCを使ってPHPの高速化を図る

環境を構築している時にAPCってのがあった。 なんだろう・・・って思ってたんですが 昔よくAPCって聞いたなぁとでも、PHP5.5からは関係ないから気にしなくていいよみたいなことがあって 調べてなかったので。 APCっていうのはなんぞやっていうのがPHPのドキ…

【Linux】CentOS6.6にSubversion1.8をインストール

今のプロジェクトでの引き継ぎ時Subversionを使っているので とりあえずローカルの環境にSubversionを入れようと思ったのだが yumで入れようとlistを見てみると1.6しか入っていない。 どうせなら最新版を使いたいのでWANdiscoというところのやつを使ってイン…

【Ruby】RVMでRubyのインストールとバージョン管理

最近CapistranoでデプロイをするためにRubyが必要になったので 必要に迫られてインストール どうにも昔からRubyのインストールには依存やらなんやらでつまずくことが多かった。 PHPみたいな感じでRubyもパッケージ管理をするためにRVMを入れることに。 まず…

【Linux】CentOS 6.6のMySQL5.1をyumで簡単に5.6にしてインストールする

CentOS 6.6 の環境を作ったものの MySQLインストールしようとしたらデフォルトが5.1だった。 今作りたい環境としてはMySQL5.6なんだよなぁ ソースからインストールってめんどいなー。 yumでさくっと入れたいなぁと思ったので手順をば。 まずは現状を確認 # r…

【Linux】VirtualBoxにインストールしたLinuxへSambaでファイル接続する

せっかくなのでsambaの構築も。 なんだかんだコマンドラインのほうが楽なんだけど あったらあったで結構便利なんで。 ちなみにローカルのIPは「192.168.56.10」でSSH接続できる状態で説明します。 まずはお約束なのかな。 インストールする度にやること。 SE…

【Linux】CentOS 6.6 Virtual Boxでのネットワーク設定

毎回忘れるので Virtual BoxをインストールしてCentOS6.6をminimalインストールして ファイル>環境設定>ネットワーク>ホストオンリーネットワークタブには既に 「VirtualBox Host-Only Ethernet Adapter」があった。 中を確認してみると アダプター IPv4…

【Linux】tailコマンドでaccess.logやerror.logを見易くする

仕事でもそうですが、自分のシステムでもエラーログを流す時 大抵リアルタイムで見たいものです。 なのでtail -fなどのコマンドを使って見るわけですが 整形されていない且つ、流れるログを追うのは目が疲れます。 まぁ整形した状態で吐きだせよって話なので…

【Linux】CentOS bash 脆弱性の対応

一部LinuxやMac OS Xで使用されているbashに脆弱性 Shellshockが見つかった問題で2014年9月末結構バタバタした。 その時CentOSを何台か使っていたので対策を行った。 その時のメモ。 bashの脆弱性については以下のサイトがわかりやすい。 http://www.nca.gr.…

【git】複数人で開発する時に便利な git log

git

複数人で開発したりしていると、他のコミットをマージしたりpullしてきたり・・・自分のコミットした内容を探すのに一苦労します。 そんな時に役立つgit logの履歴検索。 Author(commitした人)を絞って表示 git log --author=hoge commit 6054dfa56d1f6ad1f6…

【git】git add でインデックスに登録したソースの差分を見る

git

gitを使っているとgit diffを多用する 要は変更点の差分を見るんだけど、ソースを変更してdiffを見る分にはいいんだけど インデックスに登録した場合diffを見ようとしてもresetしないと見せてくれない。 git addしてインデックスに登録した後でもdiffを見る…

【MySQL】MySQLで大量のデータをリストアしようとしたらエラーになった。

当たり前の話である。 各言語やフレームワークの選定、DBのパフォーマンス調査 なんでもそうだけど、大量のデータをinsertしたりsaveさせたりする時に時間を図ろうと もちろんinsertだけじゃなくてselectやgetするときも。 そんな時に数億件のデータ入れてみ…

【Linux】warning: Please check that your locale settings

最近必要に迫られてperlを使うことがしばしある。 用途としてはtailやらshell内でちょっと使ったり。 そこまで多様はしないけど、使えるにこしたことはないと思い 今使っているサーバでperlコマンドで色々やってみようと。 早速今使っているサーバではperlは…

【Git】Bitnamiで簡単にGitLabをインストール

Git Repositoryは色々とサービスがある。 code breakやBitbucket、もちろん王道のGitHub 今回は自前で建てたい&どうせなら使いやすいものがいい。 非公開設定が可能で、MergeRequestやpullRequest、それにコメントが付けられるようなもの。 そうなるとやっ…

【shell】 実行した時にコメントを表示する

毎日更新するのは難しいけど やはり日々の仕事で何かあったら書き留めていきたい。 継続は力なり。 ということで今回はshellです。 とある仕事で簡単なshellスクリプトを書くことになりました。 というかめんどくさいからすぐ実行できる簡単なプログラムって…

【Linux】 sftp接続で指定ディレクトリのみに接続

まだNASが用意できない かといって共有ディレクトリは欲しい。 ということで取り急ぎ新しいユーザでssh接続はさせず、sftpのみで接続させ 指定したディレクトリのみ接続させる方法です。 まずは新しいユーザを作成します。 新しいユーザは最終的に/home/sftp…

【git】 コミットをせずにインデックスにあるファイルを一時退避させる git stash

git

今の仕事ではルール上いろんなブランチを行き来しながら作業することが多いです。 そんな時よく発生するのが、作業中に急に別ブランチで作業しないといけないみたいな。 しかも作業中で今commitしたくない・・・ そんな時にはgit stashを使います。 まずは新…

【cakePHP】LazyModelを使って最適化を図る

cakePHP LazyModel導入 LazyModelの導入はとても簡単です。 もし、CakePHPを使っていて、最適化を考え、30分でも時間がある場合は導入してみる価値があると思います。 cakePHPで開発を行う場合、中規模開発になってくるとmodelが多くなっていくと思います。 …

【cakePHP】var_dumpやprint_rを整形した状態で表示させたい

cakePHPを弄ってるとよく使う出力でprint_rやvar_dumpをして変数の中身を確認することがある。 但し、これで出力したところで出てくるのは { ["userData"]=> array(1) { ["TestDao"]=> array(3) { ["USER_ID"]=> string(1) "1" ["NAME"]=> string(9) "test_n…

【Mac】 .DS_Store と ._ ファイルを作らない方法

mac

自分はMac Book Airで作業をすることが多いのだけど、作業しているうちに.DS_Storや._xxxxというファイルが作成されてしまう。 せっかく色々とディレクトリを分けてまとめたところで、同じようなファイル名の隠しファイルができてしまうことがある。 どう見…