まあ全くの初見マンではないんだが、WindowsばっかりマンがUbuntuを触ったときに はまったところを ここに 書きまとめていく。やってることは将棋対局サーバーの構築。
環境
- さくらVPS
- Ubuntu 16.04
- PuTTY
- FileZilla
NuGet
Ubuntuと関係無いが、
Windows / Visual Studio 2015 には初めから入っている、ライブラリを1発インストールするもの。
メインメニューから [Tools] - [NuGet Package Manager] - [Package Manager Console] と進める。
普段、エラーとか検索画面が出ている小窓に
PM>
と書かれているので、ここに文字列を入れて [Enter] キーを押すとよい。
Ubuntu
バージョン
cat /etc/lsb-release
最初はルートユーザー(スーパーユーザー)では入れない
一般ユーザーで接続すること。そのあと
sudo su -
を打鍵することで(今のユーザーを覚えておきながら)スーパーユーザーに1個進む(切替)。
一般ユーザーに切替
su taro1234
taro1234 にはユーザー名が入る。(今のユーザーを覚えておきながら)一般ユーザー1個進む(切替))。
ログアウト、エグジット
logout
セッションから抜ける。サーバーに接続しているターミナルを切るときはこれ。
exit
シェル・スクリプトから抜ける。切り替えたユーザーから、切り替えるユーザーに1個戻るときはこれ。
とりあえず exit を連打すれば 全て抜けれる。
FileZilla
ファイル転送ができないと思ったら
フォルダーのパーミッションに書き込み許可を付けること。
スーパーユーザーになってから 例えば
chmod 755 shogi
ここで shogi はディレクトリ(フォルダ)名。
といったように打鍵してさらに
ls -l
と打鍵
~略~
drwxr-xrwx 7 root root 4096 Mar 8 01:34 shogi
~ ~
※wが付いていることを確認する
動いているプロセスの確認
プロセスは、スタートさせたプログラムぐらいの意味のもの
ps
自分が動かしたプロセスの一覧。
右から2列目ぐらいに 4桁~5桁の数字があれば その数字は プロセスID かも。
ps aux
もっといっぱい動かしているプロセスの一覧。aux はオプション
ps aux | grep php
検索結果のうち、phpを含む行だけ抽出
nano
ニュース等を読むためのテキスト・リーダー。編集もちょっと可能。
開始
nano ★ファイル名
ファイルの保存
[Ctrl]+O (Ubuntuでは Ctrl を ^ で表し、 ^O と表記)
終了
[Ctrl]+X (Ubuntuでは Ctrl を ^ で表し、 ^X と表記)
コピー
(PuTTYの機能) マウスで文字上をドラッグするだけ。ボタンを押す等のアクションは不要。
貼り付け
(PuTTYの機能) マウスを右クリック
mono / mcs
mcs は mono の C# のコンパイラー。 mono というのは C# をオープンソースにしようというプロジェクト。
コンパイル
mcs MsgQueue.cs
Linux なのに MsgQueue.exe といったように 拡張子 .exe を付けてくれる。
リファレンス参照を追加してコンパイル
mcs /reference:Rabbit.Client.dll MsgQueue.cs
ここで Rabbit.Client.dll の所には dll の名前が入る。
プリプロセッサ定義を追加してコンパイル
mcs -define:UBUNTU MsgQueue.cs
#define UBUNTU と書いたのと同等。複数ある場合はセミコロンで区切るらしい。
RabbitQM
先にインストールしておく必要があるもの
- ERLANG
インストール
Visual Studio 2015 にインストールするには
NuGet を使う。
PM> Install-Package RabbitMQ.Client -Version 4.1.1
Ubuntu にインストールするには
「Installing on Debian / Ubuntu」(RabbitMQ)
http://www.rabbitmq.com/install-debian.html
停止
rabbitmqctl stop
起動
(1)
rabbitmq-server
-(2) [Ctrl]+[Z]
-(3) bg ★ジョブ番号
メッセージ・キューの中身確認
rabbitmqctl list_queues
コンシューマー(メッセージを取り出す人)一覧
rabbitmqctl list_consumers
ログ・フォルダー
cd /var/log/rabbitmq
データ・フォルダー
cd /var/lib/rabbitmq/mnesia
設定ファイルを入れるフォルダー
cd /etc/rabbitmq
空っぽ。
Cron
稼働状況
/etc/init.d/cron status
※出てこないようなら、起動してない
起動
/etc/init.d/cron start
再起動
/etc/init.d/cron restart
ログ
less /var/log/syslog | grep CRON
スケジュール設定
ルートとして実行したい場合
sudo crontab -e
一般ユーザーとして実行したい場合
crontab -e
トラブルシューティング
Cron は実行しているのに .sh ファイルが思った通りに動いていないと思ったら
#!/bin/bash
cd /fuga/hoge
想定しているディレクトリへ移動しておくこと。
PHP / composer
パッケージのインストール
- (1)composer.json ファイルは自分で作成する。このテキストファイルには、そのフォルダー(.phpファイルを置くことになる場所)に構成して欲しいパッケージを並べる。
(2)
composer install
これでデプロイメントされる。vendor フォルダーを作ってそこにいろいろ入れてくれる。
パッケージの更新
composer update
改行コード
Windows から Ubuntu に C++ のファイルを持っていったら改行コードが違うので Makefile が動かないそんなときに。
nkfをインストール
# make profgen_sse
改行変換
Makefile、.hpp、.cpp、.sfen、.txt をLFに置換
find . \( -name \Makefile -o -name \*.hpp -o -name \*.cpp -o -name \*.sfen -o -name \*.txt \) -type f | xargs -n 10 nkf -Lu --overwrite
参照 : 複数ファイルの改行コードを一括置換しちゃう (Qiita) http://qiita.com/kouchi67/items/958e74ef792eed0c157d