2 回答

TA貢獻1806條經(jīng)驗 獲得超5個贊
錯誤“無法打開輸入文件”表示由于某種原因無法讀取文件。
請按照以下步驟檢查:
將行尾轉(zhuǎn)換為 Unix 樣式
我不知道你如何檢查這個,但你可以嘗試使用dos2unix重做這個,如這個鏈接中所述
dos2unix catcher.php > newcatcher.php
然后比較文件大小。
這可能是因為BOM打破了腳本,描述在這里,shebang行“#!的/ usr / bin中/ PHP的”告訴其中調(diào)用此類腳本時運行需要翻譯系統(tǒng)。
如果腳本以 UTF-8 編碼,人們可能會想在開頭包含一個 BOM。但實際上是“#!” 字符不僅僅是字符。它們實際上是一個神奇的數(shù)字,恰好由兩個 ASCII 字符組成。如果你在這些字符之前放一些東西(比如 BOM),那么文件看起來就像有一個不同的幻數(shù),這可能會導致問題。
該腳本將在 cli 上運行,因為您明確告訴它使用哪個解釋器:php或php7.3:
php /root/fw/catcher.php
php7.3 /root/fw/catcher.php
要從文件開頭刪除BOM,請嘗試以下操作:
dos2unix catcher.php
嘗試運行/root/fw/catcher.php,作為不使用 php 或 php7.3 可執(zhí)行文件的 shell 腳本。從終端運行:
./root/fw/catcher.php

TA貢獻1886條經(jīng)驗 獲得超2個贊
您是否檢查過 SELinux 是否已啟用并強制執(zhí)行?你可以用getenforce
命令看到這一點。
如果返回Enforcing
,您可以通過幾種方式解決此問題。您可以使用 禁用 SELinux 強制setenforce Permissive
,或創(chuàng)建允許 Apache 運行 sendmail 的策略。
要創(chuàng)建這樣的策略,最簡單的方法是使用該audit2allow
工具,它是policycoreutils-python
- 如果audit2allow
不可用,請安裝該工具。然后,檢查/var/log/audit.log
是否有關(guān)于sendmail 無法運行的錯誤。這些錯誤行可以通過管道傳輸?shù)?code>audit2allow創(chuàng)建一個可以使用semodule -i <module.pp>
.
- 2 回答
- 0 關(guān)注
- 136 瀏覽
添加回答
舉報