Debian 9.0 Stretchのセットアップ

リンクステーションにDebian 9.0 Stretchをインストールした。
デフォルトではsudoコマンドが使えないなど不便だった。

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

sudo

# apt -y install sudo  

特定のユーザーにroot権限を付加する

# visudo 
または以下を編集
#vi /etc/sudoers

一番下の行に以下を追加する
例:ユーザー名userのとき

#includedir /etc/sudoers.d    // この行が一番下にある
user   ALL=(ALL)   ALL 

rootをexitで抜け、sudo apt-get updateなどしてsudoが使えるか確認する。

特定のユーザーに特定のコマンドの実行を拒否したりする場合はこちらを参考にすると良い。
Debian 9 Stretch : 初期設定 : Sudo の設定 : Server World

git

# apt-get install git

nginx

# apt-get install nginx

# systemctl status nginx    // ステータスの確認
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-01-11 21:54:08 JST; 2min 47s ago
     Docs: man:nginx(8)
  Process: 1233 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1230 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1237 (nginx)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/nginx.service
           ├─1237 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─1238 nginx: worker process

# ip a    // IPアドレスの確認(sshで接続しているのだからわかっているはず)

ローカルネットワーク内のブラウザからIPアドレスを入力してwebサーバーが動いているか確認する
動いていれば「Welcome to nginx!」が表示される
nginxのコンフィグやる
https://www.cyberciti.biz/faq/howto-install-setup-nginx-on-debian-linux-9/


不要なパッケージの削除

自動削除

# apt autoremove

apache

apacheは重いイメージあるしnginxを使いたいので削除

# service apache2 stop
# apt-get purge apache2 apache2-doc

/etcディレクトリのバックアップ

/etcディレクトリはUNIXLinuxでコンピューター夜のシステム設定ファイルなどが保存されている。
セットアップするときにいろいろと修正して間違ってしまうこともあるので最初にgitで変更履歴を管理できるようにする。
etckeeperというツールもあり、何台もサーバーを管理している人には便利そうだけれど今は一台だけだしgitの勉強もしたいのでgitで管理する。

githubのrepositories > newからリポジトリを作成する。privateも無料になったことだし今のところ設定ファイルを後悔する意味もないのでprivateにする。
リポジトリの「Clone or download」を押し、Clone with HTTPSのURLをコピーしておく。

https://github.com/user_name/repository_name.git    // user_name、repository_nameは自分のもの

/etcディレクトリに移動する。

/etc# git init    // 初期化
/etc# git add -A    // 全てのファイルを追加
/etc# git commit -m "initial commit"    // コメントを付けてコミット
/etc# git remote add origin https://github.com/user_name/repository_name.git    // "origin"という名前でgitにpushできるようにする
/etc# git push origin master    // ユーザー名とパスワードが求められるので入力し、originのmasterブランチにpushする

ここでgit 2.9以降から仕様が変わったらしく、「error: failed to push some refs to ~」というエラーが起きることがある。

# git push origin master
To https://github.com/user_name/repository_name.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/user_name/repository_name.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

git pullかなにかしてからpushしろという説明が表示されるが、pushしてもエラーになる。

# git pull origin master
From https://github.com/ultragenma/melchior_etc
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

ブランチをgithubのmasterにマージする必要がある。

# git merge --allow-unrelated-histories origin/master

テキストが開くので、一行目のコメントを必要なら変更する。
以下のメッセージが出たらマージが成功。

Merge made by the 'recursive' strategy.
 LICENSE   | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md |   2 +
 2 files changed, 676 insertions(+)
 create mode 100644 LICENSE
 create mode 100644 README.md

再度pushする。

# git push origin master

githubに/etcのファイルが追加されていれば完了。


IPアドレスの固定

/etc/network/interfacesを編集する。デフォルトではこうなっている。

# The primary network interface
auto eth0
iface eth0 inet dhcp

dhcpからstaticに変更し、固定したいアドレスを設定する。

# The primary network interface
auto eth0
iface eth0 inet static
    address 192.168.1.100    // 例:100に固定
    netmask 255.255.255.0
    gateway 192.168.1.1    // 接続しているルーターのアドレス

このままではip aコマンドで確認してもIPアドレスは変わっていないのでパソコンを再起動する。