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と入力してみます。
入力待ちの状態になりますので、好きな単語を入力してみましょう。
猫
猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ
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
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()と入力します)
参照
Nginxでサンプルページをとりあえず表示する
まずはnginxをインストールします。
sudo apt install nginx
続いてHTTPポート番号(80)を開きます。
sudo ufw allow 80
sudo ufw reload
早速Nginxの起動確認です。http://(サーバーIPアドレス)/ をブラウザから開きます。
以下のようなページが見られれば成功です。
表示された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
上のようなページが表示されればOKです。
参考:
vimの設定ファイルから色を変更する
vimエディターの設定ファイルの場所は
vim --version
で確認します。
表示下部に
という箇所があり、
"ユーザー 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接続をしてみました。
その際接続に使ったポート番号はデフォルトの22番です。22番は有名なポート番号で、このままではセキュリティー上あまり良くありません。今回はポート番号を別の番号に変えてSSH接続を試みます。
一度サーバーに通常通りSSHでログインし、以下SSH設定ファイルを開きます。
ファイルの中身は以下にようになっています。
"""
# 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
続いて、新規ポート番号をufw(Linuxでファイアウォールの設定ができるコマンド)を使用して開きます。
まずは現在の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にコピー&貼り付けます。
公開鍵の内容をコピペする
次に.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契約後やること②ユーザー作成
(注)こちらの記事は初心者の自分用のメモとして書いており、誤りが含まれる可能性がありますので、お読みになられる方は必ず他の参考資料もご確認ください。
【前提】
OS:ubuntu
前回の記事でVPS契約後にVPSパネルからサーバーにとりあえずログインしてみる、ということをやりました。その次にTera Termというソフトをインストールして、今度はSSHでサーバーに接続してみる、ということをやりました。その際root権限でログインしたわけですが、毎回rootでログインするのはセキュリティー上問題がありますので、今回は一般ユーザーでログインできるように一般ユーザーを作成していきます。
ユーザーを作成するコマンドは
sudo adduser (ユーザー名)
これでユーザーが作成されます(名前を間違えても後で削除できます)。
コマンドを実行すると作成ユーザー用のパスワードを聞かれますので、忘れないようメモしておきます。
その他、所属や電話番号等も聞かれますが、空欄のままエンターキーで飛ばしてしまって構いません。
ユーザーが作成されたか確認するコマンドは以下です。
cat /etc/passwd
また、adduserコマンドを使用しますと /home/ディレクトリ以下に (ユーザー名)というディレクトリが自動的に作成されます。
次にユーザーにsudo権限を与えます。
sudo gpasswd -a (ユーザー名) sudo
以上でroot以外でログインできるユーザーを作成することができました。