Discuz!在Nginx下的Rewrite
完整正确的Discuz!在Nginx下的Rewrite如下:
蓝色部分为完整的配置内容添加至,虚拟主机 server{} 内,不要放到 location {} 以内!
使之单独存在于:server{
location {}
if (!-e $request_filename)
{
rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;
rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
break;
}
=======================================================================
discuz论坛由WIN移至Linux下,附件文件无法保存到服务器上的问题解决方案!
提示信息:附件文件无法保存到服务器,可能是目录属性设置问题,请与管理员联系。
解决方法:
问题1:attachement目录是否设置属性777,win主机属性everyone
DIDCUZ安装时提示: 设置目录属性(windows 服务器可忽略这一步)
以下这些目录需要可读写权限
./templates
./attachments
./forumdata
./forumdata/cache
./forumdata/templates
./forumdata/threadcaches
./forumdata/logs
LINUX下以上目录统一修改权限为777:
chown -R 777 templates
chown -R 777 attachments
chown -R 777 forumdata
chown -R 777 forumdata/cache
chown -R 777 forumdata/templates
chown -R 777 forumdata/threadcaches
chown -R 777 forumdata/logs
问题2:php.ini中的设置可能存在问题
将;upload_tmp_dir = 该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。付给WWW可执行权限。
另外:
在nginx.conf增加 client_max_body_size的相关设置, 这个值默认是1m,可以增加到8m以增加提高文件大小限制;
如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。
post_max_size = 8M
upload_max_filesize = 2M
在php.ini中upload_max_filesize 的参数设置也增加到8M和NGINX相互一直,若不需要用上传超大附件,可以在DISCUZ后台限制用户上传附件大小 8M<
以上全部更改,确保了附件目录拥有了足够了权限之后若还说不能上传。见问题3
问题3:DISCUZ 后台更改附件附件 URL 地址
DISCUZ 默认设置:
后台 基本设置 附件设置 不小心开启远程附件或者没有设置完整也会出现此问题
后台 基本设置 附件设置 设置的附件保存方式为其他方式 不是保存在同一目录下 部分服务器限制了目录属性 导致无法上传附件(虚拟空间出现的比例较多)
可以尝试把附件 URL 地址: 修改为绝对路径如:
http://bbs.liuxinxiu.com/attachments
liuxinxiu 换成你的域名,不再根目录下加加子目录:http://www.liuxinxiu.com/bbs/attachments
==================================================================