解決CentOS下PHP system命令unoconv轉(zhuǎn)PDF提示”Unable to connect or start own listener”

centos系統(tǒng)下,用php的system命令unoconv把word轉(zhuǎn)pdf時(shí)提示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
上面這個(gè)命令在shell 終端能執(zhí)行成功,但是在php(Apache)中會(huì)報(bào)錯(cuò):Unable to connect or start own listene

只需要先設(shè)置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多次加載同樣的動(dòng)態(tài)組件無(wú)法保持狀態(tài)的解決辦法

問題描述

項(xiàng)目功能上有需要?jiǎng)討B(tài)添加組件的需求,比如tab標(biāo)簽功能,動(dòng)態(tài)添加標(biāo)簽,同時(shí)添加后的標(biāo)簽在切換時(shí)需要保存狀態(tài),自然而然想到了keepalive,這就有了下面的代碼:

一、tabPage 定義方式1:

通過components事先定義好所有會(huì)加載的組件:


tagPage
通過ref或computed的方式判斷當(dāng)前的標(biāo)簽的類型并返回:


這個(gè)時(shí)候
keep
alive是工作的,但這里的問題是:

動(dòng)態(tài)創(chuàng)建的組件有多個(gè)是同一個(gè)組件,比如APIAdd,

由于keep?alive的緩存機(jī)制是通過組件名稱來(lái)緩存的,同一個(gè)組件被打開多次的話其實(shí)顯示的還是第一次打開的那個(gè),這和我們實(shí)際的應(yīng)用場(chǎng)景不符合,不能緩存界面狀態(tài)(比如表單中輸入的內(nèi)容)

二、tabPage 定義方式2

為了解決方式1中的同名組件只能加載一次的問題,需要同一個(gè)組件被加載多次,只是里面展示的內(nèi)容不一樣,所以tabPage通過defineAsyncComponent異步加載:


這里組件能加載成功,同名組件每次創(chuàng)建標(biāo)簽都會(huì)生成一個(gè)新的,但是這里的問題是:

沒有起到keepalive的效果,已經(jīng)加載的組件,在切換時(shí)又重新創(chuàng)建了組件,?狀態(tài)自然也沒有得到保存,

解決辦法:

為了解決同一個(gè)組件可以被動(dòng)態(tài)加載多次,同時(shí)需要能keepalive,解決的辦法就是不用component,而是把所有動(dòng)態(tài)添加的組件都各自放在一個(gè)keepalive中,根據(jù)條件切換顯示即可:


這樣每個(gè)組件都可以加載自己的數(shù)據(jù),并且可以
keep
?alive保存狀態(tài):

Windows安裝cygwin + swoole,并配置crontab定時(shí)任務(wù)

一、Windows安裝cygwin

  • 安裝包下載

自行搜索安裝包進(jìn)行下載,目前官網(wǎng)無(wú)法打開。官網(wǎng)地址:http://www.cygwin.com/

  • cygwin安裝詳細(xì)教程

1. 打開安裝包:setup-x86_64.exe

2. 點(diǎn)擊“下一頁(yè)”,選擇第一種方式后再點(diǎn)擊“下一頁(yè)”

3. 更改安裝目錄為D:\cygwin64后,點(diǎn)擊“下一頁(yè)”

4. 選擇組件包的存放位置,設(shè)置為D:\cygwin64\package,然后點(diǎn)擊“下一頁(yè)”

5. 選擇連接方式,選擇第二種方式后點(diǎn)擊“下一頁(yè)”

6. 由于網(wǎng)絡(luò)原因可能會(huì)出現(xiàn)以下情況,點(diǎn)擊“確定”即可

7. 在User URL中輸入http://mirrors.163.com/后點(diǎn)擊“Add”,并選擇它點(diǎn)擊“下一頁(yè)”

8. 進(jìn)入下載包的頁(yè)面,如下圖所示。在Search中輸入需要下載的包并選擇版本,第三張圖片展示了所需要的組件,將這些組件選中后點(diǎn)擊“下一頁(yè)”,如果遺漏了某一個(gè)組件也不用卸載cygwin,只需要再次打開安裝包,按上述步驟執(zhí)行到此處,進(jìn)行搜索遺漏的組件進(jìn)行選中,然后再次下載即可。

9. 最后選中創(chuàng)建快捷方式并點(diǎn)擊“完成”

  • 配置環(huán)境變量

1.?在Windows系統(tǒng)下找到【編輯系統(tǒng)環(huán)境變量】,添加系統(tǒng)變量的路徑

2.?添加到該安裝文件夾中的bin文件夾下

  • 檢驗(yàn)Cygwin是否安裝成功

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

測(cè)試gcc、gdb是否安裝成功

  • 安裝apt-cyg(安裝后能夠像Linux系統(tǒng)一樣使用apt-get install/remove命令安裝卸載軟件)()

1. 下載之后解壓文件

2. 打開Cygwin,輸入apt-cyg install/remove vim即可安裝/卸載

二、安裝PHP swoole擴(kuò)展

