一 系统环境
二 网络文件系统与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. WCF简单学习

    前两天学习了WCF的一些基础东西,好像不怎么用,但是学习一下还是有助自己增长知识滴.既然是学习就先偷一下别人的概念基础.wcf中有一个ABC的概念,就是第一: "A" 是地址,就是 ...

  2. LeetCode OJ:Insertion Sort List (插入排序链表)

    Sort a linked list using insertion sort. 用插入排序来排序一个list,额, 我写的好麻烦啊, debug了好久,至少提交了5次...写吐了快,先贴代码,写的也 ...

  3. 面试题48:用C++设计一个不能被继承的类

    解法一:把构造函数设为私有 将构造函数定义为私有,然后通过定义公有的静态函数来创建和释放类的实例. { public: static SealedClass1* GetInstance() { ret ...

  4. 在Ubuntu 14.04 TLS下openvas V8.0源代码安装过程

    [Qboy原创]详细记录源代码的安装过程 1.下载原代码 在http://www.openvas.org/install-source.html下载 Libraries 8.0.8 Scanner 5 ...

  5. 关于htonl()

    htons #include <arpa/inet.h> uint16_t htons(uint16_t hostshort); htons的功能:                     ...

  6. Flask 的 请求扩展 与 中间件

    Flask 的 请求扩展 与 中间件 flask 可以通过 扩展(装饰器)来实现类似于django 中间件的功能 类似于django 的中间件, 在执行视图函数之前, 之后的执行某些功能 1 @app ...

  7. 如何在win7下装ubuntu雙系統

    如何在win7下装ubuntu(硬盘版安装) 1)首先还是分区,在计算机上右键--管理--磁盘管理 装Ubuntu分配的硬盘大小最好是(20G以上)不要太小,这里请注意,ubuntu和windows文 ...

  8. 深入解析Glide源码

    Glide 是 Google的开源项目, Glide具有获取.解码和展示视频剧照.图片.动画等功能,它还有灵活的API,这些API使开发者能够将Glide应用在几乎任何网络协议栈里.创建Glide的主 ...

  9. 3天学习完AngularJS基础内容小结

    简介:AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库. 一.AngularJS大致功能模块 二.页面交互变得简单 1.示例:计算价格 <htm ...

  10. DotNet Core Console 程序使用NLog

    参考:https://github.com/NLog/NLog/wiki/Tutorial 步骤: 1. 使用Nuget安装NLog.Extensions.Logging Install-Packag ...