chisataki’s blog

リコリス・リコイルじゃありません

X Server VPS(Ubuntu)にMeCabをインストールする

まずはMeCab公式よりMeCab本体&IPA辞書のインストールです。

本体: mecab-0.996.tar.gz

IPA辞書: mecab-ipadic-2.7.0-20070801.tar.gz

 

その後サーバーの/opt/ディレクトリにFIlezilla等を使いアップロードしましたら、以下のコマンドでインストールを実行します。

 

(本体のインストール)

cd /opt

sudo tar zxfv mecab-0.996.tar.gz

cd mecab-0.996

sudo ./configure --with-charset=utf8

sudo make

sudo make check

sudo make install

 

④行目の--with-charset=utf8文字コードをUTF8に指定していることに注意です。

 

成功しましたら辞書のインストールです。

 

(辞書のインストール)

cd /opt

sudo tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz

cd mecab-ipadic-2.7.0-20070801

sudo ./configure --with-charset=utf8

sudo make  ←①

sudo make install

 

こちらも本体同様に--with-charset=utf8を./configure実行時に指定します。

 

さて、上の①の実行時に下記エラーが出る場合があります。

error while loading shared libraries: libmecab.so.2: cannot open shared object file: No such file or directory
make: *** [Makefile:253: matrix.bin] エラー 127

 

共有ライブラリのlibmecab.so.2が見つからないのでエラーとなってるケースです。

libmecab.so.2の場所を以下コマンドで確認してみましょう。

 

sudo find  /usr/ -name libmecab.so.2

 

⇒ /usr/local/lib/libmecab.so.2

 

/usr/local/lib/にあることがわかりましたので、homeディレクトリにある .profile ファイルを開き、以下を記載します。(*LD_LIBRARY_PATHは共用ライブラリのパスを記載する環境変数です)

 

export LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"

 

保存しましたらsource, ldconfigコマンドで環境変数を反映します。(*ldconfigは共有ライブラリのパスをシステムに認識させるコマンドです。参照:ldconfigとは)

 

source ~/.profile

sudo ldconfig

 

以上で、再度makeを実施すればインストールできると思います。

 

注意:make実施後の最後の出力に

To enable dictionary, rewrite /usr/local/etc/mecabrc as "dicrc = /usr/local/lib/mecab/dic/ipadic"

(辞書を有効にするには...) といった文言が出るかと思いますが、特に何もする必要はありません。

 

 

インストールできましたらmecabの動作確認です。

mecabと入力してみます。

 

mecab

 

入力待ちの状態になりますので、好きな単語を入力してみましょう。

 

猫      名詞,一般,*,*,*,*,猫,ネコ,ネコ
EOS

 

朝が来る
朝      名詞,副詞可能,*,*,*,*,朝,アサ,アサ
が      助詞,格助詞,一般,*,*,*,が,ガ,ガ
来る    動詞,自立,*,*,カ変・来ル,基本形,来る,クル,クル
EOS

 

終了するには ctrl+C です。

 

ここでmecabと入力した後に以下エラーが出る場合:

param.cpp(69) [ifs] no such file or directory: /usr/etc/mecabrc

 

mecabrcが見つからない場合です。以下コマンドでmecabrcの場所を探します。

 

sudo find /usr/ -name mecabrc

 

⇒/usr/local/etc/mecabrc

 

/usr/local/etc/mecabrcにあることがわかりました。homeディレクトリにある .profile ファイルを開き、以下を記載して環境変数MECABRCにパスを通します。

 

export MECABRC="/usr/local/etc/mecabrc"

 

記載しましたらsourceコマンドで反映します。

 

source ~/.profile

 

再度mecabと入力して、正しく動作することを確認します。

 

 

参考:

MeCabインストール時の「make: /usr/local/libexec/mecab/mecab-dict-index: コマンドが見つかりませんでした」エラー - Harukaのnote

MeCabのインストール方法 - tatsuyaoiw.hatenablog.com

MeCabをローカルにインストールして躓いた時に見て欲しい - Qiita

VPSサーバー(Ubuntu)にPythonをインストールする

まずはpipで必要なツールをダウンロードします。

 