swoole?下載地址(官網(wǎng)下載的文件試過后不能安裝,所以推薦下面):

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?命令窗口

    進(jìn)入到?D:\cygwin64\home\swoole位置

  • 打開Cygwin64安裝程序,搜索php-devel后安裝

  • 安裝完成后,執(zhí)行phpize

  • 編譯./configure

  • 執(zhí)行make

時(shí)間會(huì)比較長(zhǎng)

如果出現(xiàn)以下錯(cuò)誤:

則需要再打開Cygwin安裝程序重新安裝擴(kuò)展libpcre2-devel、pcre2

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

  • 手動(dòng)打開 “/etc/php.ini” ,添加擴(kuò)展 ” extension=swoole.so”

?

  • 運(yùn)行 php -m查看擴(kuò)展是否開啟

  • 測(cè)試運(yùn)行:進(jìn)入/home/swoole/examples/http目錄下,執(zhí)行php server.php運(yùn)行?“server.php”,在瀏覽器中輸入http://127.0.0.1:9501/,看到以下界面就表示Swoole已經(jīng)運(yùn)行成功了

?

三、配置crontab定時(shí)任務(wù)

  • 安裝并配置crontab定時(shí)任務(wù)

1. 右鍵以管理員身份打開Cygwin,安裝cron服務(wù),執(zhí)行以下命令

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

2.?安裝完服務(wù)之后,需要運(yùn)行以下命令啟動(dòng)服務(wù)(此處執(zhí)行可能會(huì)有錯(cuò)誤cygrunsrv -S cron 報(bào)錯(cuò):error starting a service :QueryServiceStatus:Win32 error 1062.)

cygrunsrv -S cron

3.?執(zhí)行cron-config 重新安裝配置crontab

