Vtiger CRM 安装使用常见问题及解答 FAQ

本文最后更新于2023年6月2日,已超过半年没有更新,如果内容失效,请在评论区反馈,谢谢!

CRM 爱好者群里看到大家经常问的一些问题,Maie 在这里搜集整理一下,适用于 最新版本的常见问题解答(FAQ)供伸手党们享受。群里提出的问题有人解答后也将更新到这里,此文将持续更新!

提问的方式,非常有必要说明一下。大部分加群的同学都是来问问题的,基本上很少有人说我是来帮助解答问题的。有些人一上来就截个图,这个怎么解,那个怎么破?!你既没有说运行环境,又没有说进行什么操作时产生的问题,鬼才知道怎么回事。由于 Vtiger CRM 是开源系统,没有哪个人有业务帮你解答。原则上在Vtiger CRM 爱好者群里所提问题得到解答后,提问者应自行测试并有义务以上传文档、群问问或者发给群主等方式共享出来分享。我也就会综合更新到这里。

提问的技巧

在 VTer 爱好者 QQ 群或者流浪天下提问时详细描述环境版本和错误提示将有助于大家对你提供帮助,包括但不限于:
1)操作系统:windows 还是 Linux,具体版本
2)运行环境:LAMP 还是 LNMP,是集成环境还是什么环境,具体版本是多少
3)Vtiger CRM 系统版本是多少,源码来源是哪里?
4)浏览器是什么版本?
5)具体错误是什么,是什么操作之后导致了这个错误,是否能重现?

Vtiger CRM 安装问题与解答

Q:Vtiger CRM 需要什么环境?
A:

  • Windows:Windows XP/7/8/10,Windows Server 2003/2008/2012+,Vtiger 6.3 以上版本建议通过各种 WAMP/XAMPP/PHPStudy 集成环境(注意不要使用最新版本,PHP 版本建议PHP 5.5,7.0)进行安装 ,Vtiger 6.3 以下版本建议通过官方 EXE 一键安装包安装。注意:官方已经不建议在Windows环境下安装使用。
  • Linux(推荐):各种 LAMP 环境,建议 PHP 5.3-5.5,7.0,Vtiger CRM可能对于 PHP7 支持不太好,建议不要盲目追新。数据库可以是 MySQL 5.1/5.6+ 或 MariaDB 10.x(请务必注意版本),采用云服务器的建议配一个带缓存的云数据库,这样速度比较快。
  • 浏览器:建议 Chrome\Firefox 等对HTML5 支持较好的 webkit 内核的浏览器。
  • 参数(参考官方安装手册):
    • max_memory (min. 256MB),Vtiger 安装有点占内存
    • max_execution_time (min. 60 seconds),Vtiger 数据表较多,最大执行时间建议设置大一些(如600),否则容易安装失败
    • error_reporting (E_ALL & ~E_NOTICE),根据 PHP 版本不同进行设置,建议参考 php 手册
    • short_open_tags = OFF
  • Vtiger CRM 7 安装请查看《Vtiger CRM 7 安装指南》,Vtiger 6.x 版本安装请查看《Vtiger CRM 从入门到放弃》

Q:Vtiger CRM 安装向导中 PHP 环境检测模块安装显示红色 No 怎么解决?
A: 比如模块 imap support,Mysqli support 和 cURL support 显示不支持。以 Windows 环境为例,找到安装目录下的 php 目录,用记事本打开 php.ini 文件,找到

;extension=php_imap.dll
;extension=php_mysqli.dll
;extension=php_curl.dll

去掉前面的分号,修改为:

extension=php_imap.dll
extension=php_mysqli.dll
extension=php_curl.dll

补充:
openssl support 和 cURL support 支持显示为 NO ,怎么解决?

把 php 目录中两个 DLL 文件(libeay32.dll 和 ssleay32.dll)复制到 apache 的 bin 目录中覆盖原文件,重启 APACHE ,重新检测安装环境就可以显示为 Yes。(via 伊洛不眠人/瑞士巧克力,2015-05-21)

保存 php.ini 退出,重启 Apache 服务。重启 Apache 服务的方法建议打开 windows 服务管理器,找到 vtigercrmApache600 服务,右键选择:重新启动。

Linux 版请自行搜索相关模块安装方法。

Q:如何安装简体中文语言包?
A:

  • 安装方式一:通过官方扩展应用市场安装。(适用于Vtiger 6.1 及以上版本,Vtiger 7 语言包暂未进入官方应用市场)
    在 Vtiger CRM 右上角点齿轮图标进入后台设置界面,左侧菜单栏点击 Extension Store 进入官方扩展应用市场。点击应用市场右上角的 Login to Marketplace 登录或者注册应用市场。搜索 Chinese 找到简体中文语言包进行安装。
  • 安装方式二:导入 ZIP 语言包安装。(适用于 Vtiger 6 及以前版本)
    在 Vtiger CRM 爱好者 QQ 群中下载最新语言包,通过后台 Setting – Studio – Module Manager 界面左下角 Install from Zip 来导入模块、插件或者语言包。
  • 安装方式三:导入 ZIP 语言包安装。(适用于 Vtiger 7 及以上版本)
    点这里在流浪天下官网 或者 Vtiger CRM 爱好者 QQ 群(文末)中下载最新语言包,通过主菜单【Setting – CRM Setting – Module Management – Modules 】进入模块管理界面,点击右上角 “Import Module from Zip”按钮,进入导入模块管理界面,选择语言包进行导入。注意:导入页面这里有个 bug,导入时请直接选择语言包进行导入,不要勾选“ I accept with disclaimer and would like to proceed”否则无法导入。
  • 安装方式四:集成安装
    下载最新的 Vtiger CRM 汉化集成版,安装完成后即自动安装简体中文语言包。(VTer 爱好者 QQ 群提供下载)

语言包中已包括安装界面和客户门户汉化文件。

Q:安装中文语言包后如何切换为中文语言?
A:

  1. 右上角点击你的登录用户名
  2. 点击 My Preferences
  3. 点击 Edit ,或者在更多信息区域点击 Language 后面的空白
  4. 点击 Language 后面的下拉框,Vt 6.x 选择“简体中文”;Vt7.x选择“Chinese(简体中文)”
  5. 点击 Save 保存,或者点击任意空白的地方自动保存

