1

我正在尝试通过 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 ##.

请帮助更正代码或任何其他问题。

使用 php 在浏览器中执行 perl 和可视化文本文件的更好方法。

4

1 回答 1

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
于 2014-09-22T12:28:38.560 回答