热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LAMP配置规范-SINA

规范的意义没有规矩,不成方圆。这话应该都不陌生,分析我们以往在服务器使用方面的情况,普遍的现象是大家对服务器的使用随意性很大,没有一个规范进行指导和约束,管理员和开发人员基本可以随意配置使用服务器,因此造成了很多问题:系统维护管理的难

规范的意义

  • 没有规矩,不成方圆。 这话应该都不陌生,分析我们以往在服务器使用方面的情况,普遍的现象是大家对服务器 的使用随意性很大,没有一个规范进行指导和约束,管理员和开发人员基本可以随意配置 使用服务器,因此造成了很多问题:
  • 系统维护管理的难度和成本越来越大
  • 服务器配置无法统一,开发环境配置无法统一
  • 系统部在完成服务器的基本安装后,交由应用部门使用的过程完全不受控制
  • 开发人员随意配置服务器开发环境,造成安全隐患,增加系统维护管理的难度和成本
  • 由于开发环境不统一,因此为程序开发和移植、安装等工作增加了不必要的麻烦
  • 由于开发环境不统一,也增加了开发人员熟悉服务器环境甚至重新配置服务器的麻烦 因此我们希望可以由系统部牵头,和广大的开发人员讨论,制定并逐步完善一个比较 通用的适应大多数开发需求的开发环境配置规范,由系统部在完成系统基本安装后, 按照规范完成开发环境的安装和配置,争取交给应用部门的服务器就是可以直接使用 的,不必要重新配置的。 由于是初稿,规范未必合理,但是有规范总比没有规范好,我们可以经过实践和讨论 不断完善规范。

目录布局和文件命名规范

  • 目录命名主要是为了统一维护方便,也为了方便使用,可以通过下面的几个方法 达到统一目录布局和查找的目的:
  • mount 直接创建相应的 mount 加载点如 /sinasrv/www
  • mount --bind 参数,通过这个方法可以把一个目录挂载到另一个目录下,例如:
    • mount --bind /sinasrv/www/htdocs /data1/apache/htdocs mount --bind /sinasrv/www/logs /data2/apache/logs mount --bind /sinasrv/www/mmcache /data2/mmcache
  • 符号链接 (这个最常用)

常用目录布局规范

  • 明确划分目录的好处是我们可以给不同类型使用的目录配置不同的访问权限, 已此来达到较高的安全控制。
  • 软件安装根目录
    • /usr/local/sinasrv
  • Apache 安装目录
    • /usr/local/sinasrv/apache
  • MySQL 安装目录
    • /usr/local/sinasrv/mysql
  • 数据根目录命名
    • /sinasrv
  • Apache 数据根目录
    • /sinasrv/www
  • MySQL 数据根目录
    • 数据根目录前缀 + "mysql"应用类别目录名 /sinasrv/mysql
  • Apache 虚拟主机的文档、程序、数据的目录命名
    • Apache 文件目录
      • 根目录 + 文档目录 + 虚拟主机域名 /sinasrv/www/htdocs/survey.news.sina.com.cn
    • Apache cgi 程序的目录
      • 根目录 + 文档目录 + 虚拟主机域名 /sinasrv/www/cgi-bin/survey.news.sina.com.cn
    • Apache 程序数据目录
      • 根目录 + 数据目录 + 虚拟主机域名 /sinasrv/www/data/survey.news.sina.com.cn
    • Apache 程序缓存目录
      • 根目录 + 缓存目录 + 虚拟主机名 /sinasrv/www/cache/survey.news.sina.com.cn
    • Apache 基于 nfs 的共享数据目录
      • /sinasrv/www/ndata/survey.news.sina.com.cn
    • Apache 基于 nfs 的共享缓存目录
      • /sinasrv/www/ncache/survey.news.sina.com.cn
    • Apache 基于 nfs 的共享文档目录
      • /sinasrv/www/nhtdocs/survey.news.sina.com.cn
  • Turck MMCache 的程序缓存目录
    • /sinasrv/www/mmcache
  • PHP Session 的目录
    • /sinasrv/www/phpsession
  • 用户文件上传目录
    • /sinasrv/www/userupload
  • MySQL 数据目录命名
    • MySQL 数据根目录 + "mysql" + 开放端口号 /sinasrv/mysql/mysql3310
     说明:上面关于虚拟主机的配置可以看到,虚拟主机使用的各个特定需求的目录 都是定义在每个特定目录下的,比如data,是所有虚拟主机的data目录的跟, 每个虚拟机主机已域名创建自己的目录。这样做的好处是可以统一控制data的权限 而不用把data目录创建在每个虚拟机主机的根目录下。

