俺のUbuntu18.04 LTSの初期設定メモ(前半)
これの続編です。
##今回やること
- Nginxの導入と初期設定
- certbotの導入
- pyenvの導入とPythonのインストール
##Nginxの導入と初期設定
最新版(現時点)を入れます。
公式にある通りにインストール
$ sudo apt install curl gnupg2 ca-certificates lsb-release
$ echo "deb http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
$ curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
$ sudo apt-key fingerprint ABF5BD827BD9BF62
$ sudo apt update
$ sudo apt install nginx
###Nginxの初期設定
####起動
$ sudo systemctl enable nginx # エナブル
$ sudo systemctl start nginx # 起動
$ sudo systemctl status nginx # 起動確認
####WEBルート設定
$ sudo mkdir -p /var/www/example.com/html #WEBルート作成
$ sudo chown -R $USER:$USER /var/www/example.com/html #オーナー変更
$ sudo chmod -R 755 /var/www/example.com #パーミッション変更
$ echo hello > /var/www/example.com/html/index.html # index.htmlを作成
####conf設定
初期設定では/etc/nginx/conf.d/
の中にある*.conf
ファイルを読み込む。
それぞれの運用方法にあった管理方法を選択すること。
今回は/etc/nginx/sites-available
に作った設定ファイルを/etc/nginx/sites-enabled
の中にシンボリックリンクとして貼り付け、その中を読み込む設定する。
そうすることでサイトを落とす時にリンクを削除するだけになるみたい。
シンボリックリンク貼る時は絶対パス!(これでハマった)
$ cd /etc/nginx
$ sudo mkdir sites-available #各サイト用conf置き場
$ sudo mkdir sites-enabled #アクティブなサイトのショートカット置き場
$ sudo cp conf.d/default.conf sites-available/example.com # confファイルをコピー
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
####example.com(.conf)の編集
- server_name localhost;
+ server_name example.com;
- root /usr/share/nginx/html;
+ root /var/www/example.com/html;
####nginx.confの編集
/etc/nginx/sites-enabled
の中身を読み込むように変更
- include /etc/nginx/conf.d/*.conf;
+ include /etc/nginx/sites-enabled/*;
####設定ファイルの読み込み
$ sudo nginx -t # シンタックスチェック
$ sudo nginx -s reload # 設定ファイル読み込み
example.com
またはサーバーIPにアクセスして表示されればOK。
##certbotの導入
簡単に無料SSL化できるツール。
こちらも公式通りにインストール
$ sudo apt update
$ sudo apt install software-properties-common
$ sudo add-apt-repository universe
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt update
$ sudo apt install certbot python-certbot-nginx
$ sudo certbot --nginx # いろいろ聞かれるの答えていく。
$ sudo certbot renew --dry-run #自動更新テスト
$ ls -la /etc/cron.d/ # certbotのcronがあるか確認
https://example.com
にアクセスして、SSL化されていたらOK。
##pyenvの導入
pyenv installerを使う。
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
~/.profile
に以下を追記
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
$ source ~/.profile # 再読み込み
$ pyenv update # pyenvアップデート
###使い方
$ pyenv install --list # インストールできるリスト
$ pyenv install x.x.x # version指定してインストール
$ pyenv version # 使用中のバージョン
$ pyenv versions # インストール済みのリスト
$ pyenv global x.x.x # グローバル指定
$ pyenv local x.x.x # ローカル指定
$ pyenv uninstall x.x.x # 削除
$ pyenv -v # pyenvのバージョン
###pyenvのpythonインストールでコケる時
いろいろ足りないのが原因なので、一括インストール
$ sudo apt install libffi-dev zlib1g-dev git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
以上。
##次回やること
- pipenvの導入
- responderの導入
参考:
nginxでsites-availableとsites-enabledを用いたバーチャルホストの設定
どのバージョンのnginxを使うべきか?
NGINX Versioning Explained