今天遇到这个问题,我的php.ini里,已经设置了

memory_limit 为200M
post_max_size = 150M
upload_max_filesize = 100M
max_execution_time为600秒

但是上传了一个10来M的压缩包仍然提示Server (IO) Error。后来在这个站点对应的nginx.conf文件中,增加了一行client_max_body_size 100m;,如下:

server {
        listen       80;
        server_name xxx.com www.xxx.com ;
        root /www/web/y/xxx/public_html;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/404.html;
        location ~ \.php$ {
                proxy_pass http://127.0.0.1:88;
                include naproxy.conf;
                client_max_body_size 100m;
        }
        location / {
                try_files $uri @apache;
        }
        location @apache {
                 proxy_pass http://127.0.0.1:88;
                 include naproxy.conf;
        }
}     

问题解决。该方法适用于所有nginx服务器。

注意:php.ini的配置中,后面这三项的值必须满足memory_limit>post_max_size>upload_max_filesize。