0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Linuxサーバーの環境構築の自分用メモ(Ubuntu 22.04.1 LTS, ConoHa 1GB)

Last updated at Posted at 2022-11-27

環境

ConoHa でサーバーを立てる際の参考になれば

  • Unbuntu 22.04.1 LTS
  • ConoHa 1GBプラン

ユーザーの作成

[ローカル]$ ssh root@NNN.NNN.NNN.NNN -i ~/.ssh/XXXXXXXX.pem

adduserで対話的にユーザーを作成

ConoHa で VPS を立てた際は root ユーザーしか存在しないようなので、新しく好きな名前でユーザーを作成します。
Ubuntu では adduser と useradd は違うようなので注意。

cf. 【Ubuntu】useraddとadduserの違い
https://qiita.com/kaitoland/items/386ebc94c3efa17bbecb

$ adduser yuinore

ユーザーのホームディレクトリに公開鍵をコピーする

ConoHa では Root ユーザーのホームディレクトリ(/root)に公開鍵が登録されるので、それを /.ssh/yuinore にコピーする

ls -alh /root/.ssh/authorized_keys
mkdir /home/yuinore/.ssh/
cp /root/.ssh/authorized_keys /home/yuinore/.ssh/
chmod 700 -R /home/yuinore/.ssh/
chown yuinore:yuinore -R /home/yuinore/.ssh/

yuinore ユーザーで sudo できるように修正

cf. Ubuntuでsshのrootログインを禁止する
https://qiita.com/patao-tech/items/3ed828d6769a7adf5a12

visudo

以下を追記

%yuinore  ALL=(ALL) ALL

作成したユーザーでログインできるかどうか確認

[ローカル]$ ssh yuinore@NNN.NNN.NNN.NNN -i ~/.ssh/XXXXXXXX.pem

sudo できることも確認

sudo echo hello

ssh設定の修正

rootログインを禁止する

root ユーザーで SSH ログインできるとセキュリティ的に良くないという話があるので禁止します。

sudo vi /etc/ssh/sshd_config
/etc/ssh/sshd_config
- PermitRootLogin yes
+ PermitRootLogin no
sudo systemctl restart sshd

ポートを変更する

ポート変更も簡単なので一応やっておきます。別に変えなくても大丈夫です。

sudo vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
- # Port 22
+ Port 22
+ Port ****
sudo systemctl restart sshd
sudo ufw allow ****/tcp
sudo ufw reload

この状態でログインできることを確認
確認できたら22番ポート削除

sudo vim /etc/ssh/sshd_config
/etc/ssh/sshd_config
- Port 22
+ # Port 22
  Port ****
sudo systemctl restart sshd
sudo ufw status
sudo ufw delete allow OpenSSH
sudo ufw reload

インターネット疎通確認

ping -c 4 8.8.8.8
ping -c 4 yahoo.co.jp
curl -L yahoo.co.jp

キーボード入力の確認

ConoHa ではデフォルトで日本語キーボードが設定されているのでそのままでOK

echo あいうえお
echo '!"#$%&()=~|'

タイムゾーンの設定

ConoHa ではデフォルトでタイムゾーンが日本になっているので設定しなくてもOK

date '+%Y/%m/%d %H:%M:%S %z'

sudo timedatectl set-timezone Asia/Tokyo
date '+%Y/%m/%d %H:%M:%S %z'

スワップ領域の設定

ConoHa ではデフォルトでスワップ領域が設定されていることを確認する。
設定しないと apt コマンドの実行中にメモリ不足のエラーが起きたりする(と思う)

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           969Mi       246Mi        71Mi       1.0Mi       650Mi       569Mi
Swap:          2.0Gi       0.0Ki       2.0Gi
$ swapon -s
Filename               Type           Size            Used           Priority
/swap.img              file           2097148         560            -2

.bashrc の編集

vi ~/.bashrc
~/.bashrc
- HISTSIZE=1000
- HISTFILESIZE=2000
+ HISTSIZE=20000
+ HISTFILESIZE=20000
+ alias be='bundle exec'
source ~/.bashrc

基本パッケージのインストール

curl、wget、vim、gitはデフォルトで入ってました。ありがたい。

sudo apt -y update
sudo apt -y install curl wget zip unzip vim git tig
sudo apt -y install mlocate
sudo updatedb
vim ~/.vimrc
~/.vimrc
scriptencoding utf-8
set encoding=utf-8

filetype plugin indent on
:set tabstop=2
:set shiftwidth=2
:set expandtab

cnoremap w!! w !sudo tee > /dev/null %<CR> :e!<CR>

set list
set listchars=tab:»-,trail:-,extends:»,precedes:«,nbsp:%

root ユーザーで vim を叩いた場合にも適用されるようにする

sudo ln -s ~/.vimrc /root/
git config --global user.email "yuinore@hotmail.co.jp"
git config --global user.name "yuinore"
git config --global core.editor "$(which vim)"

nginxのインストール

apache2 が動いていた場合は必ず disable しておく

sudo systemctl disable apache2
sudo apt -y install nginx
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo systemctl restart nginx

sudo systemctl is-enabled nginx
sudo systemctl enable nginx
sudo systemctl is-enabled nginx # 確認

Javaのインストール

バージョンはお好きなものを

sudo apt -y install openjdk-17-jdk
java --version

Python3 のインストール (pyenv使用)

前提ライブラリのインストール

ubuntu 20.04 / 18.04 に pyenv をインストール
https://zenn.dev/neruo/articles/install-pyenv-on-ubuntu

sudo apt install \
  build-essential libssl-dev zlib1g-dev \
  libbz2-dev libreadline-dev libsqlite3-dev curl llvm \
  libncursesw5-dev tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
  libopencv-dev git
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL
pyenv --version
pyenv install --list | grep '3.11.'
pyenv install 3.11.0
pyenv versions
pyenv global 3.11.0
pyenv version

MySQL のインストール

sudo apt install -y libmysqlclient-dev
sudo apt install -y mysql-server

サーバーではさすがにパスワードなしでログインできるようにはしないので、パスワードを一応設定する

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '【パスワード】';

パスワードを使用して sudo なしでログインできることを確認

sudo systemctl restart mysql
mysql -u root -p

ruby (rbenv, bundler)

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="~/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
rbenv -v
 
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build
sudo apt install -y build-essential libssl-dev zlib1g-dev
rbenv install --list
rbenv install 3.1.2
rbenv global 3.1.2
ruby -v
gem update
gem install bundler
bundle -v

php

sudo apt -y install php
sudo apt -y install php-fpm php-mysql

RMagick

sudo apt -y install libmagickcore-dev

node (nodenv + yarn)

git clone https://github.com/nodenv/nodenv.git ~/.nodenv
echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(nodenv init -)"' >> ~/.bashrc
source ~/.bashrc
nodenv -v

nodenv-yarn-install を導入して、 nodenv install コマンドの実行と同時に yarn もインストールします。

git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build
git clone https://github.com/pine/nodenv-yarn-install.git "$(nodenv root)/plugins/nodenv-yarn-install"
nodenv install --list
nodenv install 16.15.0
nodenv global 16.15.0
curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
nodenv versions
nodenv version
yarn -v

pyonpyon

かわいい。

mkdir -p ~/projects
cd ~/projects/
git clone https://github.com/sgymtic/sl.git pyonpyon
cd pyonpyon/
git checkout pyonpyon
make
./pyonpyon
sudo cp pyonpyon /usr/local/bin
echo 'alias sl="pyonpyon"' >> ~/.bashrc
source ~/.bashrc
sl
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?