当前位置: 首页>編程日記>正文

php工作流根据不同流程保存,启用SuiteCRM工作流(workflow)-权威指南

php工作流根据不同流程保存,启用SuiteCRM工作流(workflow)-权威指南

启用SuiteCRM工作流:SuiteCRM使用了许多工作流程可以在预定时间运行的程序,支持搜索索引,工作流,电子邮件通知,数据库维护等功能。完成安装Suite CRM后,需要手动启用 Scheduler作业。这是通过要求操作系统每分钟运行一个名为cron.php的脚本来完成的。反过来,这将根据其适当的时间表管理所有SuiteCRM作业。所有这些都可以在Admin / Schedulers屏幕上进行管理。

63658230e7d74f03f4920e523ce9d21a.png自定义CRM软件

在Windows中,这是在系统的“任务计划程序”上设置的;在Linux和iOS(这是本文的重点)中,它是在crontab中设置的。在安装过程中,您将收到详细的说明,以及设置这些作业所需运行的特定命令。安装后,您仍然可以在Admin / Schedulers屏幕底部访问这些说明。

为确保您的Scheduler作业不会造成权限问题,标准做法是在Web服务器所运行的同一用户下运行它们。对于不同的配置,必须调整config.php中的allowed_cron_users数组。

我需要了解什么crontab基础知识?

在Linux中,每个用户可以有一个crontab。这甚至适用于无法登录Shell的用户,例如许多默认安装中的标准Web服务器用户(如www-data和nobody)。在这些示例中,我将一直使用www-data,但是您可以将其更改为所需的任何用户。

要列出特定用户的crontab的内容,请使用类似以下命令的内容:

sudo crontab -l -u www-data

要编辑这些内容,请改用-e开关:

sudo crontab -e -u www-data

某些Linux版本(尤其是Ubuntu)具有另一个crontab,即系统级crontab。这是通过编辑文件来编辑的:

sudo nano /etc/crontab

请注意,此crontab中的注释说明它是系统范围的crontab。在这里,您可以指定要以任何用户身份运行的命令,因此,在其中有一个额外的列,您可以在其中说出该命令运行的用户,例如:

* * * * * www-data cd /var/www/html; php -f cron.php > /dev/null 2>&1

看到www-data那里吗?特定用户的crontab中不会包含该内容。该用户名列仅用于系统范围的crontab。

这些作业应在哪个用户下运行?

答案因系统而异。但是,一种标准的可接受解决方案是找出您的Web服务器在哪个用户下运行,并将该用户也用于cron作业。这简化了权限方案的设计,并基本上确保了访问同一数据库和文件的两个进程(Web应用程序和cron作业)不会彼此产生权限问题。

弄错了会严重影响您的安装。确保您的权限方案是这样的:一个进程可以写和写可写,另一个进程也可以读和写。

如果由于错误的crontab配置而以root身份运行cron作业一段时间,则在修复它后,请记住在整个SuiteCRM目录树上重置正确的所有权和权限,然后执行Quick Repair and Rebuild。

以及如何确定我的Web服务器在哪个用户下运行?

您可以通过多种方法在线阅读有关内容。我将列出一些特定于SuiteCRM的信息:

在7.8.3及更高版本中,进入Admin / Schedulers并在屏幕底部看到crontab命令。

在7.8.3及更高版本中,请检查cron_allowed_usersconfig.php文件中的该部分,该部分应该在该位置。

在任何版本上,进入Admin / Diagnostics并仅选择phpinfo。生成该文件后,检查APACHE_RUN_USER其提供的值。(注意:不要从命令行运行php -i,这不是一回事)

config.php中的cron_allowed_users部分是什么?

本节中的信息仅适用于SuiteCRM 7.8.3和更高版本。

从2017年4月的SuiteCRM 7.8.3开始,引入了一种机制来限制允许运行cron作业的用户。早期版本不检查用户,而是让您以任何用户身份运行cron(因此,您需要确保它是正确的用户,而不是root)。

只有在被称为数组中列出用户cron_allowed_users在config.php(你的SuiteCRM安装的根目录)将被允许运行cron.php。任何其他用户将导致该脚本在每次启动时自行终止。

通常,您无需执行任何操作即可将有效用户添加到该阵列,因为SuiteCRM安装程序会自动为您执行此操作,并添加当前的Web服务器用户(如果尚未存在)。升级向导将执行相同的操作(这些自动添加的缺点是,如果您想使Web服务器用户脱离该阵列,则每次升级都将花费一些工作。但是,这种情况很少见)。

您可以添加多个允许的用户。root尤其不建议这样做,并且root即使运行运行安装程序的Web服务器用户也不会添加安装程序,如果确实需要,则必须手动进行添加。

config.php的相关部分可能如下所示:

'cron' =>

array (

'max_cron_jobs' => 10,

'max_cron_runtime' => 30,

'min_cron_interval' => 30,

'allowed_cron_users' =>

array (

0 => 'www-data',

),

),

我应该在crontab中使用哪个命令?

基本思想是经常运行cron.php,它会处理所有事情。

