php上传的问题

这两天折腾VPS,把原来的Typecho插件弄上去折腾,发现麻烦问题,没法通过php上传了。无论是php+flash还是通过iframe都不行。尤其蛋疼的是flash上传,错误就一个 #2038 ,完全不知道具体原因,折腾人啊。搜索引擎都用得冒烟了都没解决好。

先是typecho的附件都没法上传,肯定是服务器配置出了问题,后来找到原因是apache配置了mod_security引起的,通过.htaccess文件关掉mod_security

<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>

附件上传没问题了,但是自己写的上传代码总是没法,用chrome和firefox的调试工具总算知道了是403错误,处理上传的php文件被禁止访问了,网上找了一大圈,都没发现解决办法。最后偶然才发现在typecho的usr目录下有个.htaccess文件,一查看就找到问题的根本了。原来typecho为了安全,禁止了对usr目录下的所以php文件的直接访问。我的插件在usr/plugins目录下,处理上传的php文件在插件目录下,需要单独执行处理上传,被禁止访问就没法上传了。所以那个邮件提醒插件CommentToMail也会出现问题,因为也有独立的php文件需要执行,如果.htaccess文件禁止了usr目录下的php文件访问,肯定发不出邮件。

<FilesMatch ".(htaccess|htpasswd|ini|php|sh)$">
Order Allow,Deny
Deny from all
</FilesMatch>
Options -Indexes
order deny,allow

当移除了这个.htaccess文件后,插件上传的问题解决了,但是安全又是个问题,研究了typecho的附件上传是通过action处理的,不会出现单独的权限问题,这几天尝试模仿一下。

Published by 阿飞 on
Tags: php, typecho, firefox, chrome, vps, 上传, 403

2 条评论

  1. VPS好玩吗 0.0 貌似比主机爽多了

    1. VPS相当于一台独立主机,玩起来那是相当的爽。不过问题也多,不断的折腾。VPS适合喜欢折腾的人。