以 CentOS 當作測試環境 server 時,如果習慣的開發環境是 Windows,會需要在 CentOS 內安裝 Samba,才能順利與 Windows 分享檔案。
先簡述一下我目前的開發環境:
- 正式環境(remote):CentOS 7
- 測試環境(local):CentOS 7(在 VirtualBox 裡面)
- 開發環境(local):Windows 10
由於我的 CentOS 都沒有安裝圖形介面,所以在裡面只能使用 VIM,我對於 VIM 的掌握程度沒有很高,所以直接在測試環境用 VIM 開發的效率會比較慢,我選擇在 Windows 的圖形介面裡,使用 VSCode 開發(當然 VIM 還是要練啦 XD)。
- 在 cmd 查詢工作群組(工作站網域) 通常會是 WORKGROUP 或是 HOMEGROUP
net config workstation
- 編輯 hosts(C:/Windows/System32/drivers/hosts) IP 設定為 server 的 IP,host 名稱就是 Windows 用來識別的共享名稱 左邊設定 IP、右邊是對應的名稱:
192.168.43.220 cent-os
設定後可以ping
看看 cent-os,測試目標 ip 是否為 192.168.43.220
- 安裝samba及相關套件
yum install samba samba-client samba-common -y
- 修改samba設定檔
vim /etc/samba/smb.conf
原來的設定可以都註解掉,改為以下:
[global]
workgroup = WORKGROUP # 步驟 1. 取得的工作群組名稱
server string = Samba Server Version %v
netbios name = cent-os # 步驟 2. 設定的名稱
map to guest = bad user # 因為 Windows 無法匿名登入,需對應至 guest
dns proxy = no
dos charset = cp950 # 因為是要分享給 Windows 的中文環境
load printers = no
[Share] # Winodws會看到資料夾名稱
path = /srv/www/sitename # 你的網站根目錄
valid users = @smbgrp
guest ok = no # 不須認證
browsable = yes # 瀏覽權限
writable = yes # 寫入權限
read only = no # 關閉唯獨
- 設定可存取 samba server 的使用者帳號與密碼
smbpasswd -a akccakcctw
- 啟動 samba server,並設定開機後自動啟動
systemctl enable smb
systemctl enable nmb
systemctl restart smb
systemctl restart nmb
- 從檔案總管開啟
打開檔案總管,在「網路」內,應該就可以看到
CENT-OS
了(Windows 似乎會自動轉為大寫),也可以按 Ctrl + R,輸入\\cent-os
,快速開啟分享資料夾。
如果出現權限問題,可嘗試關閉 SElinux
在本機開發基本上不會有安全性問題,因此可以直接把 SElinux 關閉
getenforce # 取得 SElinux 狀態
setenforce disabled #(enforcing, permissive, disabled)
reboot # 重新開機