10月1日重新安装

今天在另外一台虚拟主机上(阿里云虚拟主机,而且它只允许有一个数据库,其他需要新建数据库的问答系统都没戏了)尝试的时候才发现有一个之前一直被忽略的问题,就是官方的配置文件中,define那句是被包含在了注释中的,难怪我怎么改都没反应。
如果设置的目录有问题,会返回如下信息:

Question2Answer fatal error:

Could not find wp-load.php file for WordPress integration - please
check QA_WORDPRESS_INTEGRATE_PATH in qa-config.php

Stack trace:

require() in index.php:27 require() in qa-index.php:44
qa_initialize_constants_1() in qa-base.php:50
阿里云虚拟主机的安装目录位于根目录下的htdocs中,所以当我坚持用

define('QA_WORDPRESS_INTEGRATE_PATH', '/htdocs');

时基本就一直出错。
为了这么点事去问阿里的人么好像不太值得(其实是怕人家不告诉我),于是发挥我东点西点的特长,未曾想在日志文件中被我找到了。

xxx.xxx.xxx.xxx - - [01/Oct/2017:11:13:25 +0800] "GET /qa/ HTTP/1.1" 200 258 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" .xxxx.com text/html "/usr/home/*/htdocs/qa/index.php" 21910
/html "/usr/home/**/htdocs就是wordpress的绝对路径了,重新修改配置文件,成功!

10月1日再次更新

重新回到之前的ESC上面,采用上述的方法。绝对路径都设置完毕后,浏览器提示

ERR_CONTENT_DECODING_FAILED

晕,这个完全不按照章法来啊!难道是因为我的数据库采用了不同名字才导致的?将数据库的参数填成跟WP一样,错误依旧。
最终还是在google上找到答案,需要修改另一个参数:

define('QA_HTML_COMPRESSION', false);

刷新一下页面,熟悉的安装页面出现了!
2017-10-01 17-40-02屏幕截图.png
整合第一步完成!接下去就是cookie的设置问题,因为我两个系统采用的是不同的数据库,很难保证能成功,果然~!
打开数据库一看,为Q2A新建的数据库一个数据都没有,也就意味着系统直接调用了WP的代码,将数据库创建于WP同名的数据库中了。难怪官方的安装说明提到无需设置数据库。那么cookie又是怎么回事呢?
我的Q2A和WP位于服务器下的不同目录中,不同的虚拟主机设置,WP为主站,而Q2A为二级域名的子站,从官方的安装说明来看很像第三种

将以下代码放在wp-config.php的最开始,并用你的域名(前面加.)将**'.mysite.com'**替换掉
define('COOKIEPATH', '/');
define('COOKIE_DOMAIN', **'.mysite.com'**);

将以下代码放在wp-config.php的最后,并用你的二级域名将**'qa.mysite.com'**替换掉
/* To allow redirection from WordPress login to Question2Answer */
add_filter('allowed_redirect_hosts', 'qa_wordpress_redirect_hosts');
function qa_wordpress_redirect_hosts($content) {
    $content[] = **'qa.mysite.com'**;
    return $content;
}

可是为什么不起效果呢?
重新查看安装说明,原来人家说的很清楚,前一部分要放在最前面,后面一段要放在最后面,至此整合问题全部搞定。
至于新建的数据库留着也没用,为了验证结果,重新将数据库设置为初始状态

define('QA_MYSQL_HOSTNAME', '127.0.0.1');
define('QA_MYSQL_USERNAME', 'your-mysql-username');
define('QA_MYSQL_PASSWORD', 'your-mysql-password');
define('QA_MYSQL_DATABASE', 'your-mysql-db-name');

没有发生任何变化,整合依然有效。

9月29日安装

本来也就是随便折腾下问答系统,安装tipask失败后(该系统的设置有点奇葩,放置的目录以及设置更改比较多)决定放弃它。网上溜达一圈,把目标锁定在了Question2Answer系统上面。
Q2A的安装比较简单,建数据库表然后修改配置文件就能使用,基本跟WordPress类似。无意中看到安装说明提到可以和wordpress整合,也就是能够使用WP的用户数据。于是折腾之路开始了……
整合的步骤中有一项

define('QA_WORDPRESS_INTEGRATE_PATH', '**/PATH/TO/WORDPRESS**');

需要修改的就是wordpress的绝对路径,可问题是WordPress和Q2A被我装在了同一服务器的不同虚拟主机中了,不管是直接写服务器系统的绝对路径还是域名形式都不能起效。(后来发现还有一个cookie的问题,不同的情况也有不同的设置方法,可惜我在过程中没有试,所以路径设置即便是正确的也无法起效)
百度上基本没有这方面的信息,而万能的google还是得用英文关键词,几经折腾算是找到一条有用的信息。作为一套强大的问答系统,它与WP下的插件WPMUDEVS Q&A还是有所区别的,前者更加强大和可定制化。而Q2A和WP的整合必须在同一服务器(server)下(所以不同的虚拟主机就不算),它们是公用同一个数据库中的wp_users信息。
暂时先作为单独系统来测试吧。对于这几个系统之间的用户信息是否需要共享也有待考证,很有可能站点就需要有限的几位能编辑内容的用户。

最后修改:2024 年 02 月 03 日
如果觉得我的文章对你有用,请随意赞赏