在基于Jetty Fast CGI Proxy和php-fpm下配置Discuz
终于把Discuz装上了,但是安装完以后发现问题一大堆。。这个图片不显示,那个不能用的。
问题的根源在于因为我不是直接的php访问,而是通过php-fpm中转了一下,而discuz的代码里面很多直接引用了$_SERVER[HTTP_HOST]这样的变量,使得很多地方都是localhost:9000 (即代理的地址)
要解决这个问题要花好几步
1. upload/source/class/discuz_application下面,搜索siteurl,在初始化siteurl的地方,填写你的域名
2. 参照http://blackbap.org/thread-4847-1-1.html
到source\module\misc\misc_seccode.php,查找第94行
改成
if($$_G[‘setting‘][‘seccodedata‘][‘type‘] < 2 && ($$refererhost[‘host‘] != ($$_SERVER[‘HTTP_X_FORWARDED_HOST‘] ? $$_SERVER[‘HTTP_X_FORWARDED_HOST‘] : $$_SERVER[‘HTTP_HOST‘])) || $$_G[‘setting‘][‘seccodedata‘][‘type‘] == 2 && !extension_loaded(‘ming‘) && $$_POST[‘fromFlash‘] != 1 || $$_G[‘setting‘][‘seccodedata‘][‘type‘] == 3 && $$_GET[‘fromFlash‘] != 1) {
3.
到/source/class/helper/helper_form.php,查找submitcheck
改成
public static function submitcheck($var, $allowget = 0, $seccodecheck = 0, $secqaacheck = 0) { if(!getgpc($var)) { return FALSE; } else { global $_G; if($allowget || ($_SERVER[‘REQUEST_METHOD‘] == ‘POST‘ && !empty($_GET[‘formhash‘]) && $_GET[‘formhash‘] == formhash() && empty($_SERVER[‘HTTP_X_FLASH_VERSION‘]) && (empty($_SERVER[‘HTTP_REFERER‘]) || strncmp($_SERVER[‘HTTP_REFERER‘], ‘http://wsq.discuz.qq.com‘, 24) === 0 || strncmp($_SERVER[‘HTTP_REFERER‘], ‘http://m.wsq.qq.com‘, 19) === 0 || preg_replace("/https?:\/\/([^\:\/]+).*/i", "\\1", $_SERVER[‘HTTP_REFERER‘]) == preg_replace("/([^\:]+).*/", "\\1", $_SERVER[‘HTTP_X_FORWARDED_HOST‘])))) { if(checkperm(‘seccode‘)) { if($secqaacheck && !check_secqaa($_GET[‘secanswer‘], $_GET[‘secqaahash‘])) { showmessage(‘submit_secqaa_invalid‘); } if($seccodecheck && !check_seccode($_GET[‘seccodeverify‘], $_GET[‘seccodehash‘], 0, $_GET[‘seccodemodid‘])) { showmessage(‘submit_seccode_invalid‘); } } return TRUE; } else { showmessage(‘submit_invalid‘); } } }
4.
到upload/uc_server 下面,找到avatar.php,index.php,admin.php下面
查找UC_API,把之后的地址改成你要的域名,注意不要在最后加"/".
5.
登录
..../admin.php
和
.../uc_server/admin.php
把所有显示localhost的地方改成你的正确域名
这五步做完以后论坛基本能正常显示,如果有什么问题会在这里继续编辑。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。