木子设计

LZG个人博客

本人专注于web领域开发,博客主要记录学习php/html/css/javascript,框架Yaf/Laravel/TP/CI,Linux及一些常用工具过程中遇到的问题及解决心得,希望对技术推广及他人学习提供薄力。

Apache Php Mysql 常用配置优化

发布时间:2016-08-28 15:44:59

Php http://php.net/manual/zh/ini.list.php

etc/php.ini


1/PHP脚本执行时间找到:
max_execution_time = 30
该选项设定PHP程序的最大执行时间,如果一个PHP脚本被请求,且该PHP脚本在max_execution_time时间内没能执行完毕,则PHP不再继续执行,直接给客户端返回超时错误。没有特殊需要该选项可保持默认设置30秒,如果您的PHP脚本确实需要长执行时间则可以适当增大该时间设置。

2/PHP脚本处理内存占用找到:
memory_limit = 8M

该选项指定PHP脚本处理所能占用的最大内存,默认为8MB,如果您的服务器内存为1GB以上,则该选项可以设置为12MB以获得更快的PHP脚本处理效率。


3/PHP上传文件大小限制找到:
upload_max_filesize = 2M
该选项设定PHP所能允许最大上传文件大小,默认为2MB。根据实际应用需求,可以适当增大该设置。

4/post_max_size
设置最大允许的post数据大小。这个设置也影响这文件上传。要上传一个大的文件的话,这个值必须大于 upload_max_filesize 指令

5/max_file_uploads
同时允许上传的总文件上数量,从php5.3.4开始,在执行提交的时候如果上传文件字段为空的话不会记录到该限制的数量中。

mysql
https://www.linuxyw.com/a/shujuku/20130506/216.html
etc/my.cnf
max_allowed_packet:允许最大的包主要在phpadmin中导入文件是的应用,插入数据的时候也会用调128M
sort_buffer_size:查询排序时所能使用的缓冲区大小,该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 4 = 400MB。所以,对于内存在4GB左右的服务器推荐设置为4-8M
wait_timeout
指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。
max_connections = 1000
MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量
max_connect_errors = 6000
#设置每个主机的连接请求异常中断的最大次数,当超过该次数,MYSQL服务器将禁止host的连接请求,直到mysql服务器重启或通过flush hosts命令清空此host的相关信息。
query_cache_limit = 4M
#指定单个查询能够使用的缓冲区大小,缺省为1M

apache
http://blog.csdn.net/phphot/article/details/2544949
http://www.admpub.com/blog/post-157.html
http://www.cnblogs.com/xiaoshi1991/archive/2012/09/18/2690608.html

etc/httpd/conf.d/vhost.conf  etc/httpd/conf/httpd.conf

EnableSendfile off  去掉注释,要不然加载静态文件有问题


hhostnamelookups off

域名查找:这增加了处理每个请求的开销,首先,服务器会对dns系统做一个反向查询以找出客户系统的主机名,然后又进行正向查询看获得的主机名是否真实指向客户的ip。大多数情况下,你可以简单的关闭这个功能,如果你经常处理服务器日志,这个工作完全可以在以后进行。你可以通过在设置文件中加入指示hostnamelookups off来关闭这个功能。


options -followsymlinks
符号连接:当打开这个选项时,apache将检查每个请求中是否包含对符号连接的引用,这将对请求中包含的每个路径调用一次lstat()系统调用。除非你准备使用符号连接,否则用 options -followsymlinks 来关掉它。

sethandler server-status
服务器状态信息,默认已经关闭。该模块尽管这对测试与监控服务器很有用,但它也为服务器带来了额外的开销,你可以通过寻找任何类似sethandler server-status的指示来关闭,如果可能,你可以在安装apache时移除这个模块。

options -indexes
关闭目录浏览

timeout 5
timeout 设置 apache 等待一个连接读写操作的时间长度,也就是连接建立后,apache 等待客户端完成请求发送的时间,或者是响应开始之后,apache 写出数据到客户端连接的时间长度。

serversignature off

默认情况下,很多apache安装时会显示版本号及操作系统版本,甚至会显示服务器上安装的是什么样的apache模块。这些信息可以为黑客所用,并且黑客还可以从中得知你所配置的服务器上的很多设置都是默认状态。

所以,请加入如下两条:

serversignature off
servertokens prod

http://www.linuxidc.com/Linux/2011-05/36613.htm

/usr/local/apache2/conf/extra/httpd-mpm.conf  httpd-mpm.conf
 
     StartServers          5
     MinSpareServers       5
     MaxSpareServers      10
     ServerLimit         5500
     MaxClients          5000
     MaxRequestsPerChild   100

StartServers 表示空闲子进程的最小数量。如果当前空闲子进程数小于MinSpareServers,那么Apache将以最大美妙一个的速度产生新的子进程。此参数不要设置太大。
MinSpareServers 设置空闲子进程的最大数量。如果当前有超过MaxSpareServers 数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不要设置太大,如果你讲质量设置比MinSpareServers小,Apache将会自动将其修改成“MinSpareServers + 1”。
MaxSpareServers 限定同一时间客户最大接入请求的数量(单个进程并发线程数)。任何超过MaxClients限制的请求讲进入等候队列,一旦一个连接被释放,队列中的请求将得到服务。要增大该值必须同事增大ServerLimit(ServerLimit待会再讲)。
MaxClients 表示每个子进程在其生存期内允许伺候的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将会结束。如果MaxRequestsPerChild为“0”,子进程将永远不会结束。

MaxRequestsPerChild 设置为0 ,可以防止(偶然)内存泄漏无限进行,从而耗尽内存。给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。