sudo apt install build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev

 

非公式PythonダウンロードリンクからSourceをクリックし、お好みのVersionのFilenameをクリックするとダウンロードが始まります。

 

ダウンロードしたソースファイルを、FileZilla等のFTPクライアントソフトを使ってサーバーの /opt ディレクトリにアップロードします。

ちなみにUbuntuでは一般に /optディレクトリが追加パッケージやアプリをインストールするディレクトリになります。

 

/optディレクトリに移動し、ソースファイルを解凍します。

 

cd /opt

sudo tar xJf Python-3.x.y.tar.xz

 

作成されたPython-3.x.yディレクトリに移動しインストールします。

 

cd Python-3.x.y
sudo ./configure
sudo make
sudo make install

 

インストールが成功したら

 

python3 --version

 

でバージョンを確認することができます。

 

 

python3

 

とコマンドを打つと対話モード(あるいはインタラクティブモード)になり、pythonをその場で実行できるようになります。(終了するにはquit()と入力します)

 

 

参照

Python環境構築ガイド

Nginxでサンプルページをとりあえず表示する

まずはnginxをインストールします。

 

sudo apt install nginx

 

続いてHTTPポート番号(80)を開きます。

 

sudo ufw allow 80

sudo ufw reload

 

早速Nginxの起動確認です。http://(サーバーIPアドレス)/ をブラウザから開きます。

以下のようなページが見られれば成功です。

 

nginx表示成功の場合

 

表示されたHTMLファイルの場所はNginx設定ファイルの /etc/nginx/sites-available/default 内に記載されており、

 

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        ...

        root /var/www/html;

        ...

}

 

上記のrootに記載のディレクトリが、Nginxがデフォルトでhtmlファイルを探しに行く場所になります。 /var/www/html ディレクトリを ls コマンドで確認すると、

 

x.nginx-debian.html 

 

というファイルがあり、これが先ほど表示されたHTMLファイルになります。したがって、このファイルを変更すると表示される内容も変わります。

 

 

以下では実際に公開するwebサーバーの設定をしていきます。

 

設定ファイルは /etc/nginx/sites-available ディレクトリに公開するサーバー(今回はsample.net)ごとに作成します。

 

cd /etc/nginx/sites-available

touch sample.net

 

設定ファイル名はsample.netとしていますが、ご自身でわかりやすい名前を付けていただいて構いません。

続いてデフォルトのサーバー(想定外のアクセス用)の設定ファイルも作成しておきます。

 

touch server_default

 

ファイルの所有者を変更します。

 

chown (ユーザー名) sample.net

chown (ユーザー名) server_default

 

sample.net, server_defaultそれぞれの中身を書いていきます。

 

(sample.netファイル)

server {
        listen 80; 

        server_name sample.net; # ①   

        root /usr/share/nginx/html; # ②


        location /static { # ③
                alias /usr/share/nginx/html/static;
        }

}

 

(server_default中身)

server {
        listen 80 default_server;
        server_name _;
        return 444;
}

 

上記①には公開するサーバーのドメイン名を記載します。

IPアドレスドメインの対応付けがまだされていない場合、①のドメイン名の箇所にはIPアドレスを以下のように指定します。

server_name xxx.xxx.xxx.xxx; # サーバーのIPアドレス

 

上記③はhttp://(ドメイン名)/static/でアクセスがあった場合にhtmlファイルを探す場所を指定します。

 

上記②ですが、先ほどNginxのデフォルトの設定ファイル /etc/nginx/sites-available/default 内には

root /var/www/html;

と記載がありましたが、一般にNginxではこのディレクトリを/usr/share/nginx/html に変更する場合が多いので、sample.netファイルでもそのように記載しています(デフォルトの設定ファイルは後ほどsites-enabledから無効にしますので変更する必要はありません)。

 

/usr/share/nginx/htmlディレクトリを作成し、所有者を変更します。

 

sudo mkdir -p /usr/share/nginx/html/static

sudo chown /usr/share/nginx/html/static

 

作成した設定ファイル sample.net と server_defaultを有効にするため、sites-enabledディレクトリ直下に作成したファイルへのシンボリックリンクを作成します。

 