切换语言为简体中文

Q:Login 登录页面如何汉化?
A: 由于目前版本 Vtiger 源码中 Login 页面并没有集成多语言,简体中文语言包无法将其汉化,只能手动修改模板。
模板地址:vtigerCRM\layouts\vlayout\modules\Users\login.default.tpl
请使用文本编辑器打开修改其中的对应英文字串。

Q:如何安装客户门户 Customer Portal?
A:

  1. 下载安装包。在官方网站下载 Customer Portal 安装文件,或者下载 Maie 修复过的客户门户安装包文件,解压后直接放到 Vtiger CRM 安装目录下。
  2. 语言包。若默认安装目录为 CustomPortal,则重新安装或者导入语言包即完成客户门户的汉化;如果修改过客户门户的文件夹名称,需要手动将语言包中的 Customer Portal 目录复制过来放在客户门户目录下。
  3. 改配置。修改 customerportal 其下的 PortalConfig.php 配置文件。修改第 20 行的 crm 访问链接地址和第 24 行的客户门户访问地址。修改默认语言为简体中文(Maie 修复版已改为默认简体中文)
  4. 设模块。在【CRM 设置-其它设置】中选择客户门户启用的菜单和模块。
  5. 启用用户。在【联系人-客户门户】中勾选启用此联系人为客户门户用户,选择支持服务提供的起止时间。系统将邮件发送登录地址和用户密码。如果系统未发邮件,请查看是否为以下一条问题。

Q:为联系人开通门户用户,但未发送门户登录邮件?
A:
在联系人页面为用户开通客户门户时,如果发送邮件服务器配置正常,理论上会通过邮件发送客户门户登录地址, 登录用户(Email 地址)和登录密码(随机生成)。但目前版本有 bug,此功能需要将 配置编辑器(Configuration Editor)中的服务支持邮箱和 外发邮件服务器(Outgoing Server)中的邮件地址设置为相同,否则邮件不会发送。但此配置对其它模块无影响。(via windsdream, 2015-06-08)

Q:客户门户 Customer Portal 记录中文显示为乱码,如何解决?
A:
原因可能是 NuSOAP 调用 Web Service 会检测 decode_utf8 的设置,如果为 true ,会执行 PHP 里面的 utf8_decode 函数,而 NuSOAP 默认为 true,因此,我们需要设置为 false。
打开客户门户根目录下的 include.php 文件,在大约第 21 行找到:

$client->soap_defencoding = $default_charset;

在此行后增加:

$client->decode_utf8 = false;

扩展 Tips:
NuSoap 是 PHP 环境下的 WebService 编程工具,用于创建或调用 WebService。它是一个开源软件,是完全采用 PHP 语言编写的、通过 HTTP 收发 SOAP消息的一系列 PHP 类。

点击这里下载修复过的 Customer Portal 安装包(for vtiger 6.5):

  • 修复简体中文乱码;
  • 修复 Google api 被墙 导致的 Ajax 下拉菜单无法点击;
  • 内置简体中语言包。

Q:为什么打不开应用市场? 点击 ExtensionStore 显示空白。
A:查看一下 PHP 环境中 php-curl 是否安装正确。如果未安装,请参考这里进行安装
在某些环境如 windows 8.1 64bit 系统上可能还需要在 apache 的 httpd.conf 配置文件中加入如下内容:

LoadFile d:/php/libeay32.dll
LoadFile d:/php/ssleay32.dll

其中 d:/php/ 改为这两个文件在你的 PHP 中安装的绝对路径。保存退出重启 Apache 服务。(2015-04-18 补充)
重启 Apache 服务的方法建议打开 windows 服务管理器,找到 vtigercrmApache600 服务,右键选择:重新启动。
Linux 版请自行搜索相关模块安装方法。

Q:安装时满屏 Notice 错误怎么解决?
A: vtiger CRM 比较老,有些函数方法写法都是老版 php 的,如果使用较新的 php 版本,就会提示各种 Notice 和 PHP Deprecated 等这种错误。

PHP.ini 配置文件中 error_reporting 改为:

error_reporting=E_ALL & E_NOTICE

Q:Illegal request(非法请求)
A:安装根目录下 config.inc.php 文件中

$siteUrl=’http://localhost:8888’;

此地址为 CRM 系统内置的 CSRF 攻击防护机制,即系统仅允许用户通过此地址进行访问。当使用了非此配置项指定的网址访问登录 CRM 系统,就会提示 Illegal request(非法请求)。

如果安装时使用了本地地址,安装完成后又想使用公网地址,可以将此地址改成你的域名、二级域名、IP 地址。

为安全起见,本地访问时应保持默认值;公网访问时此参数应设置为公开访问的 IP 或者域名,否则就会出现非法请求。如果内网访问和公网访问想要不同地址,或者如果不需要验证,也可以将 siteUrl 这个参数设置为空或者设置为 “http://”,但这样设置有可能导致其它不确定的问题。

网友补充:修改  includes\http\request.php   把 213 行注释掉,就不验证根路径了。(via 伊洛不眠人,2015-03-19)Maie 不建议这样做。

关于 CSRF 攻击防护的补充说明

跨站点请求伪造(也称为CSRF或XSRF)是一种恶意网站攻击的方法,黑客经常混淆(部分原因是同时使用这两种方法)用于跨站点脚本(XSS),或者陷入CSRF的用户在不知不觉中向服务器发送伪造请求。与XSS攻击相反,CSRF攻击不针对网站,也不一定改变其内容。在这种情况下,黑客的目的是使用权限执行一项操作,否则需要受害人的授权。(via 维基百科)

Vtiger CRM 系统已经具有内置的 CSRF 攻击防御机制。普通用户只能输入正确的 CRM 地址才能访问或登录 CRM 系统。记住以下事项对于避免系统被 CSRF 攻击非常重要:

  • 系统的安全性仅在用户登录系统时有效。如果用户未登录,他将收到登录请求,并且较难注入数据。
  • 用户只能通过 config.inc.php 文件定义的 CRM 地址进行登录(在系统安装期间自动设置)。对于 CSRF 安全性,地址是否包含“www”;“https”或只是“http”;或者如果末尾有任何其他字符,例如“/”等等都会进行检测。
  • 系统默认允许用户仅从一个 CRM 地址登录。
  • 如果要允许用户从不同的域(例如,LAN – 地址A和外部网络 – 地址B)登录,最好的解决方案是在 DNS 级别或服务器的本地区域中进行设置,应将用户从地址 B 重定向到地址 A。

