なにする
CentOS7 minimal インストールの状態から、
- 開発はWindowsで行って
- CentOS上ではビルドせず、実行のみ行う
ための環境構築および手順。(最低限に絞りました。)
もうちょい細かく
- Windows10 上の VSCode で .NET Core 2.1 Webアプリ を開発してビルド
- それを CentOS7 に samba で(エクスプローラで)アップ
- CentOS 上では実行のみを行い、Apache 2.4 経由で公開する
ための環境構築および手順。
初期環境
- Windows 10
- CentOS Linux release 7.5.1804(minimal インストール)
最終的にこういう構成になります
-
Windows 10
- VSCode (Visual Studio Code)
- .NET Core 2.1 SDK
-
CentOS Linux release 7.5.1804(minimal インストール)
- Apache 2.4
- samba
- .NET Core 2.1 ランタイム
はじめに
CentOS 7 minimal インストールの状態から、
Apache とsamba、.NET Coreランタイムを入れるまでのCentOS事前準備編です。
(要するにインフラ担当部分に相当)
※ ちなみにCentOS7 + Apache 環境がすでにあるなら、最後のランタイムのインストール(3行)だけでOKです。
開発環境の準備~デプロイまではこちら
https://qiita.com/miyapei/items/28f1b7360614551e7f15
CentOS 事前準備編 はじめます!
SELinuxについて
何もない状態からなら、まずは一通り動く状態にしてから設定したほうが楽だと思います。
# べ、別に面倒くさいとかややこしいとか、そんなんじゃないんだからね…
…というわけで無効化(異論は認める。すまんな…)
vi /etc/selinux/config
### SELINUX=disabled にします
reboot
### 起動後再接続したのち、Disabledになっているか確認
getenforce
Apache
インストール
### インストール
yum install httpd -y
### 起動
systemctl start httpd
### 自動起動有効化
systemctl enable httpd
### 確認
systemctl status httpd
ファイアウォールの設定
httpを許可します(最初なのでちょっと細かく書いておきます)
### 今動いてる?
systemctl status firewalld
### 今のzoneを確認
firewall-cmd --get-default-zone
public
### publicのzoneにhttpを恒久的に追加
firewall-cmd --add-service=http --zone=public --permanent
### 反映
firewall-cmd --reload
### 確認
firewall-cmd --list-all-zones | less
ブラウザからアクセスしてデフォルトページ見えたらOK
(今回必要ないけど一応バーチャルホストの仮設定も参考までに書いときます)
sambaでapacheユーザ流用して色々アップするみたいな想定で
ホームディレクトリ以下にドキュメントルート設定するよ
(この段階ではまだディレクトリも何も無いよ)
vi /etc/httpd/conf.d/vhost.conf
<VirtualHost *:80>
ServerName 192.168.0.123
DocumentRoot /home/apache/vhost
<Directory "/home/apache/vhost">
Require all granted
</Directory>
</VirtualHost>
samba
…の前に、hostnameを設定しておきます
hostname dev123
適当な名前でOK。
何故これが必要かというと、サーバのhostnameが初期状態のlocalhost.localdomainだと、
sambaでそもそも書き込めないか、グループ権限などで書き込めるようにしても変な動作になります。
(ディレクトリ1回の作成で4つできたりとかした…)
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/410cantacssamba.html
もしユーザ作成してしまった後に変更しても、
ユーザのDomainだけがlocalhostのままになっていると思うので
その場合はユーザを削除して再作成すればOKです。
インストール、ファイアウォールの設定
(Apacheと大体同じ)
yum install samba samba-common -y
systemctl start smb nmb
systemctl enable smb nmb
firewall-cmd --add-service=samba --zone=public --permanent
firewall-cmd --reload
sambaの設定(smb.conf)
vi /etc/samba/smb.conf
[global]
### ▼ [global] セクション変更したところ
# printing = cups
# printcap name = cups
load printers = no
# cups options = raw
### ▼ [global] セクションに以下追記
server string = Samba Server Version %v
dos charset = CP932
disable spoolss = yes
### ■ [homes],[printers],[print$] 全てコメントアウト
### ▼ 末尾に追記
[apache]
path = /home/apache
read only = no
保存して確認
testparm
samba用のユーザ作成
httpのドキュメントを置くためだけに使用するので、apacheユーザを流用することにしました。
### ログインシェル、ログインパスワードを変更(suできるように)
usermod -s /bin/bash apache
passwd apache
### ホームディレクトリを変更
usermod -d /home/apache apache
cd /home/
mkdir apache
chown apache:apache apache/
### 確認
less /etc/passwd
### samba用のユーザとして登録
pdbedit -a -u apache -f "Apache"
pdbedit -L
### samba再起動
systemctl restart smb nmb
エクスプローラから接続確認できたらOK
.NET Core
今回はサーバ上ではビルドはせず、ビルドしたプロジェクトを配置だけして動かす想定なので
ランタイムのインストールのみです。
rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
yum update
yum install aspnetcore-runtime-2.1
CentOS事前準備編としては以上になります。
開発環境の準備~デプロイまではこちら
https://qiita.com/miyapei/items/28f1b7360614551e7f15