Rails Unicorn でサブディレクトリ運用でSystemd

CentOS7でUnicornでサブディレクトリ運用する場合、
どんなお作法が一番良さげなのか。

なんかコマンドラインからの
unicornとunicorn_railsの差もいまいち良くわからない。

unicornコマンド時の-EオプションはRACK_ENVで
unicorn_railsコマンド時の-EはRAILS_ENVとかどうとか。

GitlabのUnicorn設定ファイルなんかも参考にしつつ、
とりあえずsystemd管理で考えてみる。
ついでにrbenvで複数バージョン同時に動かしてみる。

[Unit]
Description=Redmine Unicorn.
After=mysqld.service

[Service]
SyslogIdentifier=redmine-unicorn
User=nginx
Group=nginx
WorkingDirectory=/var/www/apps_rails/redmine
Environment=RAILS_ENV=production
Environment=RAILS_RELATIVE_URL_ROOT=/subdir
PIDFile=/var/www/apps_rails/redmine/tmp/pids/unicorn.pid

ExecStart=/opt/rbenv/versions/2.3.7/bin/bundle exec unicorn -c /var/www/apps_rails/redmine/config/unicorn.rb
ExecStop=/usr/bin/kill -QUIT $MAINPID
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

まだ試行錯誤中だよ(´・ω・`)

VSCode エクスプローラー・エクスプロージョン

Visual Studio Code のサイドメニューに表示されるエクスプローラー。
色々カスタマイズしてみたものの、どうもしっくりこない。
なんだろう、この違和感。

観察して見た所、いろいろファイルを開いたり閉じたりしていると、
さっきまで閉じていたフォルダが展開されて表示されたり、
なんだか自分の見やすいようにしていたツリー構成が
勝手に切り替わって、ストレスがエクスプロージョン。

どうしたもんだろう、と設定値をググってみると

"explorer.autoReveal": false,

を設定すると勝手に展開されたりしなくなるよ、とのこと。
おお、いいねいいね。

あと、なんだろう。
エディタ開いたりフォルダ展開するのに、シングルクリック
じゃなくてダブルクリックの方が今までのIDEの操作感に近い。
的な要望は叶うのだろうか。

これまたどうしたもんだろう、と設定値をググってみると

"workbench.list.openMode": "doubleClick",

を設定するとダブルクリックしないと開かなくなるよ、とのこと。
おお、あるじゃんあるじゃん!

あとついでに、エクスプローラー内の「開いているエディター」
っていうのは要らないかなぁ。使う場面もありそうだけど。

これの非表示の設定値はあるのかな、とググってみたところ

エクスプローラーのタイトルで右クリックせよ

とのことで、確かにコンテキストメニューで消せた。

他にも以下の設定値でメニュー自体の存在も消せるっぽい。

"explorer.openEditors.visible": 0

でもこの設定値0は今後廃止になるという情報も。

ここまで色々と設定して
なんとなく今までのIDEなんかと操作感は似てきたな~と。
しばらくこれで使ってみるか。

結果、小1時間使ってみて
「なんかダブルクリック多くね?マウスカチカチ音うるさい」
と思い始めました。

静音マウス買おうか(´・ω・`)

XAMPP Windows 3分クッキング

Windows環境で MySQL や PHP のローカル開発環境が欲しい。
そんな人が居るのかは知らないけれど、
動くところまでなら3分で出来るよね、という話。

まず公式サイトから XAMPP for Windows をダウンロード。
どのタイプをダウンロードすればいいかは、諸説ありますが、
自分の場合はいつもポータブル版というやつ。
インストーラー無しのやつですね。

まずはデスクトップとかに落としてきて展開。

展開後したフォルダ内の xampp を適当な場所に設置。
自分の場合はいつもユーザーフォルダの Apps フォルダにまとめてる。
以下のパスに設置したとしてお話を進める。

C:\Users\ユーザー名\Apps\xampp

設置後に xampp フォルダ内の setup_xampp.bat ファイルをダブルクリックする。
これを実行すると、xampp フォルダ内の各設定ファイルのパスが、
すべて設置フォルダに応じたパスに書き替わる。

