【俺メモ】CentOS7.2で.NET CoreとSQL Server on Linuxでアプリケーションの開発スタートまで

今までLinuxサーバでC#使えんかったけど、.NET CoreでC#できるようになったで。
それにSQL ServerもLinux版が出たからセットで試すで。
とりあえず、Vagrant使ってCentOS7.2を動かしてるところからスタートやで。

# .NET Core

## .NET Core SDKインストール

とりあえず、インストール方法の説明サイト（CentOS用）を参考にするで。
https://www.microsoft.com/net/core#linuxcentos

### インストール

```shell-session:bash
# ライブラリインストール
$ sudo yum install libunwind libicu
# インストールモジュール取得
$ curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=843449
# インストール先ディレクトリ作成＆解凍
$ sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
# シンボリックリンク貼り
$ sudo ln -s /opt/dotnet/dotnet /usr/local/bin
```
※モジュール取得のURLは変更になる場合があるさかい、その都度リンク先を確認してや。

### インストール確認

```shell-session:bash
$ dotnet
```
と、打つと

```shell-session:bash
Microsoft .NET Core Shared Framework Host

  Version  : 1.1.0  #←※ここでバージョン確認やで
  Build    : 928f77c4bc3f49d892459992fb6e1d5542cb5e86

Usage: dotnet [common-options] [[options] path-to-application]

Common Options:
  --help                           Display .NET Core Shared Framework Host help.
  --version                        Display .NET Core Shared Framework Host version.

Options:
  --fx-version <version>           Version of the installed Shared Framework to use to run the application.
  --additionalprobingpath <path>   Path containing probing policy and assemblies to probe for.

Path to Application:
  The path to a .NET Core managed application, dll or exe file to execute.

If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1' in your environment.

To get started on developing applications for .NET Core, install the SDK from:
  http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
```
と出ればOKやで。

## ひな形作成

アプリケーションのひな形作成にはdotnet new コマンドや。
とりあえず、newコマンドの説明な。

```shell-session:bash
$ dotnet new [arguments] [options]
```


# SQL Server On Linux

## Vagrant設定

※SQLServer on Linuxの動作には3.25GB以上のメモリを積んだマシンが必要やで。
Vagrantファイルを修正しといてや。

```rb:Vagrant
  config.vm.provider "virtualbox" do |vb|
    # Customize the amount of memory on the VM:
    vb.memory = "4096" #←適当に数値変えてや
  end
```

## インストール

とりあえず、ここを参考に進めていくで。
https://docs.microsoft.com/sql/linux/sql-server-linux-setup-red-hat
※vagrant上のvagrantユーザーでコマンドたたくからroot権限関連で差異があるさかい、注意な。

```shell-session:bash
$ curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > mssql-server.repo
$ sudo cp mssql-server.repo /etc/yum.repos.d/mssql-server.repo
$ sudo yum install -y mssql-server
```

## 初期設定
SQLServerのsaアカウントのパスワード設定やで。
8文字以上で大文字小文字が混在していないとアガンみたいやで。

```shell-session:bash
$ sudo /opt/mssql/bin/mssql-conf setup
```

## 起動確認

```shell-session:bash
$ sudo systemctl status mssql-server
#もし起動してなかったら
$ sudo systemctl start mssql-server
```

## ポート開放

1433番ポートの解放が必要やで。
firewalldつこうてる場合は下記のコマンドうってや。

```shell-session:bash
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload
```

## ms-toolsインストール

そのままやと、SQLServer操作できひんからツールのインストールや。
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup-tools#RHEL

```shell-session:bash
$ curl https://packages.microsoft.com/config/rhel/7/prod.repo > prod.repo
$ sudo cp prod.repo /etc/yum.repos.d/msprod.repo
$ sudo yum update
# 一旦↓を削除しないとアカンみたいやで
$ sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
$ sudo yum update
# んで、インストール、途中でライセンスに同意する"YES"を2回タイプしないとアカンで。
$ sudo yum install mssql-tools unixODBC-devel
# PATHに追加や。
$ echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
$ source ~/.bashrc
```

これでsqlcmdが使えたらOKやで。

```shell-session:bash
$ sqlcmd -S localhost -U SA -P '<YourPassword>'
```

## WindowsのVisualStudio2017から接続

※この部分は失敗したから無視してや。（今後の為に残しておく）
※ふつうにSQLServerManagementStudioで接続できるで。

VisualStudioのサーバエクスプローラーから接続する際は
「互換性のないバージョンのSQL Serverが検出されました。」のエラーがでるからツールのインストールや。

ここのページは2015用やけど、下に2017の場合は
https://msdn.microsoft.com/library/mt204009.aspx

SQL Server Data Tools (16.5) のダウンロードリンク（VS2017の場合は不要）
https://msdn.microsoft.com/mt186501

DacFx と SqlPackage.exe (16.5) のダウンロードリンク
https://www.microsoft.com/ja-JP/download/details.aspx?id=54106

「Visual Studio 2017 で SSDT を使用する場合は、AS コンポーネントと RS コンポーネントをインストールします。」とあるで。
つうわけで、下の二つのツールをダウンロードしてインストールしてや。
Microsoft Analysis Services Modeling Projectsのダウンロードリンク
https://marketplace.visualstudio.com/items?itemname=probitools.microsoftanalysisservicesmodelingprojects

Microsoft Report Projects for Visual Studioのダウンロードリンク
https://marketplace.visualstudio.com/items?itemname=probitools.microsoftreportprojectsforvisualstudio

※ダブルクリックでVSIXインストーラーが立ち上がるで。

# その他WEB関連設定

## nginxのリバースプロキシ設定

```shell-session:bash
# インストール
$ sudo yum --enablerepo=epel -y install nginx
$ sudo yum install -y nginx
# 設定ファイルバックアップ
$ sudo cp -p /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.org
# 設定ファイル修正
$ sudo vi /etc/nginx/conf.d/default.conf
```
で、プロキシ設定や。
https://www.server-world.info/query?os=CentOS_7&p=nginx&f=6
このあたり参考にしてや。

## HTTPポートの開放

firewalldつこうてる場合は、80番ポート開放してや。

```shell-session:bash
# HTTPポート開放
$ sudo firewall-cmd --add-service=http --permanent 
# リロード
$ sudo firewall-cmd --reload
```