Maie 补充:
Vtiger CRM 如何开启 SSL 支持?

  • 首先 Apache / Nginx 中必须开启强制 Https;
  • 其次 SSL 证书配置正确;
  • 安装根目录下 config.inc.php 文件中以下参数更改为:
// ssl default value = false
$dbconfigoption['ssl'] = true;

$site_URL = 'https://crm.youcompany.com/';

Q:工作流定时任务不起作用?
A: 尝试运行安装目录 cron 文件夹下的 .bat 文件(for windows)或者 .sh 文件 (for Linux)。

网友补充:Vtiger CRM for windows 定时任务启用方法: 修改 vtigerCRM\cron\vtigercron.bat 中的两个路径为安装路径,然后把  vtigercron.bat 添加到计划任务定时执行就行了。(via 伊洛不眠人,2015-03-19)

Q:安装登录后切换到简体中文,某些下拉列表显示???问题
A: 请通过命令行或者使用 phpmyadmin 等工具查看数据库字符集,应改为 utf-8。

关于数据库字符集涉及到数据库服务器、数据库、表、字段、数据库连接校对规则等均需要改成 utf-8 编码。命令行模式下可以通过以下命令查看字符集:

mysql> show variables like ‘character_set_%’;
mysql> show variables like 'collation_%'

如果要对已经建立的数据库和表进行修改和更新, 需要分别对数据库和表进行修改。由于 vtiger CRM 默认有 500+ 数据表,建议大家将数据库默认字符集配置修改为 utf-8 。权限可控的云主机可以通过 phpmyadmin
登录数据库配置,或者修改设置 my.cnf 配置改变字符集编码(不同版本设置可能略有不同,请参考 MySQL 手册):

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci

修改完成后需要保存并重启数据库。然后再重新安装 Vtiger,并由 vtiger 安装程序自行创建新的 utf-8 数据库(需要提供 mysql root 账户)。

对于阿里云等云数据库可以通过阿里云管理后台直接创建云数据库,创建时选择编码为 utf-8。

Q:安装不成功如何重装?
A: vtiger 安装时,数据库导入是远程连接官方服务器下载导进本地数据库的,所以连接时间很长。如果超时时间设置有误,会造成不完整安装。即使安装不正常,刷新访问路径,也会弹出登录窗口,给人错觉是安装完了,实际上登不上。

将根目录下 config.inc.php 文件内容清空保存,或者用官方文件中的同名文件覆盖一下,安装又可以重新来过了。(via Lieser, 2015-5-13)

Q:Vtiger CRM 如何备份数据库?
A: Vtiger CRM 6.0 以后官方已经取消了备份插件,现在只有通过手动方式备份。

方法一:本机导出用 mysqldump (官方推荐)
使用 mysqldump 命令行工具备份,Dos 命令行模式,进入 Mysql 安装目录,在命令行中输入如下命令:

mysqldump -u用户 -p密码 vtiger数据库名 > 备份文件名

(*注意参数和用户名、密码之间没有空格)
Win7 以上系统需要用“管理员模式”打开命令行才有效。(via 揭YuQi,2016-1-6)

若找不到 mysqldump 的路径可以在命令行输入:

dir /s mysqldump.exe

查询。关于 mysqldump 命令参数请自行搜索并参考相关文档。(via Coco 老爸,2016-1-6)

方法二:远程管理
使用 phpMyadmin , Navicat 等专业数据库管理系统连接登录数据库进行管理,具体参考相关文档。(via 吴赟斐-索服电子,2016-1-6)

方法三:阿里云等云数据库
直接登录相应云数据库系统操作导出备份。

方法四:安装第三方插件
在 Vtiger CRM 管理后台中登录应用商店,下载备份插件(搜索 Backup),通常为收费插件,适合不差钱的同学。

Q:有没有 Vtiger CRM 安装使用入门指南?
A: 本站提供一系列面向初学者的快速安装使用指南。

《Vtiger CRM 从入门到放弃》

Vtiger CRM 从入门到放弃

《Vtiger CRM 7 安装手册》:

Vtiger CRM 安装指南

《Vtiger CRM 7 系统管理员和用户手册》:

Vtiger CRM 7 系统管理员&用户手册

Vtiger CRM 7 扩展应用移植指南

Vtiger CRM 7 扩展应用移植指南

Q:Vtiger CRM 的目录都是做什么用的?有没有目录结构说明?
A: 主要目录结构如下,请大家一起补充:
– cache 缓存
– cron 定时任务
– data
– include 公共调用文件(数据库、事件、字段、视图等)
– includes 公共调用文件
– kcfinder 编辑器
– languages 语言包
– layouts 界面布局模版
– libraries 公共库(bootstrap、jquery、smarty、tcpdf等)
– license 许可证
– logs 日志
– migrate 升级
– modules 模块
– packages 插件包(语言包、扩展插件包等)
– pkg
– resources 资源(字体、JS、Styles等)
– schema 数据库结构(XML)
– soap
– storage 上传文件夹(权限必须可写)
– test 很杂的文件夹(如果改了模版页面没有刷新,看看是不是这个文件夹下的 templates_c/vlayout 下面有缓存)
– user_privileges 用户权限啥的,设置的共享权限都在这里,注意备份
– vtlib 开发库

Q:Vtiger CRM 跨版本如何升级?
A: 至今为止 Vtiger CRM 还没有跨版本的升级方案,也没有人研究过,感觉没啥必要。目前只能按官方发布的升级包依次升级。注意 hotfix 补丁包直接解压覆盖替换安装,有版本变化的 patch 包必须按以下步骤说明升级。

