解决CentOS下PHP system命令unoconv转PDF提示”Unable to connect or start own listener”

centos系统下,用php的system命令unoconv把word转pdf时提示Unable to connect or start own listene的解决办法

unoconv -o /foo/bar/public_html/upload/ -f pdf /foo/bar/public_html/upload/test.docx 2>&1
上面这个命令在shell 终端能执行成功,但是在php(Apache)中会报错:Unable to connect or start own listene

只需要先设置HOME变量即可:
passthru(‘export HOME=/foo/bar/public_html/upload/ && unoconv -o /foo/bar/public_html/upload/ -f pdf /foo/bar/public_html/upload/test.docx 2>&1’)

Keep-Alive中通过component多次加载同样的动态组件无法保持状态的解决办法

问题描述

项目功能上有需要动态添加组件的需求,比如tab标签功能,动态添加标签,同时添加后的标签在切换时需要保存状态,自然而然想到了keepalive,这就有了下面的代码:

一、tabPage 定义方式1:

通过components事先定义好所有会加载的组件:


tagPage
通过ref或computed的方式判断当前的标签的类型并返回:


这个时候
keep
alive是工作的,但这里的问题是:

动态创建的组件有多个是同一个组件,比如APIAdd,

由于keep alive的缓存机制是通过组件名称来缓存的,同一个组件被打开多次的话其实显示的还是第一次打开的那个,这和我们实际的应用场景不符合,不能缓存界面状态(比如表单中输入的内容)

二、tabPage 定义方式2

为了解决方式1中的同名组件只能加载一次的问题,需要同一个组件被加载多次,只是里面展示的内容不一样,所以tabPage通过defineAsyncComponent异步加载:


这里组件能加载成功,同名组件每次创建标签都会生成一个新的,但是这里的问题是:

没有起到keepalive的效果,已经加载的组件,在切换时又重新创建了组件, 状态自然也没有得到保存,

解决办法:

为了解决同一个组件可以被动态加载多次,同时需要能keepalive,解决的办法就是不用component,而是把所有动态添加的组件都各自放在一个keepalive中,根据条件切换显示即可:


这样每个组件都可以加载自己的数据,并且可以
keep
 alive保存状态:

Windows安装cygwin + swoole,并配置crontab定时任务

一、Windows安装cygwin

  • 安装包下载

自行搜索安装包进行下载,目前官网无法打开。官网地址:http://www.cygwin.com/

  • cygwin安装详细教程

1. 打开安装包:setup-x86_64.exe

2. 点击“下一页”,选择第一种方式后再点击“下一页”

3. 更改安装目录为D:\cygwin64后,点击“下一页”

4. 选择组件包的存放位置,设置为D:\cygwin64\package,然后点击“下一页”

5. 选择连接方式,选择第二种方式后点击“下一页”

6. 由于网络原因可能会出现以下情况,点击“确定”即可

7. 在User URL中输入http://mirrors.163.com/后点击“Add”,并选择它点击“下一页”

8. 进入下载包的页面,如下图所示。在Search中输入需要下载的包并选择版本,第三张图片展示了所需要的组件,将这些组件选中后点击“下一页”,如果遗漏了某一个组件也不用卸载cygwin,只需要再次打开安装包,按上述步骤执行到此处,进行搜索遗漏的组件进行选中,然后再次下载即可。

9. 最后选中创建快捷方式并点击“完成”

  • 配置环境变量

1. 在Windows系统下找到【编辑系统环境变量】,添加系统变量的路径

2. 添加到该安装文件夹中的bin文件夹下

  • 检验Cygwin是否安装成功

打开cygwin快捷方式(即命令行),输入cygcheck -c cygwin

测试gcc、gdb是否安装成功

  • 安装apt-cyg(安装后能够像Linux系统一样使用apt-get install/remove命令安装卸载软件)()

1. 下载之后解压文件

2. 打开Cygwin,输入apt-cyg install/remove vim即可安装/卸载

二、安装PHP swoole扩展

swoole 下载地址(官网下载的文件试过后不能安装,所以推荐下面):

https://gitee.com/swoole/swoole/tags

注意:5.0以上版本适用于PHP8

PHP7建议使用4.x系列的版本。

我这里下载的是swoole-v4.8.13

  • 将下载的swoole-v4.8.13解押后(也可以直接通过sourcetree克隆不用解押),放到C:\cygwin64\home文件夹中

  • 打开前面安装的 Cygwin64 Terminal 命令窗口

    进入到 D:\cygwin64\home\swoole位置

  • 打开Cygwin64安装程序,搜索php-devel后安装

  • 安装完成后,执行phpize

  • 编译./configure

  • 执行make

时间会比较长

如果出现以下错误:

则需要再打开Cygwin安装程序重新安装扩展libpcre2-devel、pcre2

  • 再次输入 make、make test、 make install 命令

  • 手动打开 “/etc/php.ini” ,添加扩展 ” extension=swoole.so”

 

  • 运行 php -m查看扩展是否开启

  • 测试运行:进入/home/swoole/examples/http目录下,执行php server.php运行 “server.php”,在浏览器中输入http://127.0.0.1:9501/,看到以下界面就表示Swoole已经运行成功了

 

三、配置crontab定时任务

  • 安装并配置crontab定时任务