sudo ln -s ./server_default ../sites-enabled/server_default

sudo ln -s ./sample.net ../sites-enabled/sample.net

 

デフォルトの設定ファイルは無効にします。

sudo unlink ../sites-enabled/default

 

 

これで(最低限の)設定が終わりです。sample.netのrootで指定した/usr/share/nginx/html/static ディレクトリに移動し、公開するhtmlファイルを作成します。

 

cd /usr/share/nginx/html/static

touch mypage.html

vim mypage.html

 

(中身サンプル)

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="UTF-8">
    <title>タイトルサンプル</title>
  </head>
  <body>
    <h1>サンプルページだよ!</h1>
  </body>
</html>

 

htmlファイルを作成したら、Nginxサービスを再起動して http://sample.net/static/mypage.html にアクセスしてみましょう。

 

sudo nginx -s reload

 

html表示サンプル



上のようなページが表示されればOKです。

 

参考:

Nginx公式サイト

vimの設定ファイルから色を変更する

vimエディターの設定ファイルの場所は

 

vim --version

 

で確認します。

表示下部に

 

vimの設定ファイル

 

という箇所があり、

"ユーザー vimrc: "$HOME/.vimrc" 

と書かれているところが各ユーザー用の設定ファイルの場所です。

 

環境変数$HOMEは echo $HOME で確認できます。普通は /home/(ユーザー名) となっていますので、このディレクトリ直下に隠しファイルとして.vimrcを作成します。

 

cd /home/(ユーザー名)

touch .vimrc

vim .vimrc

 

.vimrcの中身は

 

syntax enable
colorscheme desert

 

と記載します。2行目のcolorschemeのところが色指定ですので、今回はdesertと指定していますが、適宜お好きなカラースキーム名を記載します。

 

その後、ファイルをvimで開くと指定の色で表示されていることが確認できます。

 

 

VPS契約後やること④SSHのポート番号を変えて接続する

前回は新規作成したユーザーでSSH接続をしてみました。

 

chisataki.hatenablog.com

 

その際接続に使ったポート番号はデフォルトの22番です。22番は有名なポート番号で、このままではセキュリティー上あまり良くありません。今回はポート番号を別の番号に変えてSSH接続を試みます。

 

一度サーバーに通常通りSSHでログインし、以下SSH設定ファイルを開きます。

 

sudo vim /etc/ssh/sshd_conf

 

ファイルの中身は以下にようになっています。

"""

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

...

#Port 22

...

"""

 

上記 #Port 22 がSSHで接続するポート番号の指定になります。

この直下に新規行を追加し、例えば10022で接続したければ、Port 10022と入力します。

 

(変更後)

#Port 22

Port 10022

 

変更しましたら設定ファイルを更新します。

 

 sudo systemctl restart sshd

 

続いて、新規ポート番号をufwLinuxファイアウォールの設定ができるコマンドを使用して開きます。

まずは現在のufw設定状況を確認します。

 

sudo ufw status

 

コマンドを実行すると ”状態: 非アクティブ” と表示されます。これはまだファイアウォールの設定が非アクティブ(設定がない)状態です。

 

アクティブにするには

 

sudo ufw enable

sudo ufw reload

 

と続けて入力します。 2行目のsudo ufw reloadは、 enableでアクティブ化した設定を更新するコマンドになりますので、enable後は忘れずに実行します。

 

その後、設定をもう一度確認してみます。

 

sudo ufw status

 

今後は”状態: アクティブ” と表示されると思います。

 

では新規ポート番号10022を開いていきましょう。

 

sudo ufw allow 10022

 

これだけです。

設定をreloadで更新した後、 状態を確認してみましょう。以下のように Toが10022, Action が ALLOWとなっていればOKです。

 

To                         Action      From
--                         ------      ----
10022                      ALLOW       Anywhere
10022 (v6)                 ALLOW       Anywhere (v6)

 

 

これで10022番でSSH接続する準備が整いました。

 

ローカル環境に戻り、-p オプションで10022番を指定してSSH接続します。

 

ssh -p 10022 -i (秘密鍵) -l (ユーザー名) (サーバーIPアドレス)

 