常用文件命名规范

  • Apache 虚拟主机的日志目录和日志文件命名
    • 日志根目录
      • /sinasrv/www/logs
    • 错误日志
      • 日志根目录 + 错误日志目录 + 虚拟主机域名 + "-error_log"后缀 /sinasrv/www/logs/error/survey.news.sina.com.cn-error_log
    • 访问日志
      • 日志根目录 + 错误日志目录 + 虚拟主机域名 + "-access_log"后缀 /sinasrv/www/logs/access/survey.news.sina.com.cn-access_log
    • 归档日志
      • 日志根目录 + 归档日志目录 + 日期目录 + 虚拟主机域名 + 外网IP地址 + "_cn"后缀 /sinasrv/www/logs/archive/051231/survey.news.sina.com.cn_10.44.6.24_cn.gz
  • MySQL 配置文件命名
    • MySQL 数据目录名 + "my" + 开放端口号 + ".cnf /sinasrv/mysql/mysql3310/my3310.cnf
  • MySQL socket文件命名
    • /tmp目录名 + "mysql" + 端口号 + ".sock" /tmp/mysql3310.sock
  • rsync 配置文件
    • /etc/rsyncd.conf
  • rsync 的验证配置文件
    • /etc/rsyncd.secrets

其他命名规范

  • MySQL 的库命名规范
    • 使用域名或者项目名称 比如域名为:news.survey.sina.com.cn,那么库命名为:news_survey 比如项目名称为:通用测试项目,那么库命名为:generaltest
  • MySQL 读写帐户命名规范
    • 默认只配置一个和库同名的帐户,具有该数据库的全部操作权限。
  • MySQL 只读帐户命名规范
    • 默认只配置一个只读帐户,可以访问该数据库的全部数据,命名为: 库名 + "_r" 后缀
  • MySQL server-id 命名规范
    • 使用所在服务器的外网IP地址后两位 + MySQL监听端口号, IP地址不足3位补0, 例如:10.44.6.17,端口为 3306,那么 server-id = 0060173306
  • rsync 模块名
    • 默认使用虚拟主机的域名为模块名。 如: news.survey.sina.com.cn

本地磁盘使用和目录命名

  • 假设都为3块硬盘的服务器,系统盘不用来保存数据,第一块数据库盘加载在/data1
    • 目录下,第二块数据盘加载在/data2目录下。
    • /data1 磁盘创建如下目录:
      • /data1/sinasrv/www/htdocs
      • /data1/sinasrv/www/data
      • /data1/sinasrv/www/cgi-bin
      • /data1/sinasrv/mysql/
    • /data2 磁盘创建如下目录
      • /data2/sinasrv/www/logs
      • /data2/sinasrv/www/cache
      • /data2/sinasrv/www/mmcache
      • /data2/sinasrv/www/phpsession
      • /data2/sinasrv/www/userupload
      • /data2/sinasrv/mysql/
  • 对于1块数据盘的服务器,将数据盘加载在 /data1 目录下,所有的目录都创建在
    • /data1/sinasrv 目录下。
  • 对于3块数据盘的服务器,将第三块数据盘加载在 /data3 目录下,
    • 创建 /data3/sinasrv 目录,以后根据需要再使用。
  • 上面的各个目录通过符号链接到 /sinasrv/www 相应目录下,如果在 chroot 环境下,
    • 则通过 mount --bind 加载到 /sinasrv/www 目录下。

推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
author-avatar
雅芳07866
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有