lump搭建环境知识点:
1、nginx使用fastCGI(CGI通用网关接口,可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。)实现与php的通信。apache开启php扩展模块实现php。
nginx使用接口的方式好处是便于分解服务器压力,避免因php运行较慢而静态请求较多带来的进程数暴增的问题。并且apache带有php等扩展,比较占用系统资源,配置文件复杂。现在用的比较多的方式是lnmpa架构,把静态请求交给nginx处理,动态请求由apache处理。
1、nginx使用fastCGI(CGI通用网关接口,可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。)实现与php的通信。apache开启php扩展模块实现php。
nginx使用接口的方式好处是便于分解服务器压力,避免因php运行较慢而静态请求较多带来的进程数暴增的问题。并且apache带有php等扩展,比较占用系统资源,配置文件复杂。现在用的比较多的方式是lnmpa架构,把静态请求交给nginx处理,动态请求由apache处理。
fastCGI是nginx和php之间的一个通信接口,该接口实际处理过程通过启动php-fpm进程来解析php脚本,即php-fpm相当于一个动态应用服务器,从而实现nginx动态解析php。因此,如果nginx服务器需要支持php解析,需要在nginx.conf中增加php的配置:将php脚本转发到fastCGI进程监听的IP地址和端口(php-fpm.conf中指定)。同时,php安装的时候,需要开启支持fastCGI选项,并且编译安装php-fpm补丁/扩展,同时,需要启动php-fpm进程,才可以解析nginx通过fastCGI转发过来的php脚本。
2、在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。
ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错。
MYISAM强调了快速读取操作,除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE
TABLE命令,来恢复被更新机制所浪费的空间。
HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。
还有一个用的比较多的引擎:InnoDB.尽管要比ISAM和
MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。
3、php中比较重要的参数有:
文件上传file_uploads、动态扩展、mysql的设置、session的设置
4、nginx.conf与php-fpm.conf中的用户名和用户组可以不一致,生产环境中最好保持一致,这样网站根目录对该用户组用户所有权限,即使网站被攻破,也不能登录系统。
ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错。
MYISAM强调了快速读取操作,除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE
TABLE命令,来恢复被更新机制所浪费的空间。
HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。
还有一个用的比较多的引擎:InnoDB.尽管要比ISAM和
MyISAM引擎慢很多,但是InnoDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。
3、php中比较重要的参数有:
文件上传file_uploads、动态扩展、mysql的设置、session的设置
4、nginx.conf与php-fpm.conf中的用户名和用户组可以不一致,生产环境中最好保持一致,这样网站根目录对该用户组用户所有权限,即使网站被攻破,也不能登录系统。
5、目录权限问题:应根据每个用户的工作,给对应用户分配不同的文件夹权限。
6、php_mysql/php_mysqli/php_pdo:
MySQL 是 PHP 操作 MySQL 数据库最原始的 Extension。MySQLi 的 i 代表 Improvement ,提供了相对进阶的功能,就 Extension 而言,本身也增加了安全性。而 PDO(PHP Data Object)则是提供了一个 Abstraction Layer 来操作数据库
7、ngingx连通fastCGI有几种方式:
需要设置两个地方:php-fpm.conf的listen 还有nginx.conf中的 fastcgi_pass
1. 用ip进行连接,例如
1
|
fastcgi_pass 127.0.0.1:9000; listen = 127.0.0.1:9000
|
2. 用socket进行连接,例如
1
|
fastcgi_pass unix:
/tmp/php-cgi
.sock; listen = /dev/shm/fpm.socket
|
http://blog.sina.com.cn/s/blog_5425edf40101gcxf.html