SSH


CentOS自宅サーバーにpoderosaやffftpから接続するときの確認事項

外部ネットワークからCentOSの自宅サーバーにアクセスするときの確認事項の覚書

poderosaやffftp共通

・ポートが開いているか
サーバー側のルーターにアクセスしてポートが開いているか調べる。
poderosa(SSH)は22番
ffftpは20~21番

・必要なサーバーソフトは立ち上がっているか
poderosa(SSH)httpd(Apache)が起動しているか確認
ffftpはsftpdが起動しているか確認

・iptablesが接続の邪魔をしていないか
iptablesの設定を確認。もしくは起動を終了させる。iptablesの設定例

なお、初期設定ではrootを使ってffftpでログインできない
詳細

ffftpで接続はできるのにサーバー側のファイル一覧が表示されない場合は、サーバー側でPASVモードの接続が許可されてない可能性が高い。「設定変更」-「拡張」タブ-「PASVモード」のチェックをはずす。もしくはサーバー側の設定を変更してPASVモードでの接続を許可する。

参考ページ

DreamHostでターミナル(putty)を使ってSSH接続する

DreamHostでターミナル(putty)を使ってSSH接続したときの覚書。

1.puttyをダウンロード&インストールする

参考サイト
-------------------------------------------

http://www.adminweb.jp/web-service/ssh/index2.html

-------------------------------------------

2.SSH接続に必要な秘密鍵と公開鍵の生成

PuTTYのインストールと同時にインストールされたPuTTYgenを起動させる。
デフォルトでSSH2-RSAになっているはずなので、そのままgenerateをクリックして生成開始。パラメータが右に伸び終わるまで画面内でマウスを適当に動かし続ける。するとランダムなデータを生成される。

Save public key(公開鍵)ボタンとSave private key(秘密鍵)ボタンを押して、それぞれ保存する(保存先はとりあえずデスクトップでいい)。

参考サイト
-------------------------------------------

http://sourceforge.jp/projects/winscp/wiki/ui_puttygen

-------------------------------------------

3.public key(公開鍵)をサーバーに置く

FFFTPでサーバーにログインしてroot「一番上、/だけの所」に「.ssh」というフォルダを作り、そこに public key を置く。public key のファイル名は「authorized_keys」(拡張子なし)に変更しておく。

4.DreamHostでSSHが使えるように設定変更

ブラウザからDreamHostにログインする。「Web Panel」の「toolbox」にある「Manage User」をクリック。そこの「Edit」から「User Type」を「Shell user」に変更する。

5.PuTTYでログインする

PuTTYを起動。Hostnameに自分が利用しているDreamHostのサーバーアドレスを入力。左の Category から「Connection」→「SSH」→「Auth」を選択。「Private key for authentication(認証用の秘密鍵)」のところから先ほど保存した private key(拡張子が ppk のもの)を選択して「Open」を押す。

これで接続されるはず。初めて接続するとき以下のメッセージが出るが「このサーバーで正しいか?」という確認なので「はい」を選択する。

PuTTY の alert
-------------------------------------------
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 6f:60:44:2c:61:7e:49:70:42:c8:99:0a:09:e3:6a:5b
If you trust this host, hit Yes to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, hit No.
If you do not trust this host, hit Cancel to abandon the
connection.
-------------------------------------------

コマンドプロンプトのような黒い画面が出て login as と表示されるので DreamHostで設定したFTP Username を入れてその後 Password を入れるとログイン完了。

ログインまでにもたもたしていると「Server unexpectedly closed network connection」とメッセージが出て切断されるので、その場合は再接続する。

「Server unexpectedly closed network connection」が出続ける場合は使っているIPアドレスが DreamHost 側でブロックされているので、DreamHost に解除依頼をする必要があるみたい。↓

-------------------------------------------
If you get this error when attempting to SSH, this can mean your IP has been blocked. Contact support and we will check to see if your IP is blocked. If so, we will be able to whitelist it. If you don't know your IP, visit
-------------------------------------------

大まかな流れの参考になったサイト
-------------------------------------------

http://www.azumatech.net/blog/2010/02/12/dreamhost%E3%81%ABssh%E6%8E%A5%E7%B6%9A/

-------------------------------------------

さくら共有サーバーで使えるmysqlコマンドの一覧

さくら共有サーバーで使えるmysqlコマンドの一覧は次のとおり。
mysqlモニターにログインしなくても(ログイン前に)つかえるもの。

