经常听到团队的小伙伴说:这个版本的扩展真难找,在本地运行正常的代码,上线之后却运行异常…诸如此类的问题大多是因为系统差异、扩展缺失、版本差异引起的。要解决此类问题搭建一个和线上一致的多人开发环境即可解决。
思路:搭建一台本地开发服务器,开发服务器和线上服务器环境保持一致,用samba服务映射到本地电脑磁盘,团队中所有人的开发代码都存储在开发机上,所有人的代码都是在开发机器上运行;团队成员无需再单独搭建开发环境,只需要挂载远程目录到本地磁盘,加上DNS解析,开发机上apache根据域名绑定对应的目录即可。
搭建过程:
1.一台PC主机,U盘安装CentOS5.11;
2.安装lamp或lnamp或lnmp环境,网上有很多关于LNAMP或LAMP组合安装的教程(我写过的另一篇博文,有需要的请移步->:LAMP安装手记(CentOS6.4+Apache-2.2.22+Mysql-5.1.63+PHP-5.2.17+phpmyadmin-3.4.10.2+ZendDebug),安装过程不再赘述,本文主要讲如何配置多人开发环境。
3.配置步骤
修改防火墙规则
vi /etc/sysconfig/iptables
添加如下规则
#samba
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
service iptables restart
4.安装samba
yum install samba system-config-samba samba-client samba-common
编辑samba配置文件
vi /etc/samba/smb.conf
[homes]
comment = Home Directories
browseable = no
writable = yes
create mode = 0755
force create mode = 0755
directory mode = 0755
force directory mode = 0755
; valid users = %S
; valid users = MYDOMAIN\%S
[share]
workgroup = www
netbios name = www
path = /home/share
browseable = yes
writeable = yes
service smb restart
[home]目录是每个samba账号对应的个人目录,就是/home下的个人目录,这里也就是每个账号对应的挂载目录;
[share]是共享目录。
简单介绍一下这几个参数的含义:
create mode – 这个配置定义新创建文件的属性。Samba在新建文件时,会把dos文件的权限映射成对应的unix权限,在映射后所得的权限,会与这个参数所定义的值进行与操作。然后再和下面的force create mode进行或操作,这样就得到最终linux下的文件权限。
force create mode – 见上面的描述。相当于此参数所设置的权限位一定会出现在文件属性中。
directory mode – 这个配置与create mode参数类似,只是它是应用在新创建的目录上。Samba在新建目录时,会把dos–>linux映射后的文件属性,与此参数所定义的值相与,再和force directory mode相或,然后按这个值去设置目录属性。
force directory mode – 见上面的描述。相当于此参数中所设置的权限位一定会出现在目录的属性中。
说明一点,上面的create mode和create mask参数是同义词,用哪个都可以;而directory mode和directory mask参数是相同的。
创建账号:
useradd zhangsan
passwd zhangsan
chmod -R 0755 /home/zhangsan
smbpasswd -a zhangsan 创建samba账号
service smb reload
测试samba 快捷键 windows(开始键)+R 在弹出的框中输入 \\samba服务器地址 然后回车 输入账号密码 如下图所示即为搭建配置成功
映射磁盘驱动器:
映射成功。
5.配置apache
编辑apache配置文件httpd.conf 添加
vi httpd.conf
Include /usr/local/apache/conf/vhost/*.conf
在/usr/local/apache/conf/vhost目录中添加配置文件
vi test.data.house.sina.com.cn.conf
添加如下内容
<VirtualHost *:88>
ServerName test.house.sina.com.cn
#ServerAlias localhost
DocumentRoot /home/yangyi/test.house.sina.com.cn
DirectoryIndex index.php index.html index.htm
<Directory /home/yangyi/test.house.sina.com.cn>
Options +Includes -Indexes
AllowOverride All
Order Deny,Allow
Allow from All
php_admin_value open_basedir /home/yangyi/test.house.sina.com.cn:/tmp:/proc
</Directory>
</VirtualHost>
重启apache
service httpd restart
本地添加DNS解析
192.168.1.110 test.house.sina.com.cn
在映射目录创建文件夹 添加测试文件 如下所示: