windows下使用IIS配置的PHP无法上传文件的解决方法

Windows IIS下使用PHP出现无法上传文件的问题,通常有以下几个原因:

1. PHP配置文件php.ini中file_uploads没有开启在php.ini中找到file_uploads选项,设置为:

file_uploads = On

此设置开启PHP文件上传功能。

2. PHP进程用户权限不足PHP进程默认使用IUSR用户,此用户对网站目录没有写入权限,导致无法上传文件。解决方法是:- 给网站目录IIS_WPG组和IUSR用户写入权限

icacls D:\website /grant IIS_WPG:(OI)(CI)F /grant IUSR:(OI)(CI)F

– 或更改PHP进程使用的用户,设置PHP运行时使用高权限账户,如:在PHP管理工具中(PHP Manager for IIS等)选择“Identity”选项卡,将“Run PHP executable as”设置为高权限用户,如Administrator。

3. 上传目录没有写入权限如果上传路径在PHP配置(php.ini)或代码中指定,还需要确保执行PHP进程的用户对该目录有写入权限,否则会导致上传失败。授予目录相应用户和用户组写入权限:

icacls D:\upload /grant IIS_WPG:(OI)(CI)F /grant IUSR:(OI)(CI)F

4. 上传文件大小超过php.ini中upload_max_filesize限制在php.ini中找寻upload_max_filesize选项,增大其值,如:

upload_max_filesize = 50M

增大此值可以允许上传更大体积的文件。

5. IIS请求长度限制过小在IIS管理器中,选择“请求限制”,将“允许的内容长度”的值增大,如30000000字节。这可以增大IIS处理请求的长度上限,否则过大请求会被拒绝。

以上是IIS下PHP上传文件失败的常见5个原因及相应解决方法。检查PHP配置、用户权限和IIS请求限制,设置相应参数即可解决大多数PHP上传问题。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论