2

我试图让 PHP 在我的 apache Web 服务器上运行 Perl 脚本,但不确定从哪里开始。我在这里和其他网站上环顾四周,这就是我想出的。这是我的 index.php 文件:

<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
if (isset($_POST['button']))
{
  exec('/usr/bin/perl /home/gpham/scripts/test.pl');
}
?>

<html>
<body>
  <form method="post">
    <button name="button">Run Perl</button>
  </form>
</body>
</html> 

这是我的 Perl 文件 test.pl

#!/usr/bin/perl

my $cmd = "mkdir /home/gpham/testfolder";
system($cmd);

所以基本上,我想要的是当用户单击“运行 Perl”按钮时,它将在 Web 服务器上创建该新文件夹。但它不起作用。当我单击按钮时,什么也没有发生。谁能指出我做错了什么?提前谢谢各位。

4

1 回答 1

2

你在这里走的是一条令人印象深刻的迂回道路。您正在使用 PHP 调用 Perl 来运行 shell 命令;您也可以mkdir直接使用PHPshell_exec从 PHP 调用命令,或者完全跳过 shell 命令并直接调用Perlmkdir()PHPmkdir()

但除此之外,这里最可能的问题是 Web 服务器没有写入父目录 ( /home/gpham) 的权限。由于这是您的主目录,因此这种情况是正确的。从 PHP 外部创建目录并适当地设置其权限,或为其选择其他位置。

于 2013-07-15T23:29:07.320 回答