使用上面给出的有关如何编辑正确的crontab以及应该是哪个用户的crontab的知识,将此命令添加到crontab的底部(以一般形式给出):

* * * * * cd /your/suitecrm/folder; php -f cron.php > /dev/null 2>&1

现在给出一些具体的典型示例。首先,Ubuntu Server,系统级crontab:

* * * * * www-data cd /var/www/html; php -f cron.php > /dev/null 2>&1

如果要编辑特定www-data用户crontab,请在该命令中省略用户名。

Bitnami提供的一种非常常见的安装。他们建议使用以下命令:

* * * * * su daemon -s /bin/sh -c "cd /opt/bitnami/apps/suitecrm/htdocs; /opt/bitnami/php/bin/php -f cron.php > /dev/null 2>&1"

当然,您也可以使用crontab的语法来降低其运行频率,这在频繁使用的系统中可能很重要。要每两分钟而不是每分钟运行一次,请更改第一列,如下所示:

*/2 * * * * cd /your/suitecrm/folder; php -f cron.php > /dev/null 2>&1

如果我无法编辑crontab怎么办?

如果您没有sudo权限来编辑某些crontab(在共享主机方案中可能会发生),请与您的虚拟主机技术支持联系以请求更改。您可以在此处将其引导至这些说明。

哪些php.ini设置适用于cron作业?

首先,回想一下,系统中通常至少有两个独立的PHP配置:一个在Web服务器内部运行,一个从命令行(CLI)运行。

Cron作业通常从CLI子系统运行,该子系统使用另一个php.ini文件。这意味着您必须timezone专门为cron作业配置诸如此类的内容以及其他详细信息。

要在系统中找到几个php.ini文件,可以使用

sudo find / -name php.ini 2>/dev/null

要查看您的CLI使用哪个php.ini文件,请键入

php -i | grep php.ini

如何确定作业确实在运行?

该Admin / Schedulers会显示每个作业的最新运行时间,以及它是否有错误。

Linux的syslog正常日志记录在中启动的进程cron。

suitecrm.log只要您的日志级别覆盖了它,SuiteCRM 还将记录这些事件(您可以对其进行检查并从中进行更改Admin / System Settings)。

如果某些特定的Scheduler Job因错误而失败,suitecrm.log也是开始进行故障排除的地方,以及Web服务器的日志(通常称为php_errors.log)。

下面是重点

在管理员——系统管理——任务计划中,会有如下的提醒。

配置运行 SuiteCRM 的任务计划程序,需要使用此命令编辑 Web 服务器用户的 crontab 文件:

sudo crontab -e -u web2

并在用户 crontab 文件中添加以下行(可以指定 -c /path/to/php.ini 参数使用自定义的 php.ini 配置文件,适用于 php fastcgi 用户):

* * * * * cd /var/www/clients/client1/web2/web; php -f cron.php > /dev/null 2>&1

053002074a59b1771743d90f689e3792.png

看完之后您应该明白,你还有什么配置没有做。

首先我们登陆到Linux服务器,运行上面提示的第一行命令:sudo crontab -e -u web2

30fa3e75c2a6512ea32985369e81bb2b.png

运行完成后,提示:“no crontab for web2-using an empty one”,大致就是说针对web2这个虚拟空间没有crontab,需要我们创建一个,然后有提示我们选择哪个编辑器创建。

5c0d06268df78d1a45fb5a91dac344e0.png

我们选择推荐的第二个编辑器“nano”,回车。自动成功创建了一个 crontab ,并且使用“nano”编辑器给我们打开了crontab配置文件,我们需要在文件中插入“*    *    *    *    *     cd /var/www/clients/client1/web2/web; php -f cron.php > /dev/null 2>&1”(在ubuntu 16中运行不生效)

51fe61b7be654ee86ac5823b725db063.png

备注:如上图所示,需要执行完“Ctrl+o”保存后,按回车键存储!!!存储完成后“Ctrl+X”推出。

然后保存,退出即可。退出后,进入如下命令行。此时工作流即可生效!!!

238189d5304aa96e57f74edadff51130.png

GNU nano使用保存退出的说明

文件编辑中常用快捷键:

ctrl+X 离开nano软件;

ctrl+O 保存文件 。

复制一整行:Alt+6

剪贴一整行:Ctrl+K

粘贴:Ctrl+U

参考官方论坛链接:https://community.suitecrm.com/t/workflow-not-working-suitecrm-installed-on-centos-6-3-64bit/45019/37

root@isp:~# sudo crontab -e -u web2

no crontab for web2 - using an empty one

Select an editor. To change later, run 'select-editor'.

1. /bin/ed

2. /bin/nano

3. /usr/bin/vim.basic

4. /usr/bin/vim.nox

5. /usr/bin/vim.tiny

Choose 1-5 [2]: 2

crontab: installing new crontab

root@isp:~#

推荐阅读


https://www.fengoutiyan.com/post/15583.html

相关文章:

  • 如何实现工作流
  • 工作流节点
  • python 工作流
  • php工作流程
  • java工作流引擎
  • 工作流选型
  • 工作流开源框架
  • 工作流与过程管理
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機