这里以 Vtiger 5.4 (很早的版本)升级至 Vtiger 7.4 (2021年最新版本)为例说明:
升级准备:
1)备份 Vtiger CRM 数据库,备份方法参考这里
2)FTP 下载或其它方式备份全站;
3)在本地测试环境中镜像还原生产环境程序;
4)下载各版本升级包备用,可以从官方网站下载(太慢),或者Vtiger爱好者官方群共享下载(见文末)

  • vtigercrm-540-600-patch.zip
  • vtigercrm-600-610-patch.zip
  • vtigercrm-610-620-patch.zip
  • vtigercrm-620-630-patch.zip
  • vtigercrm-630-640-patch.zip
  • vtigercrm-640-650-patch.zip
  • vtigercrm-650-701-patch.zip
  • vtigercrm-701-710-patch.zip
  • vtigercrm-710-720-patch.zip
  • vtigercrm-720-730-patch.zip
  • vtigercrm-730-740-patch.zip

升级过程:
各升级包主要是升级数据库和替换文件,Maie 觉得可以不下载升级版本的完整安装包(主要是太慢了)。每个升级版本的过程都要执行一次完整的升级步骤。
1)使用 540-600 升级包升级 Vtiger 5.4 to 6.0;
2)使用 600-610 升级包升级 Vtiger 6.0 to 6.1;
3)使用 610-620 升级包升级 Vtiger 6.1 to 6.2;
4)使用 620-630 升级包升级 Vtiger 6.2 to 6.3;
5)使用 630-640 升级包升级 Vtiger 6.3 to 6.4;
6)使用 640-650 升级包升级 Vtiger 6.4 to 6.5;
7)使用 650-701 升级包升级 Vtiger 6.5 to 7.01;
8)使用 701-710 升级包升级 Vtiger 7.01 to 7.10;
9)使用 710-720 升级包升级 Vtiger 7.10 to 7.20;
10)使用 720-730 升级包升级 Vtiger 7.20 to 7.30;
11)使用 730-740 升级包升级 Vtiger 7.30 to 7.40;

升级步骤:
1)解压 vtigercrm-xx0-xx0-patch.zip (xx 表示版本)到 vtigerCRM 的安装文件夹根目录。
2)将得到 migrate 文件夹(可能还有其它文件夹)和 vtiger6.zip (或 Vtiger7.zip)压缩包(这个包不要解压)。将它们全部拷贝到 Vtiger 的安装根目录下
3)通过浏览器打开升级向导:HTTP://crm地址/migrate
4)按照所提供的向导中的说明升级。需要管理员用户密码。如果不放心可以把完整源码包解压再覆盖一遍,注意不要把 config.inc.php 覆盖了,另外覆盖安装会覆盖掉 tag 标签。
5)重新导入新语言包
注意:

  1. 在* nix 中应为 apache 进程所有者启用文件夹写入权限以便平滑升级(有文件替换写入操作);
  2. 升级脚本比较占用执行时间和内存。请确保 PHP 配置没有限制;
  3. 确保您已经配置了error_reporting。配置错误可能会阻塞日志文件;
  4. 查看 – 现有表引擎类型需要是 InnoDB (需要顺序表以 _seq 结尾)。

Q:Vtiger CRM 如何修改上传文件大小?
A: 其实这个主要是环境限制(PHP、Nginx或Apache等)跟 vtiger 关系不大,鉴于很多人问,这里总结一下。注意修改参数后需要保存重启服务。

PHP 中配置上传相关参数

上传文件大小主要受到 php 中的 php.ini 设置影响,在 php.ini 文件中找到如下内容进行修改:

  • upload_max_filesize 所上传的文件的最大大小。默认值2M。
  • post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。

除以上两项,还受到以下参数影响:

  • memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值 8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)(一般导入数据库时,如果数据库太大,就会报错,改这个就可以)
  • max_execution_time = 60 Vtiger 建议最小设置为 60 秒
  • max_input_time = 60 ; Maximum amount of time each script may spend parsing request data这个默认就可以了

Apache 中配置上传相关的参数

在 Apache 里面有一个选项是 LimitRequestBody, 这个选项可以限制用户送出的 HTTP 请求内容。这个选项可以在 .htaccess 或 httpd.conf 里使用。请参考相关手册修改。

Nginx 中配置上传相关参数

如果 WEB 服务器使用 Nginx,需要在 nginx.conf 配置文件中配置以下参数:

  • client_max_body_size xxm; #主要是这个参数,限制了上传文件大大小,把 xx 改成你要的大小。(2018-10-26 by @frankie)
  • keepalive_timeout 65; #这个参数表示 http 连接超时时间,默认是65s。要是上传文件比较大,在规定时间内没有上传完成,就会自动断开连接!所以适当调大这个时间。但这个参数不能太大,太大了占用连接数资源。

Vtiger 配置上传相关参数

在 vtiger 安装目录中 config.inc.php 文件的 $upload_maxsize 或者后台管理页面-配置编辑器中设置上传文件大小。

MySQL 中配置上传相关参数

如果前面的配置已经解决,不用考虑本条。

如果 mysql 进行二进制文件存储,则需要设置 my.ini 的 max_allowed_packet=xxM

Q:Vtiger CRM 如何开启调试模式?
A:很多时候如果出现白屏或异常错误就需要开启调试模式,以便查看详细的错误提示再寻找解决方案。

Vtiger CRM 调试模式
config.ini.php 文件,大约第 18 行,去掉前面的“//”注释:

//ini_set('display_errors','on'); version_compare(PHP_VERSION, '5.5.0') < = 0 ? error_reporting(E_WARNING & ~E_NOTICE & ~E_DEPRECATED) : error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);   // DEBUGGING

PHP 调试模式
1)在 config.performance.php 文件中打开 log4php.debug 库的引用

'LOG4PHP_DEBUG' => true,

2)在 log4php.properties 文件中设置日志级别

log4php.rootLogger = DEBUG, A1

注意:请确保 Apache 服务器进程所有者拥有 logs/ folder 的写入权限。

数据库调试
在 include/database/PearDatabase 文件结尾以 adb 实例打开调试

if(empty($adb)) {
   $adb = new PearDatabase(); 
   $adb->connect();
   // ADD THIS LINE
   $adb->setDebug(true);
}