please enter the password for user ‘a(chǎn)dministrator’: (此時(shí)輸入的密碼(使用系統(tǒng)賬戶的密碼)是看不到的,沒關(guān)系直接輸入;再reenter(重新輸入)

4. 按win+R打開運(yùn)行頁(yè)面,輸入services.msc后進(jìn)入服務(wù)

5. 找到Cron daemon雙擊打開屬性列表,選擇“自動(dòng)”并且啟動(dòng)該服務(wù)(這樣做是防止該服務(wù)沒有被啟動(dòng))

6.?配置定時(shí)任務(wù)的命令介紹

crontab -e #編輯任務(wù)

crontab -l #查看任務(wù)列表

crontab -r #刪除任務(wù)

cronevents #查看執(zhí)行情況

7. 創(chuàng)建shell腳本vim /home/cron.sh

8. 使用crontab -e來(lái)創(chuàng)建定時(shí)任務(wù)

crontab設(shè)定時(shí)程表的格式說(shuō)明:

執(zhí)行crontab -e配置定時(shí)任務(wù)(每天凌晨1點(diǎn)執(zhí)行home目錄中的cron.sh腳本):00 01 * * * sh /home/cron.sh

10.?使用crontab -l來(lái)查看,如下圖

11. 使用cronevents查看任務(wù)執(zhí)行情況

醫(yī)美行業(yè)在線預(yù)約公眾號(hào)上線啦

醫(yī)美在線預(yù)約公眾號(hào)可以實(shí)現(xiàn)康復(fù)師排班在線預(yù)約并支付,到店服務(wù)核銷,可靈活配置各種醫(yī)美服務(wù)及其價(jià)格,包含大客戶管理,康復(fù)師團(tuán)隊(duì)管理,門店管理,患者管理,訂單管理等;

                                                              

 

盲盒抽獎(jiǎng)小游戲(小程序)

新型娛樂方式——”盲盒小游戲”上線啦!

隨著科技的不斷發(fā)展,人們的娛樂方式也在不斷升級(jí)。最近,一種新型的娛樂方式——”盲盒小游戲”引起了廣泛關(guān)注。

所謂盲盒小游戲,就是一種充滿驚喜和樂趣的小游戲。用戶可以通過購(gòu)買積分來(lái)獲得游戲內(nèi)的隨機(jī)物品,百分百獲中獎(jiǎng)哦;獎(jiǎng)品包括角色、裝備、道具等多種多樣。而每個(gè)盲盒內(nèi)的物品是完全隨機(jī)的,許多物品都非常稀有,積分也可以用于商城兌換商品,并且可以集齊稀有龍珠獲得神秘大獎(jiǎng),因此玩家們購(gòu)買盲盒的同時(shí)也有著收集和交換的樂趣。

與傳統(tǒng)的游戲不同的是,盲盒小游戲強(qiáng)調(diào)的是隨機(jī)性和未知感。在特定獎(jiǎng)池內(nèi)玩家們無(wú)法預(yù)先知道他們會(huì)獲得什么,這種不確定性增加了游戲的刺激感和樂趣。同時(shí),盲盒小游戲還提供了社交互動(dòng)的平臺(tái),讓玩家們可以結(jié)交志同道合的朋友,一起分享游戲中的樂趣。

轎子山監(jiān)獄開始試運(yùn)行生產(chǎn)管理和工具管理系統(tǒng)

易點(diǎn)互聯(lián)總經(jīng)理 黎波于2023年04月01日,在轎子山監(jiān)獄對(duì)相關(guān)領(lǐng)導(dǎo)和干警進(jìn)行生產(chǎn)管理系統(tǒng)和工具管理系統(tǒng)進(jìn)行培訓(xùn)工作;

生產(chǎn)管理系統(tǒng)是企業(yè)針對(duì)生產(chǎn)過程中的各個(gè)環(huán)節(jié),包括原材料入庫(kù)發(fā)放、生產(chǎn)計(jì)劃、物料管理、生產(chǎn)流程控制、成品入庫(kù)等環(huán)節(jié)進(jìn)行全方位管理。通過生產(chǎn)管理系統(tǒng)的運(yùn)用,可以幫助企業(yè)實(shí)現(xiàn)生產(chǎn)過程中全面規(guī)劃、精準(zhǔn)控制、高效執(zhí)行和及時(shí)反饋,提升生產(chǎn)效率、降低生產(chǎn)成本。相應(yīng)的培訓(xùn)主要包括以下內(nèi)容:

  1. 生產(chǎn)管理系統(tǒng)的基礎(chǔ)理論:了解生產(chǎn)管理系統(tǒng)的基本概念、工作原理、功能特點(diǎn)等,為后續(xù)學(xué)習(xí)奠定基礎(chǔ)。
  2. 系統(tǒng)基本配置:學(xué)習(xí)如何對(duì)生產(chǎn)管理系統(tǒng)進(jìn)行基本配置,包括企業(yè)信息設(shè)置、系統(tǒng)參數(shù)配置、用戶權(quán)限管理等,使系統(tǒng)適應(yīng)企業(yè)實(shí)際情況。
  3. 物料管理:熟悉物料管理的基本概念和主要功能,包括物料入庫(kù)、出庫(kù)、盤點(diǎn)等操作,確保物料管理精細(xì)化、有效性。
  4. 成品入庫(kù)管理:熟悉成品入庫(kù)管理的流程、方法,掌握成品入庫(kù)發(fā)貨的操作,提高生產(chǎn)出庫(kù)效率和質(zhì)量。
  5. 系統(tǒng)數(shù)據(jù)分析:通過學(xué)習(xí)系統(tǒng)的數(shù)據(jù)分析功能,掌握如何對(duì)生產(chǎn)管理系統(tǒng)的數(shù)據(jù)進(jìn)行分析、處理和利用,為企業(yè)決策提供有力數(shù)據(jù)支持。

工具管理系統(tǒng)培訓(xùn)旨在讓干警一線人員了解和掌握使用生產(chǎn)工具管理系統(tǒng)的操作方法和流程,提高工作效率和準(zhǔn)確性。以下是培訓(xùn)內(nèi)容的詳細(xì)介紹:

  1. 生產(chǎn)工具管理系統(tǒng)的應(yīng)用場(chǎng)景和優(yōu)勢(shì)。
  2. 生產(chǎn)工具的查詢和編輯;
  3. 生產(chǎn)工具入庫(kù)和出庫(kù)操作;
  4. 生產(chǎn)工具分配、領(lǐng)用和歸還功能;
  5. 系統(tǒng)管理員的權(quán)限和職責(zé);
  6. 賬號(hào)注冊(cè)和管理;
  7. 權(quán)限設(shè)置和調(diào)整;
  8. 數(shù)據(jù)備份和恢復(fù);
  9. 系統(tǒng)日志管理。
  10. 生產(chǎn)工具管理系統(tǒng)數(shù)據(jù)處理和分析

培訓(xùn)結(jié)束后,參訓(xùn)人員將能夠熟練掌握生產(chǎn)工具管理系統(tǒng)的使用方法,提高生產(chǎn)工作效率和準(zhǔn)確性。

macOS monterey 升級(jí)后安裝php

macOS monterey已經(jīng)完全移出了php,不再默認(rèn)包含;升級(jí)后需要自行安裝:

可以通過brew install 的方式安裝php,但是通過該方法安裝的php又無(wú)法和默認(rèn)的apache配合使用,會(huì)包簽名錯(cuò)誤: No code signing authority for module at /opt/homebrew/Cellar/php/8.0.12/lib/httpd/modules/libphp.so specified in LoadModule directive.

當(dāng)然可以采取對(duì)so代碼自簽名的方式,但實(shí)際上這不是最好的辦法,因?yàn)閎rew install 安裝的php和mac默認(rèn)自帶的apache之間會(huì)由于各種依賴庫(kù)的問題無(wú)法跑起來(lái)

最好的辦法就是停用默認(rèn)的apache,然后apache和http完完全全都采用brew 來(lái)安裝brew 會(huì)把依賴的各種包自行安裝好

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

注意brew 安裝后的提示,相應(yīng)的環(huán)境變量PATH都按安裝后的提示設(shè)置,最好brew services start 對(duì)應(yīng)的服務(wù)即可