2 回答
TA贡献1806条经验 获得超5个赞
错误“无法打开输入文件”表示由于某种原因无法读取文件。
请按照以下步骤检查:
将行尾转换为 Unix 样式
我不知道你如何检查这个,但你可以尝试使用dos2unix重做这个,如这个链接中所述
dos2unix catcher.php > newcatcher.php
然后比较文件大小。
这可能是因为BOM打破了脚本,描述在这里,shebang行“#!的/ usr / bin中/ PHP的”告诉其中调用此类脚本时运行需要翻译系统。
如果脚本以 UTF-8 编码,人们可能会想在开头包含一个 BOM。但实际上是“#!” 字符不仅仅是字符。它们实际上是一个神奇的数字,恰好由两个 ASCII 字符组成。如果你在这些字符之前放一些东西(比如 BOM),那么文件看起来就像有一个不同的幻数,这可能会导致问题。
该脚本将在 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 可执行文件的 shell 脚本。从终端运行:
./root/fw/catcher.php
TA贡献1886条经验 获得超2个赞
您是否检查过 SELinux 是否已启用并强制执行?你可以用getenforce
命令看到这一点。
如果返回Enforcing
,您可以通过几种方式解决此问题。您可以使用 禁用 SELinux 强制setenforce Permissive
,或创建允许 Apache 运行 sendmail 的策略。
要创建这样的策略,最简单的方法是使用该audit2allow
工具,它是policycoreutils-python
- 如果audit2allow
不可用,请安装该工具。然后,检查/var/log/audit.log
是否有关于sendmail 无法运行的错误。这些错误行可以通过管道传输到audit2allow
创建一个可以使用semodule -i <module.pp>
.
- 2 回答
- 0 关注
- 120 浏览
添加回答
举报