Smarty 模板
在 Smarty Setup.php 文件中将以下内容添加到类构造函数中

function vtigerCRM_Smarty() {
   $this->Smarty();
   $this->template_dir = 'Smarty/templates';
   // ...
   // ADD THIS LINE
   $this->debugging = true;
}

Q:新增记录时提示“你正在尝试访问的记录未找到”?
A: MySQL 数据库配置文件 my.cnf 中 SQL_MODE 不能设置为 STRICT_TRANS_TABLE 严格事务模式(用于进行数据的严格校验,错误数据不能插入,并且事务回滚)。VTiger 中大量 SQL 语句不遵循这种严格的事务模式,所以新增记录的时候由于该模式限制导致没有新增成功,就出现了记录没有找到的问题,希望遇到的同学注意一下(by @Misael)

@JD-阿海(2019-02-17)补充群晖 NAS 安装 Vtiger CRM 遇到的数据无法录入问题解决方法:

现象:群晖 NAS 上安装 vtigercrm,不久后从 WEB 浏览器中添加日历、产品、评注之类的就出错。提示{“success”:false,”error”:{“code”:”\u4f60\u6b63\u5728\u5c1d\u8bd5\u8bbf\u95ee\u7684\u8bb0\u5f55\u672a\u627e\u5230\u3002″,”message”:”\u4f60\u6b63\u5728\u5c1d\u8bd5\u8bbf\u95ee\u7684\u8bb0\u5f55\u672a\u627e\u5230\u3002″,”title”:null}} 你正在尝试访问的记录未找到。

原因分析:群晖每次重启后会自动修改 NAS 上的 MariaDB 数据的 sql_mode 值。

配置方法:修改群晖 NAS 下的 /volume1/@appstore/MariaDB10/usr/local/mariadb10/etc/mysql/my.cnf 文件增加 sql_mode 为如下样子:

sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Q:Centos 7.x 环境下安装白屏怎么解决?
A: 可能有很多原因,建议尝试步骤如下:
第1步:开启调试模式,以便查看错误输出;
第2步:查看调试信息,如果提示:Headers and client library minor version mismatch…,那是因为 CentOS 7.x 系列开始抛弃了 MySQL,缺省安装的是 MariaDB,如果这时又强制安装了 MySQL 则很容易赞成驱动版本不一致。命令行输入如下内容查看版本是否一致:

php -i|grep Client

然后重新安装 mysql 驱动

yum remove php-mysql  
yum install php-mysqlnd

Q:安装报错 Warning:file_put_contents(…):failed to open Stream: Permission denied in…?
A: vtiger CRM 安装时会解压很多文件,会创建目录和文件,如果没有为 WWW 目录分配用户和用户组权限,系统安装将不能继续。
如在 CentOS 系统下使用如下类似的命令给目录分配权限,详情参考 Linux 相关手册。

chmod -R www:www /var/www

(by @Push world,2017-12-11)
Q:Sorry! Attempt to access restricted file.
A:这是 Vtiger CRM 中一个比较常见的错误。
方法一:
在 CRM 安装根目录下找到 config.inc.php 文件,查看 $root_directory(安装根目录)和 $site_url(站点地址) 配置是否正确,其中 $root_directory 末尾必须要加“/”。类似如下:

$root_directory = ‘/var/www/vtigercrm/’

方法二:
如果方法一仍然未解决,且系统为 Linux 系统,查看以下文件和目录是否有写权限:

  • config.inc.php
  • tabdata.php
  • install.php
  • parent_tabdata.php
  • cache
  • storage/
  • install/
  • user_privileges/
  • Smarty/cache/
  • Smarty/templates_c/
  • Smarty/templates/modules/
  • modules/Emails/templates/
  • modules/
  • cron/modules/
  • test/vtlib/
  • test/wordtemplatedownload/
  • test/product/
  • test/user/
  • test/contact/
  • test/logo/
  • logs/
  • modules/Webmails/tmp/

方法三:
如果以上仍然未解决,请查看错误后是否给出文件路径,如果有,重新安装此文件。

Q:安装 Vtiger CRM 后出现空白屏幕或空白页面
A:这是安装 Vtiger CRM 后的另一个常见错误。这是由于 Apache / MySQL 配置导致的致命错误。

首先检查你是否是 CentOS 7.x,如果是,请参考这里解决 CentOS 7.x 安装白屏

如果不是,请检查您是否已经配置好了 Apache 权限。
当安装 vtiger 时,vtiger 的模板引擎需要在文件夹 test/templates_c 中写入缓存文件。确保你的Apache 服务器可以在这个文件夹中读写。90%的可能这是阻止你登录 vtiger 的原因。

如果权限正常,且服务器主机性能不怎么强大,可以尝试将php 环境中的最大执行时间等超时时间设置大一些,避免由于远程创建 SQL 数据库时由于超时时间太短造成数据库未写完。(通常正常安装会有 524+ 数据库)

如果均不是上述原因导致的问题,那么我们需要启用 Apache 错误报告来获取查看错误报告类型。请在 Linux 中查看配置教程。在 Windows 中,请参考 WAMP 或 XAMPP 相关手册。

此外,我们也可以开启调试模式查看更多的信息。记住,如果我们遇到 Apache / MySQL 的问题,那么解决方案只能是因错误而异,光有一个空白页面没有人知道是什么原因。

Q:安装后安装后,页面报错提示 502。CRM 可以正常登录,但是指派给某个用户显示 null 或空白,并且显示也有问题。
A: 解决思路:(by 冷霜微别 @2023-01-13)

查询哪些问题会导致502:
可能是PHP执行超时、或者Nginx超时等
查日志【查看PHP日志:execution timed out (100.980425 sec), terminating】–>执行时间超过100秒超时
修改PHP参数max_execution_time=300–>依然出现502错误,日志还是执行超时
PHP配置中 搜索匹配字符 “100” ,没有命中
fpm配置文件中命中“100”,参数是 request_terminate_timeout=100–>修改为200–>删除所有表,清空config.inc.php文件
重新安装即可。

Q:安装后进入“邮件管理器”点“配置邮箱”按钮无反应?
A: 检查 PHP 的 php-imap 组件是否正确安装。正确安装后即可打开。(by 长夜 @2019-05-31)