1. 右键以管理员身份打开Cygwin,安装cron服务,执行以下命令

cygrunsrv -I cron -p /usr/sbin/cron -a -D

2. 安装完服务之后,需要运行以下命令启动服务(此处执行可能会有错误cygrunsrv -S cron 报错:error starting a service :QueryServiceStatus:Win32 error 1062.)

cygrunsrv -S cron

3. 执行cron-config 重新安装配置crontab

please enter the password for user ‘administrator’: (此时输入的密码(使用系统账户的密码)是看不到的,没关系直接输入;再reenter(重新输入)

4. 按win+R打开运行页面,输入services.msc后进入服务

5. 找到Cron daemon双击打开属性列表,选择“自动”并且启动该服务(这样做是防止该服务没有被启动)

6. 配置定时任务的命令介绍

crontab -e #编辑任务

crontab -l #查看任务列表

crontab -r #删除任务

cronevents #查看执行情况

7. 创建shell脚本vim /home/cron.sh

8. 使用crontab -e来创建定时任务

crontab设定时程表的格式说明:

执行crontab -e配置定时任务(每天凌晨1点执行home目录中的cron.sh脚本):00 01 * * * sh /home/cron.sh

10. 使用crontab -l来查看,如下图

11. 使用cronevents查看任务执行情况

盲盒抽奖小游戏(小程序)

新型娱乐方式——”盲盒小游戏”上线啦!

随着科技的不断发展,人们的娱乐方式也在不断升级。最近,一种新型的娱乐方式——”盲盒小游戏”引起了广泛关注。

所谓盲盒小游戏,就是一种充满惊喜和乐趣的小游戏。用户可以通过购买积分来获得游戏内的随机物品,百分百获中奖哦;奖品包括角色、装备、道具等多种多样。而每个盲盒内的物品是完全随机的,许多物品都非常稀有,积分也可以用于商城兑换商品,并且可以集齐稀有龙珠获得神秘大奖,因此玩家们购买盲盒的同时也有着收集和交换的乐趣。

与传统的游戏不同的是,盲盒小游戏强调的是随机性和未知感。在特定奖池内玩家们无法预先知道他们会获得什么,这种不确定性增加了游戏的刺激感和乐趣。同时,盲盒小游戏还提供了社交互动的平台,让玩家们可以结交志同道合的朋友,一起分享游戏中的乐趣。

轿子山监狱开始试运行生产管理和工具管理系统

易点互联总经理 黎波于2023年04月01日,在轿子山监狱对相关领导和干警进行生产管理系统和工具管理系统进行培训工作;

生产管理系统是企业针对生产过程中的各个环节,包括原材料入库发放、生产计划、物料管理、生产流程控制、成品入库等环节进行全方位管理。通过生产管理系统的运用,可以帮助企业实现生产过程中全面规划、精准控制、高效执行和及时反馈,提升生产效率、降低生产成本。相应的培训主要包括以下内容:

  1. 生产管理系统的基础理论:了解生产管理系统的基本概念、工作原理、功能特点等,为后续学习奠定基础。
  2. 系统基本配置:学习如何对生产管理系统进行基本配置,包括企业信息设置、系统参数配置、用户权限管理等,使系统适应企业实际情况。
  3. 物料管理:熟悉物料管理的基本概念和主要功能,包括物料入库、出库、盘点等操作,确保物料管理精细化、有效性。
  4. 成品入库管理:熟悉成品入库管理的流程、方法,掌握成品入库发货的操作,提高生产出库效率和质量。
  5. 系统数据分析:通过学习系统的数据分析功能,掌握如何对生产管理系统的数据进行分析、处理和利用,为企业决策提供有力数据支持。

工具管理系统培训旨在让干警一线人员了解和掌握使用生产工具管理系统的操作方法和流程,提高工作效率和准确性。以下是培训内容的详细介绍:

  1. 生产工具管理系统的应用场景和优势。
  2. 生产工具的查询和编辑;
  3. 生产工具入库和出库操作;
  4. 生产工具分配、领用和归还功能;
  5. 系统管理员的权限和职责;
  6. 账号注册和管理;
  7. 权限设置和调整;
  8. 数据备份和恢复;
  9. 系统日志管理。
  10. 生产工具管理系统数据处理和分析

培训结束后,参训人员将能够熟练掌握生产工具管理系统的使用方法,提高生产工作效率和准确性。

macOS monterey 升级后安装php

macOS monterey已经完全移出了php,不再默认包含;升级后需要自行安装:

可以通过brew install 的方式安装php,但是通过该方法安装的php又无法和默认的apache配合使用,会包签名错误: No code signing authority for module at /opt/homebrew/Cellar/php/8.0.12/lib/httpd/modules/libphp.so specified in LoadModule directive.

当然可以采取对so代码自签名的方式,但实际上这不是最好的办法,因为brew install 安装的php和mac默认自带的apache之间会由于各种依赖库的问题无法跑起来

最好的办法就是停用默认的apache,然后apache和http完完全全都采用brew 来安装brew 会把依赖的各种包自行安装好

  1. sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
  2. brew install php
  3. brew install httpd

注意brew 安装后的提示,相应的环境变量PATH都按安装后的提示设置,最好brew services start 对应的服务即可