ConohaでVPSサーバーを借りてApache2でウェブサーバーを構築!
VPSサーバーを借りて、ウェブサーバーを構築する手順について説明します!
前提
この記事は現在進行系で開発中です。
単語説明
VPS
サーバーを借りるのには、いくつか種類があります。
名称 | 料金 | 管理者権限 | 主な使用用途 |
---|---|---|---|
共用サーバー | 安い | X | ブログ |
VPS | 普通 | O | プログラミング・サービス提供 |
専用サーバー | 高い | O | 本格的なサービス提供 |
共用サーバー
- 1つのサーバーを複数人で共有する
- 管理者権限なし
- ソフトを新しくソフトをインストールできない
- ブログを公開する、ファイルを保存するといった用途がメイン
- 処理時間の長いプログラムを実行すると止められる
- 同じサーバーの他の人の使用状況によって、自分の使えるリソースが変わる
- 例えば、他の人が10万PVのブログを運営していたら、自分のサーバーの処理が遅くなる
VPSサーバー
- 1つのサーバーの中に仮想的に複数のサーバーを作成する
- (割り当てられた仮想サーバーの)理者権限あり
- ソフトのインストールが可能
- メモリが予め割り当てられている
- 性能が他の人の使用状況に左右されにくい
専用サーバー
- サーバー丸々借りる
- サーバー全体の管理者権限を持つ
- 好きなように何もかもいじることができる
- 性能は常に保証される
今回は、VPSサーバーを使用します。
アカウント登録
conohaのVPS公式サイトから、アカウント登録をします。SMS認証が必要です。
ssh通信するまで
VPS追加画面
下のように設定します。
パソコンのメモリは16GBとかありますが、サーバーは1GBでも機械学習とかしない限り大丈夫です。
リージョン(サーバーの場所) | 東京 |
---|---|
メモリ | 1GB |
OS | Ubuntu |
メモること
- 逆引きホスト名(またはIPアドレス)
- (サーバー追加したときに登録した)rootパスワード
とりあえずsshして初期設定
設定する内容は、以下の通り。
- 通常のログイン用のユーザーを作成する
- rootユーザーでログインできないようにする
通常のログイン用のユーザーを作成する
ssh root@上でメモした逆引きホスト名 // ユーザーの追加 sudo adduser 好きなユーザー名(今回はtlaloc) // パスワードなどを聞かれるので入力 // ユーザーに管理者権限を付与 sudo gpasswd --add ユーザー名(今回はtlaloc) sudo
windowsから簡単にsshできるようにする
sshで公開鍵を作っていない人は、ssh-keygen
でググってください。
Windowsの設定をする
Windows側の.ssh/config
に以下のように記載
Host conoha HostName 上でメモしたホスト名 User 上で作成したユーザー(今回はtlaloc) Port 22 (後で変更しますが、最初は22です) IdentityFile ~/.ssh/id_rsa(自分のid_rsaの場所に置き換えてください)
サーバー側の設定をする
Windowsで以下のコマンドを実行する。パスワードを聞かれるので、上でメモしたパスワードを入力します。
[注意点]
.ssh/id_rsa.pub
は、id_rsa.pub
への相対pathを指定してください。conoha
は、.ssh/config
のHost
で設定した名前です。- パスワードを聞かれるので入力してください
scp .ssh/id_rsa.pub conoha:~/.ssh/authorized_keys
これは、Windowsのid_rsa.pub
というファイルを、サーバーの~/.ssh/authorized_keys
にコピーする操作です。
試してみる
ssh conoha
パスワードを聞かれることなくログインできたら成功です。
初期設定
セキュリティ関連
最低限することは、 * rootログインの拒否 * パスワード認証の無効化 * 使わないポートを閉じる
rootでログインできないようにする。
sudo vi /etc/ssh/sshd_config
yesをnoに変更
// 変更前: PermitRootLogin yes PermitRootLogin no
これ以降(少なくともこの記事の範囲では)rootのパスワードを使用することはありません。 これより下でパスワードというときは、adduserで追加したユーザーのパスワードを指します
注: 何らかの原因で、作成したユーザーでログインができなくなったとき、conohaのコンソールからログインするときに使用するかもしれません。なので、rootのパスワードはどこかに保存しておいたほうが良いでしょう。
パスワード認証を許可しないようにする
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
// 変更前: #PasswordAuthentication yes
使わないポートを閉じる
// ufw の起動 systemctl start ufw // ufwの有効化 sudo ufw enable // sshに使うportのみ許可 // 空いている49152番から65535番の中から選ぶ // この番号はどこかにメモっておいたほうが良い sudo ufw allow 49157 // 追加した番号が許可されているか確認する sudo ufw status // 出力結果 To Action From -- ------ ---- 49157 ALLOW Anywhere 49157 (v6) ALLOW Anywhere (v6) // 許可したport以外からは拒否する sudo ufw default deny // sshを受け入れる番号を変更する sudo vi /etc/ssh/sshd_config Port 49157 // 変更前: #Port 22
この状態で、先程の自分のPCの.ssh/config
の中のポート番号を必ず新しいものに変更してください。
変更の反映
// sshを管理するソフトの再起動 service ssh restart
入れるかテスト
ssh conoha
して入れるかどうか確かめてみましょう。
成功するまでは、すでに接続しているsshは切断しないようにしてください。
pyenv
複数のバージョンのpythonを使えるようにします。
pyenvを使わない場合、(例えば)3.6.9のバージョンのpythonしか使えません
git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile source ~/.bash_profile sudo groupadd developer sudo gpasswd --add tlaloc developer sudo visudo // 以下を書き込む Defaults exempt_group="developer" sudo apt update -y sudo apt upgrade -y // Pythonのインストールに必要なライブラリー sudo apt install -y gcc make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev -y
virtualenv
pyenvでは、複数バージョンのpythonを使えるようにしました。
virtualenvでは、フォルダごとにpythonにインストールしたライブラリを保存することが可能です。
git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile
Pythonのインストール&使用
このサイトを参考にしてください。
neovim
neovimのインストール
3.8.3は好きなバージョンに変更することが可能です。
pyenv install 3.8.3 pyenv virtualenv 3.8.3 neovim3 pyenv activate neovim3 pip3 install pynvim -y sudo add-apt-repository ppa:neovim-ppa/stable sudo apt update -y sudo apt upgrade -y sudo apt install neovim -y
deinのインストール
curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh sh ./installer.sh ~/.cache/dein rm installer.sh
サーバーとして使えるように
現在執筆中
apache2のインストール
phpのインストール
PHP 7.4 を Ubuntu 18 / 19 などにインストールする方法 PHPのリリース日とサポート期限
https
Ubuntu 18.04でApacheの自己署名SSL証明書を作成する方法
【apache】conohaのUbuntu18.04にLet's EncryptでSSL設定するまで
その他
ssh-keygen -t rsa -b 4096 -C ""
でsshキーを作成(""内はメールアドレス
その他便利な設定
ファイルの検索で大文字小文字を検索しない
~/.inputrc
に以下を記述
set completion-ignore-case on
コマンド一挙コピペ用
現在作成中