Vtiger CRM 使用常见问题及解答

Q:导入 CSV 文件乱码怎么解决?
A:
原因:文档和打开软件的字符集不匹配。
方法一:csv 文档另存为 utf-8。请先确认是否用 excel 软件打开过。用 openoffice 等文档编辑软件将 CSV 另存为 utf-8 格式再导入。
方法二(by 咖啡 @20170504):毕竟不是经常导入导出,利用手边现存的软件手动改下编码。

  1. csv 文件用记事本打开-另存为-编码选 ANSI
  2. 打开 csv 文件编辑
  3. 编辑完成保存退出,用记事本打开-另存为-编码选 UTF-8

方法三:修改 vtiger 代码,加入 GBK 中文字符集识别代码。(by Jason.D, 2015-11-11)
在 vtiger 安装目录中找到并打开 /modules/Import/helpers/Utils.php 文件,大约 19 行处查找:

static $supportedFileEncoding = array('UTF-8'=>'UTF-8', 'ISO-8859-1'=>'ISO-8859-1');

修改为:

static $supportedFileEncoding = array('GBK'=>'GBK','UTF-8'=>'UTF-8', 'ISO-8859-1'=>'ISO-8859-1');

Q:导出 CSV 文件乱码怎么解决?
A:原因是 excel 等编辑软件默认不支持 utf-8 编码,请先确认是否用 excel 软件打开过,如果需要用 excel 打开查看或编辑才需要修改 csv 文件的编码,否则不用管它。

方法一:

不要用 excel 直接双击,先打开 excel  点“数据 – 来自文本”,再选择文 csv 文件打开。(by @青云 20180727)

方法二:
用 openoffice 等文档编辑软件打开或将 CSV 另存为 utf-8 格式。

方法三(vtiger 6.5 以前版本):
在 modules\Vtiger\actions\ExportData.php 中找到 function output()函数,增加 mb_convert_encoding 转换函数。个人觉得没有必要,太麻烦,如果不需要打开编辑或者有 utf-8 文档编辑软件(如 OpenOffice 等)的同学可以完全忽略此方法。

在 164 行后增加一行 $fileName 转换:

$fileName = mb_convert_encoding($fileName,"GBK","UTF-8");

第 168 行 charset=UTF-8 改为:

header("Content-Type:$exportType;charset=UTF-8");

第176行 echo 改为:

echo mb_convert_encoding($header,"GBK","UTF-8");

第182行 echo 改为:

echo mb_convert_encoding($line,"GBK","UTF-8");

方法四(vtiger 6.5 版本)请先安装 php-mbstring 扩展,再使用以下方法:
在 modules\Vtiger\actions\ExportData.php 中 164 行后增加一行 $fileName 转换:

$fileName = mb_convert_encoding($fileName,"GBK","UTF-8");//转换文件名编码

在 173 fopen 后增加一行 UTF-8 BOM,改成如下的样子:

$fp = fopen("php://output", "w");
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF)); //添加 UTF-8 BOM
fputcsv($fp, $headers);

方法五:Vtiger 7.x 版本,修改方法类似于方法三
在 modules\Vtiger\actions\ExportData.php 中找到 function output()函数,增加 mb_convert_encoding 转换函数,请确认已安装 php-mbstring 扩展。
在 238 行后增加一行 $fileName 转换:

$fileName = mb_convert_encoding($fileName,"GBK","UTF-8");

第 250 行 echo header 改为:

echo mb_convert_encoding($header,"GBK","UTF-8");

第 263 行 echo line 改为:

echo mb_convert_encoding($line,"GBK","UTF-8");

其它方法,比如导出为EXCEL等方法,请加入 Vtiger CRM 爱好者 QQ 群下载及交流。

Q:视图中姓和名分开名在前姓在后怎么弄更好看一些?
A:
方法一:列表视图中创建新筛选列表,选择要显示的姓名等字段后保存,并设置为默认值。VT7 可以直接在筛选列表左上角按钮编辑显示的字段。但在详细列表中仍然还是显示为名字.姓的格式。

方法二:保留其中必填的一个“Last Name”,在语言包中修改标签,另外一个字段隐藏

1)找到语言包 Languages/zh_cn/Vtiger.php 文件,找到‘Last Name’字符串标签,修改为:

‘Last Name’ => '姓名'

2)进入 CRM 管理后台,在联系人模块中隐藏字段:“名字”(’First Name’);
3)列表视图筛选列表中去掉“名字”(’First Name’)字段显示。
(by 赤子麟城,2018-07-31 补充)

方法三:修改数据库交换字段(有必要么?)

Q:Vtiger CRM 导出 PDF 中文乱码?
A: 点击这里阅读 Vtiger CRM 6 导出 PDF 中文乱码解决方案

Q:新创建的用户登录后一片空白?
A: 请检查职位角色设置中某级职位角色是否分配了下级角色的权限配置文件,给错误的职位配置用户后,此用户登陆初始化时无法正确读取权限就会出现页面空白错误。举个例子:四级权限分别是销售主管,客服主管,分公司经理,销售人员。其中销售主管是销售人员的上级权限,在设置分公司经理时,权限只能是销售主管,客服主管。不应该包括销售人员权限配置。(20150306 via 张永升)

Q:Vtiger CRM 邮件管理中添加新邮件账户时提示 Can’t open mailbox : No such mailbox.
A: 确保已经安装 php-imap 扩展,确保邮件账户和邮件地址正确。如果添加任何邮件账户都提示 Can’t open mailbox : No such mailbox. 那么应该是 PHP 环境问题。

windows 版:
在 php 安装目录 php.ini 中开启 php_mbstring.dll 扩展。找到

;extension=php_mbstring.dll

去掉前面的分号,修改为:

extension=php_mbstring.dll

保存 php.ini 退出,重启 Apache 服务。保存 php.ini 退出,重启 Apache 服务。重启 Apache 服务的方法建议打开 windows 服务管理器,找到 vtigercrmApache600 服务,右键选择:重新启动。

Linux 版:
在线安装 php-mbstring

yum -y install php-mbstring

安装完成后重启Httpd服务。(via GO FOR IT, 2015-05-05)