ちょっと起動してみる。
xampp フォルダ内の xampp-control.exe を右クリックして
コンテキストメニューから「プロパティ」→「互換性」と開いていき
「管理者として実行する」にチェックを入れて適用。
ここまで終わったら、この実行ファイルをダブルクリック。

こんな画面が出て来たら、Apache と MySQL を Startボタンで実行してみる。
ちょっと待ってみて無事起動したらOK。

ただポータブル版は、これだけだと各ソフトウェアのパスが未設定なので、
コマンドラインからは実行できない。
そんな訳で環境変数の設定を手動で実行する必要あり。

とりあえず以下のパスを環境変数に追加して、
コマンドラインからコマンド打って反応あればOK。

これを環境変数に追加しよう

C:\Users\ユーザー名\xampp\mysql\bin
C:\Users\ユーザー名\xampp\php

追加後にコマンドを呼び出せるか確認しよう

MySQLのコンソールに入れるか確認
C:\Users\ユーザー名\> mysql -u root -p

PHPのバージョンが出るか確認
C:\Users\ユーザー名\> php -v

ご利用はローカルネットワーク環境でね(´・ω・`)

VSCode プレビューなの?編集なの?

Visual Studio Code のエディタはデフォルト設定の場合、
エクスプローラーからシングルクリックでファイルを選択すると、
プレビューモードでエディタのタブに表示される。

ダブルクリックで選択、あるいはプレビューモード中のファイル内を編集すると
編集モードに切り替わる。

つまり、よくわからない(※個人差があります)

男としては好きか嫌いかハッキリしてほしい所。
よって、俺のVSCodeはプレビューモード禁止とする。

動作を常に編集モードにする設定

"workbench.editor.enablePreview": false,
"workbench.editor.enablePreviewFromQuickOpen": false,

あと、エディタのタブは常に末尾に追加されるようにして欲しい。

"workbench.editor.openPositioning": "last",

この設定値でそうなるみたいです。

なんだか、まだ利用していて違和感があるけど
まぁいっか、きっとそのうち慣れるよね。

エディタなんて自分好みに出来るかどうかだよ。
俺好みのおんnにしtやr(´・ω・`)

VSCode ユーザー設定優先度

Visual Studo Code を使い始めて設定関連の理解がいまいちだったのでまとめ。
とりあえず基本的な部分は以下のような理解でよいみたい。

Visual Studio Code のユーザー設定は

デフォルト設定

ユーザー設定

ワークスペース設定(フォルダ)

ワークスペース設定(マルチルート)

の優先度で上書きされる。

ユーザー設定は以下のファイルに記録される

/Users/username/AppData/Roaming/Code/User/settings.json

フォルダ単位の設定はそのフォルダ内の

.vscode/settings.json

マルチルートの設定は、名前を付けて保存したワークスペースファイルの

*.code-workspace

でもって、どの設定ファイルに保存するかどうかは、
設定エディタの上部にタブで出てくる。

CentOS7のホストOSで仮想ブリッジを作成する

配下のKVMゲストOSが外部と仮想ブリッジ経由で接続するために
以下の手順で仮想ブリッジを作成する。

ブリッジ定義追加
# nmcli con add type bridge ifname br0

STP無効
# nmcli con mod bridge-br0 bridge.stp no

IPアドレス定義
# nmcli con mod bridge-br0 ipv4.addresses "192.168.1.200/24" 
# nmcli con mod bridge-br0 ipv4.gateway "192.168.1.1" 
# nmcli con mod bridge-br0 ipv4.method manual

物理NICをブリッジに接続
# nmcli con add type bridge-slave ifname eth0 master bridge-br0

物理NIC定義削除 ※この時点で切断されるためリブート実行
# nmcli con del eth0; reboot

 

 

libvirtd をGUIホスト機からリモート管理する

libvirtd が稼働しているホストOSへ
GUI環境のホストOSからリモート接続して管理する。

# yum install eple-release
# yum install tigervnc-server
# yum install xrdp

GUI環境のホストOSは xrdp で Windows からリモートデスクトップで接続。

CentOS7でKVM

CentOS7でKVMを利用するための初期設定。
以下のパッケージを yum でインストールする。

# yum install libguestfs
# yum install libvirt
# yum install virt-top
# yum install virt-install

上記パッケージを最低限インストールできたら
他のホスト機からリモートで libvritd と接続できるようにする。