MySQL5系 MySQL4系
mysql mysql-4.0
mysqldump mysqldump-4.0
mysqlimport mysqlimport-4.0
mysqlshow mysqlshow-4.0
mysql_config mysql_config-4.0

上記だけなので、mysqladminなどは使えない。

実行するとこうなる
------------------------------
mysqladmin: Command not found.
------------------------------

ソース

【mysql】さくら共有サーバーのmy.cnfの場所

my.cnfは、mysqlの設定ファイル。

SSHでサーバーにログイン(mysqlモニターにはログインしない)して、以下のコマンドを実行すれば確認できる。

「mysql --help」

もしくは、

「mysql --help | grep my.cnf」

helpに書かれている次のパスが、my.cnfのあるところ。
mycnf1

実際には「/usr/local/mysql/5.5/etc」にあった。

以下の記述があった。

-------------------------------
[mysql]
default-character-set=ujis
[mysqldump]
default-character-set=ujis
[mysqlimport]
default-character-set=ujis
[mysqlshow]
default-character-set=ujis
-------------------------------

これは、サーバーにログイン後(mysqlモニターにはログインしない)に使えるコマンド。
mysqladminなどはないので、実行しても使えない。

-------------------------------------------
mysqladmin -u username -h hostname -p
-------------------------------------------

↓ ↓ ↓

-------------------------------------------
mysqladmin: Command not found.
-------------------------------------------

さくら、poderosaで日本語入力

ターミナル(poderosa)でさくらのmysqlサーバーにログイン後、日本語できなかったので、対処法のおぼえ書き。

実行したいmysqlクエリ
-----------------------------------------------
UPDATE table1 SET flag = 1 where column LIKE '%日本語%'
-----------------------------------------------

poderosaのエンコーディング設定
-----------------------------------------------
utf-8(cjk)
-----------------------------------------------

クエリをpoderosaにコピペすると日本語だけきれいに無くなる。

つまりこうなる。
-----------------------------------------------
UPDATE table1 SET flag = 1 where column LIKE '%%'
-----------------------------------------------

対処法を調べてみると、「.cshrc」に次の追記をすればいいらしいと判明。

#poderosaで日本語を扱うために追記
-----------------------------------------------
setenv LANG ja_JP.UTF-8
-----------------------------------------------
参考サイトはこちら

poderosaでmysqlサーバーに再ログイン。
すると新たなるエラー。

エラー内容
-----------------------------------------------
ERROR 1267 (HY000): Illegal mix of collations (utf8_general_ci,IMPLICIT) and (ujis_japanese_ci,COERCIBLE) for operation 'like'
-----------------------------------------------
※「ujis」は、日本語EUC(EUC-JP)のこと。

文字コードが違うようなので、poderosaのエンコーディングを変更
-----------------------------------------------
utf-8(cjk) → euc-jp
-----------------------------------------------

無事にエラーも出ずに日本語も使えるようになった。

さくら、poderosaでmysqlのデータ表示すると文字化けする

さくらのmysqlサーバーの文字コードはEUC-JP。

poderosaの文字コードもEUC-JPに合わせれば、きちんと見れる。

【mysql】テキストファイルに書かれたクエリを読み込んで実行する

テキストファイルに書いたmysqlのクエリ文を実行するには「source」コマンドを使う。

用意したファイル
------------------
test.txt
------------------

ファイルの中身
------------------
insert into テーブル名 (カラム名) VALUES ('内容1'),('内容2')
------------------

ターミナルでさくらのサーバーにログインして、mysqlに接続する。
データベースを選択して、「source」コマンドを実行する。

実際のコマンド
------------------
source /home/username/www/test.txt
------------------

さくら共用サーバーにmecabをインストールする

さくら共用サーバーで php-mecab を使うだけならサービスに元々含まれている mecab を利用できる。自前の mecab は不要なのでこのエントリーの作業は不要。自前で mecab はインストールすべき。デフォルトの mecab は php のバージョンアップなどでフォルダが変わることがある。php-mecab は mecab のフォルダを指定してるので不具合が起こる。

さくら共用サーバーにmecabをインストールに至った経緯↓↓