Q:Login 登录页面布局如何修改?
A: Login 登录页面的修改需要具备一定的 HTML 结构知识。
模板地址:vtigerCRM\layouts\vlayout\modules\Users\login.default.tpl
请使用 Dreamwaver 、Notepad++ 等编辑器打开进行修改。开源软件,建议至少保留 Vtiger 相关版权信息。

Q:如何去除首页仪表板上的应用商店横幅广告 Banner?
A:

方法一:(by 双眼皮²º¹7 @2017-06-01)
模板位置:layouts\v7\modules\Vtiger\dashboards\dashboardTABContents.tpl
去掉或注释掉 Banner 所在的那一行(大约是第 13 行)

<br /><div class="dashboardBanner"></div>

方法二:(by Blake @2017-05-03)
修改 module/ExtensionStore 目录下的 ExtensionStore.js 文件(jQuery),去掉其中的 banner 相关展示代码。群内有网友上传的改好的文件可以参考。

方法三:(by 伊洛不眠人,2015-03-13)
将对应模块中的广告代码注释掉即可。
模板位置:\vtigerCRM\layouts\vlayout\modules\ExtensionStore\Promotions.tpl
修改方法:将最外层的

<div class="banner-container">...</div>

加上注释,改为:

<!--div class="banner-container">
...
</div-->

网友补充:这个 banner 好像还会自己回来?文件会被恢复… 加 display:none; 不知会不会好些。请点击这里查看修改方法

Q:客户名称很长的时候,在列表视图查询的时候会显示不完整,最后的字显示为???乱码,请问什么原因?
A: 原因是字符串截取函数 substr 函数未按 utf-8 进行中文文字判断,需要修改为 mb_substr 函数。

修改方法:
1)确认开启 PHP 的 mbstring 扩展。以 windows 版为例在 php.ini 中,将 ;extension=php_mbstring.dll 前面的 ; 去掉,保存重启 Apache 服务,重启后理论上就可以解决标题过长截取字符乱码的问题了,如果还是不能解决,多半是服务没重启,如果你很执着,那么请继续往下看。(via maie)
2)打开文件/include/utils/listviewutils.php
3)在大约 684 行的位置找到 textlength_check() 函数,增加 utf-8 判断,使用 mb_substr 函数截取。
Vtiger 6.2 参考代码如下:

