一 系统环境
二 网络文件系统与web环境的结合
三 搭建lamp环境
四 实现nfs服务
五 实现samba服务
六 实现效果
一 系统环境
系统平台:CentOS release 6.8 (Final)
Lamp:httpd-2.2.15 mysql-server-5.1.73 php-5.3.3
Nfs:nfs-utils-1.2.3 rpcbind-0.2.0
Nfs Server IP:172.18.67.1
Samba:samba-3.6.23 samba-client-3.6.23 samba-common-3.6.23
Samba Server IP:172.18.67.1
SELINUX=disabled
二 网络文件系统与web环境的结合
1.企业网站建设必然离不开服务器运维,一个稳定高效的服务器环境是保证网站正常运行的重要前提。本文将会详细讲解Linux系统上如何搭建配置高效的lamp服务环境,并在lamp环境中搭建起企业自己的网站。
2.NFS是Network File System的缩写,即网络文件系统。一种适用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
3.为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。本文简要介绍如何在Linux操作系统上搭建Samba服务器和简单配置。
4.如何将这三项技术完美的组合起来是本文将讨论的重点。
三 搭建lamp环境
在IP地址为172.18.67.2的这台服务器上搭建lamp环境:
1.准备工作:
1).配置防火墙,开启80端口、3306端口
# iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT #允许80端口通过防火墙
# iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT #允许3306端口通过防火墙
2).关闭SELINUX
# vim /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq #保存,关闭
# shutdown -r now #重启系统
2.安装:
1).安装httpd:
在安装httpd亲需要安装两个apache的扩展包apr和apr-util:
# yum install -y apr apr-util
接下来安装httpd:
# yum install -y httpd
# /etc/init.d/httpd start #启动Apache
注:Apache启动之后会提示错误:
正在启动 httpd:httpd: Could not reliably determine theserver’s fully qualif domain name, using ::1 for ServerName
解决办法:
# vim /etc/httpd/conf/httpd.conf #编辑
找到
#ServerName www.example.com:80
修改为
ServerName www.mrlapulga.com:80 #这里设置为你自己的域名,如果没有域名,可以设置为localhost
:wq! #保存退出
# chkconfig httpd on #设为开机启动
# /etc/init.d/httpd restart #重启Apache
2).安装MySQL:
# yum install mysql mysql-server #询问是否要安装,输入Y即可自动安装,直到安装完成
# /etc/init.d/mysqld start #启动MySQL
# chkconfig mysqld on #设为开机启动
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
为root账户设置密码:
# mysql_secure_installation
回车,根据提示输入Y
输入2次密码,回车
根据提示一路输入Y
最后出现:Thanks for using MySQL!
MySql密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld restart #重启
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
3).安装PHP:
# yum install php
根据提示输入Y直到安装完成
安装PHP组件,使 PHP5 支持 MySQL
# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pearphp-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
这里选择以上安装包进行安装
根据提示输入Y回车
# /etc/init.d/mysqld restart #重启MySql
# /etc/init.d/httpd restart #重启Apche
4).相关配置:
1>.Apache配置
# vim /etc/httpd/conf/httpd.conf #编辑文件
ServerTokens OS
#修改为:ServerTokensProd (在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On
#修改为:ServerSignatureOff (在错误页中不显示Apache的版本)
Options Indexes FollowSymLinks
#修改为:Options i n c l u d es e x e cCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)
#AddHandler cgi-script .cgi
#修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)
AllowOverride None
#修改为:AllowOverrideAll (允许.htaccess)
AddDefaultCharset UTF-8
#修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)
Options Indexes MultiViews FollowSymLinks
#修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var
#修改为:DirectoryIndex index.html index.htm Default.html Default.htm
index.php Default.php index.html.var
#(设置默认首页文件,增加index.php)
KeepAlive Off
#修改为:KeepAliveOn (允许程序性联机)
MaxKeepAliveRequests 100
#修改为:MaxKeepAliveRequests 1000 (增加同时连接数)
:wq! #保存退出
# /etc/init.d/httpd restart #重启
# rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html #删除默认测试页
2>.php配置
# vim /etc/php.ini #编辑
date.timezone = PRC
#把前面的分号去掉,改为date.timezone = PRC
disable_functions = p a s s t h r u,e x e c,s y s t e m,chroot,scandir,chgrp,chown,shell_e x e c, p r o c _ o p e n,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,pope p a s s t h r u,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,
getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off
#禁止显示php版本的信息
magic_quotes_gpc = On
#打开magic_quotes_gpc来防止SQL注入
short_open_tag = ON
#支持php短标签
open_basedir = .:/tmp/
#设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题(例如:织梦内容管理系 统),可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
:wq! #保存退出
# /etc/init.d/mysqld restart #重启MySql
# /etc/init.d/httpd restart #重启Apche
测试:
# cd /var/www/html
# vim index.php #输入下面内容
<?php
phpinfo();
?>
:wq! #保存退出
在客户端浏览器输入服务器IP地址,可以看到如下图所示相关的配置信息!
其他:
后续安装PDO_MySQL拓展模块,只需要: yum install php-mysql
手动安装会出现错误(configure: error: mysql_query missing!?)
四 实现nfs服务
在IP地址为172.18.67.1的这台服务器上搭建nfs:
1).安装nfs:
# yum install -y nfs-util rpcbind
# service nfs start
2).Server端配置:
# mkdir /data
将下载好的wordpress解压至/data
# vim /etc/exports
/data/wordpress 172.18.67.2(rw,async)
:wq #保存退出
# /etc/init.d/nfs start #启动服务
3).在172.18.67.2这台服务器上编辑/etc/fstab追加如下内容:
# vim /etc/fstab
172.18.67.1:/data/wordpress /var/www/html nfs defaults 0 0
:wq #保存退出
# reboot #重启系统
4).以上只是配置了nfs的最基本的功能,接下来详细介绍nfs的Server端配置文件:
/etc/exports或 /etc/exports.d/*
/PATH/TO/SOME_DIR clients1(export_options, ...) clients2(export_options, ...)
clients:
single host:ipv4, ipv6: #FQDN
network:address/netmask #同时长短格式的掩码
wildcards: #主机名通配,例如:*.magedu.com;
netgroups: #NIS域内的主机组;@group_name;
anonymous: #使用*通配所有主机;
General Options(常用选项):
ro: #只读
rw: #读写
sync: #同步模式,内存数据实时写入磁盘
async: #异步模式,把内存中的数据定期写入磁盘
User ID Mapping(用户映射选项):
root_squash:
#压缩root用户,一般指将其映射为nfsnobody, 这个选项不允许 root 用户访问挂载上来的 NFS 卷
no_root_squash:
#不压缩root用户,这个选项允许 root 用户访问挂载上来的 NFS 卷。
all_squash:
#压缩所有用户,这个选项对于公共访问的 NFS 卷来说非常有用,它会限制所有的 UID 和 GID,只使用匿名用户。缺省设置是 no_all_squash。
anonuid and anongid:
#这两个选项将匿名 UID 和 GID 修改成特定用户和组帐号。
注意:
每个共享文件系统需要独立定义一行
客户端主机之间需要使用空格隔开
客户端主机的定义可以是一个网段,单台主机,主机名
服务器端:
# exportfs -ar #全部重新挂载配置文件里面的到内核,也可以理解为测试文件
# exportfs -au #全部卸载配置文件,即便客户端已经挂载
# export -u FS: #关闭指定的导出的文件系统
服务器端查看:
# showmount -a #显示被客户端加载的文件系统以及ip
# showmount -d #显示被客户端加载的目录
# exportfs #可以直接查看被挂载的文件系统
5).此时我们已经利用nfs服务实现了网站目录的远程共享服务.
五 实现samba服务
在IP地址为172.18.67.1的这台服务器上搭建samba:
1).安装samba:
# yum install -y samba samba-common
2).samba的配置:
samba的配置:
/etc/samba/smb.conf
两类配置段:
全局配置
[global]
Network-Related Options
workgroup =
server string =
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 127. 192.168.12. 192.168.13.
hosts allow = 127. 192.168.12. 192.168.13.
白名单:允许那些ip使用访问
网络,空格隔开
127.
192.168.12.
192.168.13.
hosts deny=
黑名单:禁止哪些用户访问
Logging Options:日志选项
log file = /var/log/samba/log.%m #日志文件
max log size = 50 #日志最大大小,满额就会新建日志文件
Standalone Server Options
security = user #安全级别
设定安全级别:取值有四个;
share:匿名共享;
user:使用samba服务自我管理的账号和密码进行用户认证;用户必须是系统用户,但密码非为/etc/shadow中的密码,而由samba自行管理的文件,其密码文件的格式由passdb backend进行定义;
server:由第三方服务进行统一认证;
domain:使用DC进行认证;基于kerberos协议进行;
passdb backend = tdbsam #用户账户放到tdbsam加密的文件里面
Printing Options(打印选项):
load printers = yes #是否加载打印机
cups options = raw #通用unix打印服务的选项接口,默认都是raw
Domain Members Options(域控制选项,无需修改):
Domain Controller Options(域控制选项,无需修改):
Browser Control Options(浏览器控制选项,默认值即可):
共享文件系统配置
[SHARED_NAME]
有三类:
[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录;
[printers]:定义打印服务;
[shared_fs]:定义共享的文件系统;
常用指令:
[shared_name]
path = /path/to/share_directory #开放路径
comment = Comment String #描述信息,注释
guest ok = {yes|no} #是否允许来宾用户访问
public = {yes|no} #是否公开给所有人访问
browseable = no #如果和用户属主属组无关的时候,是否允许看到目录内容
writable = {yes|no} #共享权限,是否拥有写权限,还需要本地文件系统的权限
read only = {yes|no} #是否可以写入
write list = +GROUP_NAME #拥有写权限的用户、组列表
+groupname 组名
@groupname 组名
username 用户名字
3).将主机172.18.67.2与samba服务联系起来,需如下配置:
# vim smb.conf
[mysqldata]
comment = mysql data directory
path = /data/wordpress
public = yes
browseable = yes
writeable = yes
write list = mrlapulga
:wq #保存退出
检测:testparm
重启:
# /etc/init.d/smb restart
4).建立相应目录并授权:
# mkdir -p /data/eordpress
赋予本地权限:
# chmod a+w /data/wordpress
5).创建samba账号:
# useradd -d /data/wordpress mrlapulga
# chown R mrlapulga:mrlapulga /data/wordpress
# smbpasswd -a mrlapulga
接着输入两次密码
6).启动samba:
# /etc/init.d/smb start
# /etc/init.d/nmb start
7).在172.18.67.2这台服务器上安装samba客户端并实现访问172.18.67.1:
安装samba:
# yum install -y samba-client
客户端实现连接:
# smbclinet -L 172.18.67.1 -U mrlapulga
Enter mrlapulga's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-33.el6)
mrlapulga Disk Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-33.el6]
Server Comment
--------- -------
Workgroup Master
--------- -------
也可实现挂载连接:
# mount -t cifs //172.18.67.1/data/wordpress /var/www/html/ -o username=mrlapulga,password=******
6).此时我们已经利用samba服务实现了网站目录的远程共享服务.