You are here

PHP设置

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-08-20 15:32

老葛的Drupal培训班 Think in Drupal

php.ini中的一些设置常被忽略,但它们对于文件上传却很重要。第一个就是post_max_size,它位于php.ini中“Data Handling”部分的下面。由于文件的上传是通过一个HTTP POST请求完成的,如果尝试上传的文件的大小比post_max_size还大,这样要发送的POST数据的总大小就超过了post_max_size,因此上传将会失败。
 
; Maximum size of POST data that PHP will accept.
post_max_size = 8M
 
    php.ini里面的“File Uploads”部分中,包含了一些更重要的设置。在这里,你可以设置是否允许上传文件,上传文件的大小的上限:
 
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
 
; Whether to allow HTTP file uploads.
file_uploads = On
 
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
 
; Maximum allowed size for uploaded files.
upload_max_filesize = 20M
 
    如果文件上传失败了,那么你需要检查一下是不是由于这些设置所引起的。还有,注意upload_max_filesize应该小于post_max_size,而post_max_size应该小于memory_limit:
 
upload_max_filesize < post_max_size < memory_limit
 
    你需要注意的最后两个设置是max_execution_time和max_input_time。在上传一个文件时,如果你的脚本执行时间超过了这些设置,那么PHP将终止你的脚本。在你的网络连接比较慢时,如果上传失败,那么你就需要检查一下这些设置。
 
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
 
max_execution_time = 60     ; Maximum execution time of each script, in seconds
                        ; xdebug uses this, so set it very high for debugging
max_input_time = 60         ; Maximum amount of time each script may spend
                        ; parsing request data
 
    在调试的时候,你可能想把max_execution_time的值设置的大一点(例如,1600),这样调试器就不会超时。记住,然而,如果你的服务器非常繁忙,那么文件上传的时间过长,就可能妨碍Apache的进程,从而产生潜在的可升级性问题。

Drupal版本: