推荐应用

Discuz多国语言翻译

Discuz多国语言翻译

文库系统/文档系统

文库系统/文档系统

美食菜谱发布菜谱

美食菜谱发布菜谱

漫画阅读中心

漫画阅读中心

小说阅读中心

小说阅读中心

语言包切换基本文件

语言包切换基本文件

成语闯关

成语闯关

谷歌登錄Google登錄

谷歌登錄Google登錄

轻APP

轻APP

网上祭祀祭拜扫墓

网上祭祀祭拜扫墓

手机MP4视频上传

手机MP4视频上传

彩票开奖号码公布

彩票开奖号码公布

DZX泰语/傣语

DZX泰语/傣语

DZX日文版(日本语)

DZX日文版(日本语)

在新浪云商店安装Discuz的几个注意点

发布于 2015-07-29
虽然说云商店与SAE相比,没有禁止本地写,但是在实际使用中发现还是有不少需要修改的地方。。。在这做个笔记,防止自己忘了,也方便后来人。。。
以下说明皆以Discuz!X2.5为准。文章不定期更新。。。

现象:无法在线安装应用和插件,会卡死在安装应用中。最终导致502错误。

原因分析:云商店禁止了flock函数

解决方案:删除相关的代码即可。

source/function/function_cloudsaddons.php(SVN VERSION:30741)
将以下代码删除
do {
              $canRead = flock($fp, LOCK_SH);
              if(!$canRead) {
                usleep(round(rand(0, 100) * 1000));
              }
            } while ((!$canRead) && ((microtime() - $startTime) < 1000));
            if(!$canRead) {
              cpmsg('cloudaddons_file_read_error', '', 'error');
            }

flock($fp, LOCK_UN);
do {
              $canWrite = flock($fp, LOCK_EX);
              if(!$canWrite) {
                usleep(round(rand(0, 100) * 1000));
              }
            } while ((!$canWrite) && ((microtime() - $startTime) < 1000));

            if(!$canWrite) {
              cpmsg('cloudaddons_file_write_error', '', 'error');
            }

flock($fp, LOCK_UN);
现象:主题分表时无法更新板块存档

原因分析:云商店(SAE)禁止一次性执行大数据量的操作

解决方案:在pre_forum_thread表(以及其他存档表)上添加一个联合索引:fid和replies。

现象:开启memcache后出现502错误

原因分析:单独写了一个文件,尝试memcache相关操作,却一切正常,于是挨个打印日志,发现是在getMulti这个函数上出现错误,怀疑是因为单次取出的数据太大所导致的,于是改写了dz中的memcache连接文件

解决方案:替换DZ自身的memory_driver_memcache.php即可
obj = memcache_init();
    $this->enable = $this->obj !== false;
  }

  public function get($key) {
    return $this->obj->get($key);
  }

  public function getMulti($keys) {
    $ret = array();
    foreach($keys as $key){
      $ret[$key] = $this->get($key);
    }
    return $ret;
  }
  public function set($key, $value, $ttl = 0) {
    return $this->obj->set($key, $value, MEMCACHE_COMPRESSED, $ttl);
  }

  public function rm($key) {
    return $this->obj->delete($key);
  }

  public function clear() {
    return $this->obj->flush();
  }

  public function inc($key, $step = 1) {
    return $this->obj->increment($key, $step);
  }

  public function dec($key, $step = 1) {
    return $this->obj->decrement($key, $step);
  }

}

?>




扫一扫添加有偿QQ
扫一扫添加微信客服