我正在尝试通过php可视化文件 file.txt 。它与php代码存在于同一文件夹中。这个文件是perl程序的结果 1.pl
我使用以下代码:
exec("perl C:/inetpub/wwwroot/1.pl arg1");
include("ctrlG.txt");
我在我的服务器上激活了fast-cgi模块,否则会正常工作 以上两点都没有执行 它返回以下错误:
PHP Warning:
include() [<a href='function.include'>function.include</a>]: Unable to access ctrlG.txt in C:\inetpub\wwwroot\upload_file.php on line ##.
PHP Warning:
include(ctrlG.txt) [<a href='function.include'>function.include</a>]: failed to open stream: Permission denied in C:\inetpub\wwwroot\upload_file.php on line ##.
PHP Warning:
include() [<a href='function.include'>function.include</a>]: Failed opening 'ctrlG.txt' for inclusion (include_path='.;C:\php\pear') in C:\inetpub\wwwroot\upload_file.php on line ##.
请帮助纠正代码或任何其他问题
OR
使用php在浏览器中执行perl和可视化文本文件的更好方法。
答案 0 :(得分:0)
首先,检查您要查找的文件是否存在:
$file = 'ctrlG.txt';
if(!file_exists($file)) die("File '{$file}' does not exist");
其次,检查它是否可读:
if(!is_readable($file)) die("File '{$file}' is not readable");
最可能的情况是该文件存在且没有设置可读权限,因此apache(或您的Web服务器正在运行的任何用户)都可以读取它。
请记住,如果您首先通过CLI(命令行界面)运行此脚本,则生成的文件可能由运行该脚本的用户拥有 - 因此出于安全原因,apache可能无法读取此文件
在Linux中,您可以更改文件组和权限,以便apache用户可以读取,如下所示:
chgrp apache ctrlG.txt
chmod g+r ctrlG.txt