因为买不起MAC PRO,因此想研究下在windows下进行php开发的最佳方式。
打算探索方式,php
在网上看到vagrant问题颇多,因此不打算尝试这种方式。
本篇文章介绍如何利用Vmware搭建php开发环境。特别推荐宝塔面板,很是强大,能够在面板任意切换php版本,更强大的是还能切换web服务器,你想用apache就用apache,apache用着不爽了,你能够直接在面板卸载apache,安装nginx。html
这种方式须要安装VMware Tools,linux
经过虚拟机 > 安装(或升级)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
这种安装很简单,直接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项目能成功运行。数据库
Yum软件仓库来安装Samba服务程序yum install samba
apache
[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
映射成功右边会出现映射的网络驱动器:
本文为做者本身总结的文章,因为做者的水平限制,不免会有错误,欢迎你们指正,感激涕零。