=========================================
さくら共用サーバーには最初からmecabが入っている。但し辞書はEUC-JPなのでUTF-8で利用するには自前で辞書を用意しなくてはならない。で、辞書のみをインストールしたがどうもうまくいかない。UTF-8でインストールしても文字化け、EUC-JPで文字を扱ってしまう。
いろいろ調べると、当方サーバーにインストールされているmecabのバージョンは、「0.995」で、このバージョンはUTF-8の辞書をうまく使えないバグがあるらしい。
ということで別バージョンのmecabを共用サーバーにインストールした。
=========================================
↑こう書いたもののいざやってみると、v0.97でも辞書のutf-8化ができない場面に遭遇。mecab本体のインストールは問題なし。mecabのバージョンと辞書の文字コードは関係ないのかもと思い始める。ただutf-8の文字コードで動かすことはできた。詳しくは下記のリンク。

utf-8の辞書、インストール方法はこちら

インストールするmecabのバージョン
-----------------------------------------
mecab 0.97 ←別サーバーでバグがないことを確認済み
-----------------------------------------

インストール先(localは自分で作る)
-----------------------------------------
/home/username/local/
-----------------------------------------

1.ダウンロードしたファイルを解凍
-----------------------------------------
tar xzvf mecab-0.97.tar.gz
-----------------------------------------

2.「configure」実行
-----------------------------------------
cd mecab-0.97 ←フォルダ移動

./configure --prefix=$HOME/local --with-charset=utf8 --enable-utf8-only
-----------------------------------------
※「configure」というシェルスクリプトを実行することで、ソースファイルをコンパイルする前に、インストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したMakefileが作成される。

3.コンパイルとインストール
-----------------------------------------
make ← コンパイル

make install ← インストール
-----------------------------------------

すると、インストール時にエラーが出る。

エラー内容
-----------------------------------------
%make install
.././install-sh: Permission denied
*** Error code 126
-----------------------------------------

mecab-0.97フォルダ内のinstall-shファイルにアクセス権限がないとのことで、確認してみる
-----------------------------------------
ls -l install-sh
-----------------------------------------
こう表示された
-----------------------------------------
-rw-r--r-- 1 username users 5569 Jan 29 2007 install-sh
-----------------------------------------

アクセス権限を変更(「install-sh」は「install -sh」でないよ。ハマッた)
-----------------------------------------
chmod 755 install-sh
-----------------------------------------

再びインストールを試みる
-----------------------------------------
make install
-----------------------------------------
(make cleanで不要はファイルは消せる)

インストール成功。

接続し直してバージョンを確認。binフォルダはインストールが成功するとできる。
-----------------------------------------
~/local/bin/mecab -v
-----------------------------------------
~(チルダ)は、ユーザのホームディレクトリ(home/username)のこと。$HOMEも同じ。

4.簡単に使えるようにパスを通す

現在のPATHを確認してみる
-----------------------------------------
echo $PATH
-----------------------------------------

結果
-----------------------------------------
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/username/bin
-----------------------------------------
:」は区切り。

パスを書き換えるため、exportを実行するがエラーが出る

コマンド
-----------------------------------------
export PATH=~/local/bin:$PATH
-----------------------------------------

結果
-----------------------------------------
export: Command not found.
-----------------------------------------

ファイルを直接書き換えることにする。
利用しているシェルを確認してみる

コマンド
-----------------------------------------
echo $SHELL
-----------------------------------------

結果
-----------------------------------------
/bin/csh
-----------------------------------------

この場合、ホームディレクトリ直下にある.cshrcファイルを編集することになる。
パスは左から優先されるので、自前のmecabが選択されるよう、一番左にパスを追加する。

編集内容
-----------------------------------------
#set path = (/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←コメントアウト
set path = ($HOME/local/bin /sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin $HOME/bin) ←追加行
-----------------------------------------

(エックスサーバーは bash なので .bashrc に↓追記)
-----------------------------------------
export PATH=$HOME/local/bin:$PATH
-----------------------------------------

PATHが通ったことを確認
-----------------------------------------
echo $PATH
-----------------------------------------

mecabのバージョンを確認
-----------------------------------------
mecab -v
-----------------------------------------

なお辞書をインストールしていないとエラーが出る
-----------------------------------------
param.cpp(69) [ifs] no such file or directory: /home/username/local/lib/mecab/dic/ipadic/dicrc
-----------------------------------------

辞書のインストールはこちら

viエディタの抜け方

Escキーで抜けられなかったので、別の方法

----------------------
Ctrl + Z
----------------------