近来考虑把自家项目里的服务器由Apache换成nginx。为求稳妥,先在自己的开发机器上搭好了LNMP(Linux + Nginx + Mysql + PHP)环境,项目跑的挺顺畅,但是在上传文件的时候发现大于1M的文件变得没法上传成功了。心中不解,于是先检查php.ini,确认上传文件限制是大于1M的,因为以前在Apache下是很正常的,所以怀疑是不是和nginx有关。网上查阅了一下,果然发现nginx配置默认是只能上传1M大小的文件的,如需调整,就要自定义配置文件了。
方法如下:
- 找到nginx.conf文件。通常在安装目录下, conf文件夹里。我机器上的路径是/usr/local/nginx-1.4.6/conf/nginx.conf。 这里提个小技巧:因为nginx的版本更新还是很活跃的,所以我会在/usr/local下面建一个符号链接nginx -> nginx-1.4.6(我实际安装的版本)。那么下次升级或者切换版本的时候,只用修改链接指向就好了。其他和nginx有关的路径都可以用这个链接,这样版本变化的时候就不用改路径了。
- 用你趁手的编辑器打开nginx.conf文件
- 在server配置里添加上传文件的大小限制配置项:client_max_body_size。比如我自己的:
location ~ \.php$ {
root /var/www;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
include fastcgi_params;client_max_body_size 20m;
} - 重启nginx服务即可。