解決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 對應的服務即可