SuiteCRM安装后必须要做的一件事(配置php.ini)

php
php

SuiteCRM是一款PHP语言开发的CRM客户关系管理软件,所以安装SuiteCRM之前必须搭建PHP环境,当PHP环境搭建好了之后,还有一件事必须要做就是配置php.ini。默认安装的php版本,它的默认php.ini值的设置都很低。

不修改php.ini可能会遇到各种各样的错误,例如SuiteCRM上传文件不成功、访问SuiteCRM延迟报错“504 Getway Timeout”、数据库导入限制2M,导致较大的数据库导入不成功等等。

接下来看看具体应该配置php.ini哪些参数:

参数一:memory_limit(建议512M)

memory_limit	"128M"	PHP_INI_ALL	PHP 5.2.0 之前默认为 "8M",之后默认为 "16M"
; 设定一个脚本所能够申请到的最大内存字节数。
; 这有助于防止劣质脚本消耗完服务器上的所有内存。
; 要使用此指令必须在编译的时候激活。
; 因此 configure 一行中应该包括:--enable-memory-limit
; 如果不需要任何内存上的限制,必须将其设为 -1
; 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用

memory_limit int

设置了一个脚本允许分配的最大内存量,以字节(bytes)为单位。这有助于防止写得不好的脚本吃掉服务器上所有可用的内存。请注意,如果不需要内存限制,请将此指令设置为 -1

在 PHP 5.2.1 之前的版本,如果要使用这个指令,必须在编译时使用 –enable-memory-limit 参数。在 PHP 5.2.1 之前,如果想要使用函数 memory_get_usage() 和 memory_get_peak_usage(),也会需要这个编译参数。当使用 int 时, 其值以字节来衡量。还可以使用在FAQ中描述的速记符。

参数二: max_execution_time (建议300)

max_execution_time integer

这设置了脚本被解析器中止之前允许的最大执行时间,单位秒。 这有助于防止写得不好的脚本占尽服务器资源。 默认设置为 30。 从 命令行 运行 PHP 时,默认设置为 0

最大执行时间不会影响系统调用和系统操作等。更多细节参见 set_time_limit()

你的 web 服务器也可以有其他超时设置,也有可能中断 PHP 的执行。 Apache 有一个 Timeout 指令,IIS 有一个 CGI 超时功能。 他们默认都是 300 秒。更多具体信息参见你的 web 服务器的文档。

参数三: max_input_time (建议600)

max_input_time integer

脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。默认设置为 -1,意味着使用 max_execution_time 的值做为默认值,如果不想限制,请设置为 0

(*)参数四: post_max_size (默认2M,建议80M)

备注:该值会影响数据库导入,因为它默认是2M,如果备份的数据大于2M,则导入数据不成功。

post_max_size 整型设置允许的POST数据的最大大小。此设置也会影响文件上传。要上传大文件,此值必须大于upload_max_filesize。 一般来说, memory_limit的应大于post_max_size。 当使用 INT 时,其值以字节来衡量。还可以使用在FAQ中描述的速记符。 如果POST数据的大小大于post_max_size时, $ _ POST$ _FILES超全局变量 是空的。可以通过各种方式来跟踪,例如通过将$ _GET变量传递 给处理数据的脚本,即<form action="edit.php?processed=1">,然后检查是否设置了$ _GET [‘processed’]

注意:

PHP允许使用字节值的快捷方式,包括K(千),M(兆)和G(千兆)。如果您使用其中任何一种,PHP都会自动进行转换。注意不要超过32位有符号整数限制(如果您使用的是32位版本),因为这会导致脚本失败。

post_max_size
post_max_size

参数五: upload_max_filesize (建议80M,和参数四一样大即可)

上载文件的最大大小。当使用 int 时, 其值以字节来衡量。还可以使用在FAQ中描述的速记符。

upload_max_filesize
upload_max_filesize

参数六: max_file_uploads (默认20,建议200)

允许同时上传的最大文件数。从PHP 5.3.4开始,提交时留空的上传字段不计入此限制。

参数七: max_execution_time (默认30,建议300)

; 每个脚本最大允许执行时间, 按秒计。默认为30秒。
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。
; 注: "max_execution_time"仅影响脚本本身的运行时间。
; 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等,都不包括在内。
; 在安全模式下,你不能用ini_set()在运行时改变这个设置。
max_execution_time
max_execution_time

参数八: error_reporting(可选配置)

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
;[recommended]->error_reporting = E_ALL
; 显示所有的错误,除了提醒和编码标准化警告。
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。
; E_ALL - 所有的错误和警告(不包括 E_STRICT)
; E_ERROR - 致命性的运行时错误
; E_WARNING - 运行时警告(非致命性错误)
; E_PARSE - 编译时解析错误
; E_NOTICE - 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。)
; E_STRICT - 编码标准化警告,允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。
; E_CORE_ERROR - PHP启动时初始化过程中的致命错误
; E_CORE_WARNING - PHP启动时初始化过程中的警告(非致命性错)
; E_COMPILE_ERROR - 编译时致命性错
; E_COMPILE_WARNING - 编译时警告(非致命性错)
; E_USER_ERROR - 用户自定义的错误消息
; E_USER_WARNING - 用户自定义的警告消息
; E_USER_NOTICE - 用户自定义的提醒消息
; 例子:
;error_reporting = E_ALL & ~E_NOTICE ; 显示所有的错误,除了提醒
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误

参数九: display_errors = off(可选配置)

;[recommended]->display_errors = Off
; 作为输出的一部分显示出错误信息
; 在最终发布的web站点上,强烈建议你关掉这个特性,并使用错误日志代替(参看下面)。
; 在最终发布的web站点打开这个特性可能暴露一些安全信息,
; 例如你的web服务上的文件路径、数据库规划或别的信息。

其他参数(选配)

display_startup_errors = Off
; 即使"display_errors"特性被打开,关闭此参数也将不显示PHP启动时的错误。
; 强烈建议你关掉这个特性,除非你必须要用于调试中。

log_errors = Off
;[recommended]->log_errors = On
; 在日志文件里记录错误(服务器指定的日志,stderr标准错误输出,或error_log(下面的))
; 正如上面说明的那样,强烈建议你在最终发布的web站点时用日志记录错误而不是直接输出。

log_errors_max_len = 1024
; 设置错误日志文件的最大长度。
; 设为 0 可以允许无限长度。

;error_log = filename
; 将错误日志记录到哪个文件中。
; 如果设为"syslog", 错误日志将被记录到系统日志中(NT下的事件日志, Unix下的syslog(3))

推荐阅读

  1. SuiteCRM 8.1.2 刚刚发布!
  2. 如何选择合适的 CRM
  3. SuiteCRM 8.1.1 & 7.12.6 发布
  4. 为了官方更好的技术服务,请捐赠SuiteCRM
  5. SuiteCRM 8.1发布-官方版本再更新!
  6. 苏格兰公司 SuiteCRM 再次获奖
  7. 安全和维护补丁:SuiteCRM 8.0.4 & 7.12.5 发布
  8. 将 SuiteCRM 升级到更新版本

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注