//function added to check the text length in the listview.
function textlength_check($field_val) {
...
		} elseif (strlen(html_entity_decode($field_val)) > $listview_max_textlength) {
			$temp_val = substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength) . '...';
		}
	} else {
		$temp_val = $field_val;
...

直接将将上面红字标识的部分中 substr 修改为 mb_substr,或者也可以按如下方式将红字部分再增加一次 utf-8 判断(个人觉得没必要):

if ($default_charset == "utf-8"){
    $temp_val = mb_substr(preg_replace("/(< \/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength, $default_charset) . '...';
}
else{
    $temp_val = substr(preg_replace("/(<\/?)(\w+)([^>]*>)/i", "", $field_val), 0, $listview_max_textlength) . '...';
}

(via MJ 2014-09-03)
当然在列表视图中显示的长度也可以修改:
在 config.inc.php 中把 $listview_max_textlength = 40; 改成你需要的长度就可以了。

Q:客户门户登录时出现默认时区错误,如何解决?
A: 在 php.ini 中设置默认时区,保存并重启 apache 服务。

date.timezone = "Asia/Shanghai"

如果是首次登录时时区选择对话框中无法选择时区下拉列表,可以将最大执行时间加大点试一下,官方推荐最小为 60s.

Q:共享规则权限无效,下级也查看上级记录,同级也可查看上级记录如何解决?
A:
找到安装目录下文件: user_privileges/user_privileges_XX.php
检索这一行

$profileglobalpermission=array('1'=>0,'2'=>1,);

0改为1
(2015-9-11 by 伊洛不眠人)

Q:登录进主桌面后菜单栏右上角链接到 Vtiger 的帮助文档、视频等链接在哪里修改或者去掉
A:
请查看 \modules\Vtiger\views\Header.php 文件,修改注意备份。

Q:上传文档或者图片提示:mime_magic or fileinfo extension required
A:
Vtiger 6.5 以上版本,PHP-filefinfo 为必须安装的扩展,请安装。
以阿里云 CentOS 一键安装包为例进行说明:
进入 PHP 安装目录下的 fileinfo 扩展目录:

cd/php-5.5.7/ext/fileinfo

编译:

/alidata/server/php-5.5.7/bin/phpize
./configure -with-php-config=/alidata/server/php-5.5.7/bin/php-config
make && make install

编辑 php.ini 文件,加入

extension=fileinfo.so

保存并重启httpd服务。

Q:用户、产品、文档、联系人等各个模块上传图片均不响应,开启调试模式提示:Fatal error: Call to undefined function exif_read_data()
A:
Vtiger CRM 6.5 + PHP5.5 以上版本需要安装 php-info(参考上一条 FAQ)和 php-exif 扩展:

cd/php-5.5.7/ext/exif

编译:

/alidata/server/php-5.5.7/bin/phpize
./configure -with-php-config=/alidata/server/php-5.5.7/bin/php-config
make && make install

编辑 php.ini 文件,在 mbstring 扩展之后加入

extension=exif.so

保存并重启 httpd 服务。

Q:当 PHP 的 short_open_tag 参数被启用的时候,一些特定的图片不能被上传。现象为显示上传成功,数据库和上传文件夹中没有相应图片
A:
这是因为 vtlib / Vtiger / Functions.php 中的 validateImage 函数会执行对 php 标签的检查,如果图片代码中包括(<?)则此图片可能无法上传。此时可以尝试将 short_open_tag 设置为 Off 并重启服务试下。

Q:VT 7.1/7.2 版本下,有些 jpg 图片能上传,有些 jpg 图片无法上传的问题
A:
@豆豆超人 实测用以下方式解决(via@Chrisuno)。

安装目录下打开 vtlib/Vtiger/Functions.php 文件。

大约在 608 行左右找到函数

static function validateImage($file_details) 

做好备份后修改替换为以下代码:

static function validateImage($file_details) {
global $app_strings;
$allowedImageFormats = array('jpeg', 'png', 'jpg', 'pjpeg', 'x-png', 'gif', 'bmp');

$mimeTypesList = array_merge($allowedImageFormats, array('x-ms-bmp'));//bmp another format
$file_type_details = explode("/", $file_details['type']);
$filetype = $file_type_details['1'];
if ($filetype) {
$filetype = strtolower($filetype);
}

$saveimage = 'true';
if (!in_array($filetype, $allowedImageFormats)) {
$saveimage = 'false';
}

//mime type check
$mimeType = mime_content_type($file_details['tmp_name']);
$mimeTypeContents = explode('/', $mimeType);
if (!$file_details['size'] || !in_array($mimeTypeContents[1], $mimeTypesList)) {
$saveimage = 'false';
}

// Check for php code injection
$imageContents = file_get_contents($file_details['tmp_name']);
if (preg_match('/(<\?php?(.*?))/i', $imageContents) == 1) {
$saveimage = 'false';
}
return $saveimage;
}

官方在 VT7.5 版本中对此函数有升级,也可参考 7.5 版中的代码。

Q:mail manager 中某些 HTML 格式的邮件可以右邮件列表中显示,但打不开,一直显示“正在打开”
A:
在 modules\MailManager\models\message.php 文件中找到

public function body($safehtml=true) {
return $this->getBodyHTML($safehtml);
}

改为:

safehtml=false

就可以了,所有邮件都可以打开了(2016-9-13 by 双眼皮2016)

Q:工作流调用执行任务和待办时出现提示:There seems to be some problem with workflow
A:网友反馈当把 config.inc.php 中的 默认时区 UTC 改成 Asia/Beijing 后,如果工作流中有“创建待办任务”和“创建日程事件”操作,在调用工作流时将会报错:There seems to be some problem with workflow。因 Vtiger CRM 时区列表中并没有 Asia/Beijing 代码,建议大家不要乱改默认时区($default_timezone)参数。(2017-11-24 by DMM)

Q:营销活动模块关联潜在客户、客户、联系人记录等选项标签下的“选择筛选列表并导入记录”下拉列表,如果不小心选择后就自动导入并关联记录,有什么方法移除此下拉列表框
A:网友 @KID 反馈在营销活动模块中,当选择联系人进行关联时,中间有一个“选择并载入记录”下拉列表选框(Maie 在新语言包中已经改为“选择筛选列表并导入记录”),当选择后就弹出一个不明显的提示,如果不注意确认后将把此筛选列表中的所有记录全部导入添加到当前关联列表记录中。为此 Maie 已经更新了语言包,增加明确的提示。如果实在不需要这个下拉列表,可以在代码中屏蔽。

修改方法(2018-10-24,@风轻月扬)

这个文件的 modules/Campaigns/views/RelatedList.php 注释掉:

$viewer->assign('CUSTOM_VIEWS', CustomView_Record_Model::getAllByGroup($relatedModuleName));

这行就可以了。仅供参考。

Q:Illegal escape sequence 'u'
A: Vtiger CRM 6.x 版本,有些模块点进去会提示 Illegal escape sequence 'u'。这可能是由于include\Zend\Json\Decoder.php 文件版本过低,下载最新的版本(如:Vtiger 7.x)中的同名文件替换即可。

Q:产品图片显示变形
A: 在 layouts/vt7/skins/inventory/style.css 文件中找到 .bx-wrapper img{},将其中的 height:45px; 删除或改成你自己要的图片高度尺寸。保存后清除缓存刷新页面。(2019-03-09 by 豆豆超人)

Q:导入超过 1000 条记录要等很久
A: Vtiger CRM 中,当导入记录超过 1000 条时,系统会自动转为工作流后台处理,会要求等待一段时间。如果记录超过 1000 条,但又不是很多,可以修改导入数量限制实现一次导入。
修改方法:
找到 modules/Import/models/Config.php 文件,打开找到第 20 行:

'immediateImportLimit'='1000'

将 1000 改成想要的数字,建议不要超过 10000,否则可能会由于系统资源不足导致系统卡死。
(2019-10-24 by 豆豆超人)


Vtiger CRM 爱好者 QQ 群,有真正愿意分享使用经验的朋友加入吧!点击链接或扫描二维码加入群聊【Vtiger CRM 爱好者】Vtiger CRM 爱好者
扫描二维码加群



除非注明,流浪天下 文章均为原创,转载请以链接形式注明出处。查看声明
本文链接地址:
订阅本站:https://maie.name/feed打赏:https://maie.name/donation

背包客,徒步自助旅行爱好者,户外旅行风光爱好者。前逍遥山水间户外团队成员,“流浪天下”博客网站站长。背包旅行,流浪天下,行走的日子,我只是天堂的过客...

猜你也喜欢:

89 条评论

  1. 6.3版本,运行后,浏览器安装install到最后是跳出warning,很长的一串,这是什么原因?

  2. 感谢您的分享,让我少走了弯路,PBX怎么配呢?我装的elastix

  3. 求个汉化包,打不开应用市场? 点击 ExtensionStore 显示空白,修改httpd.conf 配置也没用

  4. 界面供应商导入提示“导入目录无写入权限”是怎么回事?咋解决?vtiger目录已全部附777权限了!

  5. Customer Portal 登录,出现以下错误提示”.Could not connect to server. Please contact the administrator”

  6. 首页仪表板”Opportunities by Stage”,”Sales Pipeline” 的图表注释标签,只能以英文显示或是修改成单一语言显示,
    如何实现多国语言化,让各用户自选语言文字显示,互不干扰?

  7. IPAD Login 登录页面 如何汉化?
    Login 登录页面布局如何修改?

  8. 为什么打不开应用市场? 点击 ExtensionStore 显示空白。
    不知道这个配置文件要怎么改,添加了那两行后服务无法启动…

  9. 这个banner 好像还会自己回来?文件会被恢复… 加display:none; 不知会不会好些。

    cd ./layouts/vlayout/skins/
    sed -i “s/\.banner-container{/\.banner-container{\n\ \ \ \ display:none;/g” `grep “.banner-container{” -rl ./`

回复 瑾轩 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注