前几天项目外网出现了点问题,文件上传后无法覆盖,因此需要改动,由于文件呢上传使用的samba服务。而测试的静态资源服务器上还未配置samba。因此经理让我学着配置一下,遇到几点问题。
1、首先是安装的问题。安装的时候,先是从网上下载了samba的安装文件。一共三个,然后用rpm 安装,可是总是报依赖安装错误。后来按照网上的方法,强制安装使用命令:rpm -ivh samba-3.0.4-0.5.1.i386.rpm -f --nodeps。这样三个文件正常安装。
2、安装完成后, 使用命令启动。可是开始报 有依赖包找不到的问题。libldap.so.2 这个包。因此妄图下载一个安装上,可是费尽千辛万苦下载到后,再次启动,却报了另外一个依赖文件找不到。看来这种手动安装的方式只能放弃。
3、使用yum -y install samba 安装。 总是报上篇文章那个问题,究其原因是,配置文件没有配好。配好后,执行命令,终于正常安装。
3、samba安装好之后,依照正常流程进行配置。 无非就是gloabl 然后手动加一个共享文件夹。 security = user 。用share的时候,只能读不能写,因此要用user模式。使用user模式,则要为samba分配一个用户。我采用的做法是 先添加一个虚拟用户 useradd sambauser。 然后再用 smbpasswd -a sambauser为samba添加这个用户。
useradd sambauser
passwd sambauser
会提示输入密码, 输入123456 。用户建好,用户名:sambauser 密码:123456
添加到samba的用户中。
smbpasswd -a sambauser
然后会提示输入两次密码,输入123456
最后添加 共享文件夹 :
[nginx]
comment = Nginx html folder
path = /var/www/html/test
valid users = sambauser
public = yes
writable = yes
printable = no
4、通过上述配置后。 重启服务,可以正常访问该文件夹,但是看不到文件,只能看见文件夹,比如 nginx 下面有一个index.html 和一个css 文件夹,只能看见css文件夹,却看不到index.html文件。而且无法写入文件。 后来搜索了很长时间,终于找到了解决方案。多谢这篇文章:http://gaoshancn.blog.51cto.com/674227/1045805。 原因是linux的SELINUX 阻挡了。我将它改为容忍模式。 先执行这条命令:getenforce 结果是: Enforcing 最高级别限制 然后执行:setenforce 0 将其改为容忍模式。再次执行 : getenforce 结果为:Permissive。 重启访问, 终于正常。本来重启后,有一次可以正常读写共享文件了。 但是之后服务器死掉了。因此强制重启,重启后,就出现了那个只能读不能写的问题。而且,本来正常访问的Apache也出现请求被拒绝的错误。 报权限不足! 究其原因,应该是 selinux的原因。
第四点,对我的教训特别深刻,几乎用了整整半天的时间才解决。我想很长时间内不会忘记吧。 记录下来!