一、版本控制软件

1、集中式 (CVS和 SVN)

中间有一个中央服务器,所有的客户机都会把版本信息上传到中央服务器里,版本信息只在中央服务器里保存,当我们去上传或者下载的时候 ,都是从中央服务器来连接,一旦中央服务器挂掉,客户机就没办法下载和上传版本相关的内容,客户就需要连接网络才能上传和下载。

2、分布式 (Git)

相比集中式更加方便,没有中央服务器,一个版本控制器,每一个版本控制下的客户机都有一套完整的版本控制信息,所以分布式的容灾星更好,而且不用去连接网络。

二、PHP的运行原理

Nginx + PHP-FPM 运行原理

1、CGI

CGI: 通用网关接口(Common Gateway Interface/CGI),是语言解析器和WEB Server之间的通信的桥梁。

处理PHP需要交给PHP解析器来进行处理,PHP处理完之后和WebServer进行通信,为了解决不同的语言和WEB Server之间的通信,只要按照CGI协议来编写程序,就能实现语言解析器和WEB Server之间的通信

CGI的缺点:但是CGI的效率很低,因为CGI每收到一个请求都会fork一个CGI进程,当请求结束时在Kill掉该进程,这样就非常浪费资源,所以效率很低

2、FAST-CGI

FAST-CGI:CGI的改良版,FAST-CGI每次处理完请求后不会Kill掉进程,而是保留该进程,使该进程可以处理多个请求,这样就大大提升了效率。

3、PHP-FPM

PHP-FPM:PHP-FASTCGI Process Manager :PHP的FAST-CGI进程管理器。进程包括master进程(主进程)和worker进程(工作进程),master进程只有一个,负责监听端口,接收来自web server的请求,而worker进程一般会有多个,具体的个数需要在FPM的配置中进行定义,每一个进程内部都会嵌入到一个PHP解析器(php代码真正执行的地方),worker进程来处理我们的PHP代码,master监听端口默认是9000,通过Nginx的反向代理来代理端口,从而完成FPM的相关处理。

三、PHP常见配置项

1、register_globals: 注册全局变量,建议一直关闭。

2、allow_url_fopen: 是否允许打开远程文件。

3、allow_url_include: 是否允许包含远程文件。

4、date_timezone: 设置时区。

5、display_errors: 是否显示错误,开发环境需要打开。

6、error_reporting: 显示错误级别蛇者。

7、safe_mode:是否开启安全模式。

8、upload_max_filesize: 限制上传文件的大小。

9、max_file_uploads:上传的最大文件数量。

10、post_max_size:提交的post数据的最大大小。

本文为袋鼠学习中的总结,如有转载请注明出处:https://www.cnblogs.com/chrdai/p/11198171.html

全面解读php-开发环境及配置的更多相关文章

  1. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  2. 20145213《信息安全系统设计基础》实验一 Linux开发环境的配置

    北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1452 姓名: 黄亚奇 祁玮 学号:20145213 20145222 成绩: 指导教师:娄嘉鹏 实验日期:2016 ...

  3. Windows平台下PHP开发环境的配置

    Windows平台下PHP开发环境的配置 一.基本环境 1.Windows XP 32位 2.Apache 2.2.25,下载地址:http://mirror.bit.edu.cn/apache/ht ...

  4. 信息安全系统设计基础实验一:Linux开发环境的配置和使用

    北京电子科技学院(BESTI) 实验报告 课程:信息安全系统设计基础    班级:1353 姓名:芦畅 傅冬菁 学号:20135308 20135311 成绩:       指导教师:娄家鹏      ...

  5. Web开发中运行环境的配置:(Tomcat7.0.59)和开发环境的配置

    第一部分:运行环境的配置 1.下载压缩包,解压即可 2.配置系统变量JAVA_HOME为jdk的安装路径 3.如有需要修改端口号,比如8080已被占用的时候,可以将其改为9080等 apache-to ...

  6. 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)

    CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...

  7. Windows7 x64 跨平台开发环境安装配置

    ======================================================================= Windows7 x64 跨平台开发环境安装配置 201 ...

  8. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  9. 一个电脑的重装到java开发环境安装配置的全过程

    刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...

  10. QT开发环境安装配置教程

    QT开发环境安装配置教程 分类: QT2012-11-29 23:31 35366人阅读 评论(12) 收藏 举报 Linux版的直接在ubutnu软件中心输入QT,安装响应的Designer,Cre ...

随机推荐

  1. Chrome去掉标签页8个框

    最终效果: 解决思路: 在标签页鼠标右击弹出的菜单项中存在“查看页面源码”一项,由此可确定chrome的标签页是由一个html页面控制的,只要修改其页面源码便能去掉8个框. 经网上查阅确定了标签页的源 ...

  2. js带有遮罩的弹窗

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  3. 让IE6、IE7、IE8、IE9、IE10、IE11支持Bootstrap的解决方法

    最近做一个Web网站,之前一直觉得bootstrap非常好,这次使用了bootstrap3,在chrome,firefox,safari,opera,360浏览器(极速模式).搜狗浏览器等浏览器下均没 ...

  4. Mysql检查列是否存在并新增、修改、删除列

    在MYSQL中,新增.修改.删除列时不能进行IF EXISTS判断,IF语句只能出现在存储过程当中,故博主用存储过程的方法新增.修改.删除列,修改列名称. DROP PROCEDURE IF EXIS ...

  5. select,poll.epoll区别于联系

    select,poll,epoll都是IO多路复用中的模型.再介绍他们特点时,先来看看多路复用的 模型. 同其他IO的不同的是,IO多路复用一次可以等多个文件描述符.大大提高了等待数据准备好的时间的效 ...

  6. 标准C语言(13)

    函数指针可以作为形式参数使用,会作为实际参数使用的函数叫回调函数 /* * 回调函数演示 * */ #include <stdio.h> void print_cb(int *p_num) ...

  7. [CF#592 E] [二分答案] Minimizing Difference

    链接:http://codeforces.com/contest/1244/problem/E 题意: 给定包含$n$个数的数组,你可以执行最多k次操作,使得数组的一个数加1或者减1. 问合理的操作, ...

  8. 谈谈你对 mysql 引擎中的 MyISAM与InnoDB的区别理解?

    InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISA ...

  9. Mongodb文档查询

    MongoDB 查询数据的语法格式如下: db.collection.find(query, projection) query :可选,使用查询操作符指定查询条件 projection :可选,使用 ...

  10. Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向

    四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...