---

以上、デフォルトの22番以外でのSSH接続の設定手順になります。

 

(注意)

x server vpsでは最初にSSH接続する際に、VPSパネルの「接続許可ポート設定」から"SSH(22)"の項目をONにしていました。今回のようにSSHのポート番号を変える場合は、上にある"全て許可"の箇所をONにしておかないと接続ができなくなります。全て許可といっても、uwfをアクティブ化した場合、デフォルトの設定では明示的にallow(許可)していないポート番号はすべて拒否されますので安心です。

VPS契約後やること③作成したユーザーでSSH接続する

前回の記事では、rootとしてVPSサーバーにログインした後にユーザーを新規作成する、ということをやりました。今回は作成したユーザーでSSH接続を試みます。

 

新規作成したユーザーでSSH接続するには、サーバー側でauthorized_keysという公開鍵ファイルを設置する必要があります。(/home/ubuntu/.ssh/ 直下にも同名のファイルがあります)

 

ユーザーディレクトリに移動し、authorized_keysファイルを収納する .sshフォルダ(隠しフォルダですので先頭に . をつけます)を作成します。

 

cd /home/(ユーザー名)/

mkdir .ssh

 

フォルダを作成したらauthorized_keysを作成します。

 

touch .ssh/authorized_keys

 

その後、公開鍵ファイルをvim等の編集ソフトで開き、中身をそのままauthorized_keysにコピー&貼り付けます。

 

vim .ssh/authorized_keys

公開鍵の内容をコピペする

 

次に.sshフォルダ、およびauthorized_keysファイルのパーミッションを変更し、所有者とグループをrootから作成ユーザーに変更します。

 

(.sshを変更)

chmod 700 .ssh

chown (ユーザー名) .ssh

chgrp (ユーザー名) .ssh

 

(authorized_keysも同様に変更しますが、パーミッションは600で設定することに注意します)

chmod 600 .ssh/authorized_keys

chown (ユーザー名) .ssh/authorized_keys

chgrp (ユーザー名) .ssh/authorized_keys

 

パーミッション等が変更されたか確認するには

 

ls -al

 

を実行し、.sshの先頭がdrwx------ 、authorized_keysの先頭が -rw------- とそれぞれなっていることを確認します。

 

これでローカル環境からサーバーに作成したユーザーでSSH接続する準備が整いました。ちなみに今回作成したauthorized_keysがない状態でSSH接続を試みると、

 

Permission denied (publickey).

(権限がありません)

というエラーメッセージが流れ、うまく接続することができません。

 

 

VPS契約後やること②ユーザー作成

(注)こちらの記事は初心者の自分用のメモとして書いており、誤りが含まれる可能性がありますので、お読みになられる方は必ず他の参考資料もご確認ください。

 

【前提】

VPS:x server vps

OS:ubuntu

 

前回の記事でVPS契約後にVPSパネルからサーバーにとりあえずログインしてみる、ということをやりました。その次にTera Termというソフトをインストールして、今度はSSHでサーバーに接続してみる、ということをやりました。その際root権限でログインしたわけですが、毎回rootでログインするのはセキュリティー上問題がありますので、今回は一般ユーザーでログインできるように一般ユーザーを作成していきます。

 

ユーザーを作成するコマンドは 

 

sudo adduser (ユーザー名)

 

これでユーザーが作成されます(名前を間違えても後で削除できます)。

 

コマンドを実行すると作成ユーザー用のパスワードを聞かれますので、忘れないようメモしておきます。

その他、所属や電話番号等も聞かれますが、空欄のままエンターキーで飛ばしてしまって構いません。

 

ユーザーが作成されたか確認するコマンドは以下です。

cat /etc/passwd

 

また、adduserコマンドを使用しますと /home/ディレクトリ以下に (ユーザー名)というディレクトリが自動的に作成されます。

 

次にユーザーにsudo権限を与えます。

 

sudo gpasswd -a (ユーザー名) sudo

 

以上でroot以外でログインできるユーザーを作成することができました。

 

次回はこのユーザーでVPSサーバーにSSH接続をしてみます。