一 系统环境
二 网络文件系统与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服务实现了网站目录的远程共享服务.

六 实现效果

基于Nfs和Samba的Lamp环境实现的更多相关文章

  1. 基于CentOS7的服务器搭建(LAMP环境)

    基于CentOS7的服务器环境搭建(LAMP环境) 一.安装MySQL组件 1.由于在CentOS7中,默认yum安装库中不含有mysql,我们可以下载mysql的分支MariaDB,如果必须要下my ...

  2. 【转存】阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3

    阿里云服务器下 LAMP 环境配置 —— 基于 CentOS 6.3  Posted on 2016年2月10日 by  学院君 1.Apache 配置 —————————————————– vi / ...

  3. •搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机

    本节所讲内容: 实战:搭建LAMP环境及快速部署双网站并实现基于域名的虚拟主机 LAMP架构:??? Linux+Apache+Mysql+PHP Linux+Apache+Mysql/MariaDB ...

  4. CentOS7.X基于LAMP环境搭建cacti

    1.搭建好LAMP环境 2.登录数据库创建cacti create database cacti default character set utf8; 创建cacti的账户密码 grant all ...

  5. LAMP环境CentOS6.4 PHP5.4随笔未整理

    首先安装一些辅助的软件或者说是依赖的关系包. 1.安装libxml2: libxml是一个用来解析XML文档的函数库.它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH.C#, Py ...

  6. LAMP环境搭建实现网站动静分离[转]

    目录: 1.环境概述 2.动静分离拓扑图 3.各服务器功能规划 4.各服务器基础环境配置 5.httpd安装配置 6.php安装配置及启用opcache加速功能 7.mysql安装配置 8.wordp ...

  7. lamp环境应用实践

    LAMP之apache2.4.33 apache工作模式 apache 常用工作模式有2种,区别在于 worker模式 1. 线程模式 2. 占用资源少 3. 稳定性略差 4. 并发大 prefork ...

  8. 7. LAMP环境搭建

    一.准备工作 1.安装编译工具gcc.gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源-- 1)编辑yum配置文件: # mount /dev/cdrom / ...

  9. CentOS 6.6 yum 搭建LAMP环境

    CentOS 查看操作系统版本 [root@oa ~]# cat /etc/redhat-releaseCentOS release 6.6 (Final) 参考linux centos yum安装L ...

随机推荐

  1. yii2:Url::toRoute 和 ActiveForm::begin action在二级目录生成地址错误

    yii2:Url::toRoute 和 ActiveForm::begin action在二级目录下生成地址错误. 正确地址: /www/super/web/wxreplay/edit-text?id ...

  2. centos 使用yum安装MySQL 5.7

    想在centos上安装一个MySQL,使用yum install mysql-server 安装提示仓库没有包,也是醉了. 找了很多博客,发现一个很好用的,推荐给大家. 地址:https://blog ...

  3. 【spark】常用转换操作:reduceByKey和groupByKey

    1.reduceByKey(func) 功能: 使用 func 函数合并具有相同键的值. 示例: val list = List("hadoop","spark" ...

  4. Linux各文件及目录说明2018-03-01更新

    本人wechat:YWNlODAyMzU5MTEzMTQ=. *** /etc /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/clo ...

  5. 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境

    一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...

  6. WWDC 2017, 让我们看看 iTunesConnect 有了哪些不同

    距离 WWDC 2017 过去已经有 7 天了,小伙伴们是不是已经发现我们的苹果后台和之前的界面有些略微的不同,如果有心的朋友下了 iOS 11 beta 版就会发现设备上的 App Store 界面 ...

  7. Python sh库学习

    官方文档有句话"allows you to call any program",并且: helps you write shell scripts in Python by giv ...

  8. WCF服务引用时错误: 无法导入 wsdl:portType详细信息

    WCF服务发布到IIS后,在客户端或WCFTestClient添加引用的时候报错如下: 错误: 无法导入 wsdl:portType详细信息: 在运行 WSDL 导入扩展时引发异常: System.S ...

  9. LeetCode Optimal Division

    原题链接在这里:https://leetcode.com/problems/optimal-division/description/ 题目: Given a list of positive int ...

  10. 洛谷P2661 信息传递

    传送门 题目大意:每个人每一轮可以把消息传给另一个人,问几轮后某个人可以从人 听到自己的消息. 题解:tarjian缩点,求缩点后缩的点包含的最少的点个数. 代码: 正解 #include<io ...