利用vmware搭建php開發環境

因爲買不起MAC PRO,因此想研究下在windows下進行php開發的最佳方式。
打算探索方式,php

  1. 利用vmware搭建php開發環境;
  2. 利用docker搭建php開發環境。

在網上看到vagrant問題頗多,因此不打算嘗試這種方式。
本篇文章介紹如何利用Vmware搭建php開發環境。特別推薦寶塔面板,很是強大,能夠在面板任意切換php版本,更強大的是還能切換web服務器,你想用apache就用apache,apache用着不爽了,你能夠直接在面板卸載apache,安裝nginx。html

第一種,利用vmware的文件夾共享

這種方式須要安裝VMware Tools,linux

安裝方式1:

經過虛擬機 > 安裝(或升級)VMware Tools
這種方式安裝,要確保kernel,kernel-devel,kernel-headers版本同樣,若是不同,會出現錯誤:nginx

The path "" is not a valid path to the 3.10.0-229.7.2.e17.x86_64 kernel headers.

若是是kernel-devel與kernel,kernel-headers版本不同,能夠先卸載,再安裝:git

yum -y remove kernel-devel*
yum -y install kernel-devel*

也能夠直接到rpmfind這類網站找版本對應的包安裝,能夠參考本站文章VMmware安裝VMware Tools問題解決github

安裝方式2,安裝open-vm-tools

這種安裝很簡單,直接yum install open-vm-tools
可是若是你內核版本在4如下,就要以特殊方式啓動,不然apache沒法訪問共享文件夾目錄。特殊啓動方式:web

/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other

具體緣由見:https://github.com/vmware/ope...docker

優缺點

這種方式雖然很方便地實現了文件共享,但因爲是從windows共享到linux,windows的文件系統是ntfs,linux不能很好識別。因此,在共享文件夾沒法建立軟連接,所以Laravel開發是不適合這種方式。Wordpress以及Thinkphp項目能成功運行。數據庫

第二種,基於samba文件共享服務

安裝並配置samba

Yum軟件倉庫來安裝Samba服務程序
yum install sambaapache

Samba服務程序中的參數以及做用:

[global] #全局參數。
workgroup = MYGROUP #工做組名稱
server string = Samba Server Version %v #服務器介紹信息,參數%v爲顯示SMB版本號
log file = /var/log/samba/log.%m #定義日誌文件的存放位置與名稱,參數%m爲來訪的主機名
max log size = 50 #定義日誌文件的最大容量爲50KB
security = user #安全驗證的方式,總共有4種
#share:來訪主機無需驗證口令;比較方便,但安全性不好
#user:需驗證來訪主機提供的口令後才能夠訪問;提高了安全性
#server:使用獨立的遠程主機驗證來訪主機提供的口令(集中管理帳戶)
#domain:使用域控制器進行身份驗證
passdb backend = tdbsam #定義用戶後臺的類型,共有3種
#smbpasswd:使用smbpasswd命令爲系統用戶設置Samba服務程序的密碼
#tdbsam:建立數據庫文件並使用pdbedit命令創建Samba服務程序的用戶
#ldapsam:基於LDAP服務進行帳戶驗證
load printers = yes #設置在Samba服務啓動時是否共享打印機設備
cups options = raw #打印機的選項
[homes] #共享參數
comment = Home Directories #描述信息
browseable = no #指定共享信息是否在「網上鄰居」中可見
writable = yes #定義是否能夠執行寫入操做,與「read only」相反
[printers] #打印機共享參數
comment = All Printers
path = /var/spool/samba #共享文件的實際路徑(重要)。
browseable = no
guest ok = no #是否全部人可見,等同於"public"參數。
writable = no
printable = yes

配置共享資源

打開配置文件
vim /etc/samba/smb.conf
未設置共享目錄的配置文件:

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

寫入配置後:

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
        
# 共享民稱
[share] 
     # 註釋
     comment = share Directories
     # 共享目錄
     path = /www/wwwroot
     # 關閉全部人可見
     public = no
     # 容許寫入操做
     writable = yes

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

修改配置後重啓samba:
systemctl restart smb
開機啓動
systemctl enable smb

建立用於訪問共享資源的帳戶信息

在RHEL 7系統中,Samba服務程序默認使用的是用戶口令認證模式(user)。這種認證模式能夠確保僅讓有密碼且受信任的用戶訪問共享資源,並且驗證過程也十分簡單。不過,只有創建帳戶信息數據庫以後,才能使用用戶口令認證模式。另外,Samba服務程序的數據庫要求帳戶必須在當前系統中已經存在,不然往後建立文件時將致使文件的權限屬性混亂不堪,由此引起錯誤。

pdbedit命令用於管理SMB服務程序的帳戶信息數據庫,格式爲「pdbedit [選項] 帳戶」。在第一次把帳戶信息寫入到數據庫時須要使用-a參數,之後在執行修改密碼、刪除帳戶等操做時就再也不須要該參數了。pdbedit命令中使用的參數以及做用以下表所示。

參數 做用
-a 用戶名 創建Samba用戶
-x 用戶名 刪除Samba用戶
-L 列出用戶列表
-Lv 列出用戶詳細信息的列表

我這裏建立samba共享服務是爲了方便php開發,因此我以www用戶建立samba帳戶

[root@localhost ~]# id www
uid=1000(www) gid=1000(www) groups=1000(www)
[root@localhost ~]# pdbedit -a -u www
new password:
retype new password:
Unix username: www
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3548489930-144868596-3428749032-1001
Primary Group SID: S-1-5-21-3548489930-144868596-3428749032-513
Full Name:
Home Directory: \localhostwww
HomeDir Drive:
Logon Script:
Profile Path: \localhostwwwprofile
Domain: LOCALHOST
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 23:06:39 CST
Kickoff time: Wed, 06 Feb 2036 23:06:39 CST
Password last set: Wed, 17 Apr 2019 17:23:10 CST
Password can change: Wed, 17 Apr 2019 17:23:10 CST
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

開放防火牆

windows訪問samba的共享目錄若是隻需開發tcp 445端口就好,
iptables 開發端口

iptables -I INPUT -p tcp --dport 445 -j ACCEPT
service iptables save

firewalld開發端口

firewall-cmd --permanent --zone=public --add-port=445/tcp
firewall-cmd --reload

 映射網絡驅動器

右鍵此電腦,映射網絡驅動器

圖片描述

文件夾填寫:\192.168.231.136share
映射成功右邊會出現映射的網絡驅動器:

clipboard.png

參考文章

第12章 使用Samba或NFS實現文件共享。

本文爲做者本身總結的文章,因爲做者的水平限制,不免會有錯誤,歡迎你們指正,感激涕零。
相關文章
相關標籤/搜索