我正在尝试让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服务器上创建该新文件夹。但它没有用。当我点击按钮时,没有任何反应。任何人都可以找出我做错了什么吗?先谢谢你们。
答案 0 :(得分:2)
你在这里走了一条令人印象深刻的迂回路径。您正在使用PHP调用Perl来运行shell命令;您也可以使用PHP shell_exec
直接从PHP调用mkdir
命令,或者完全跳过shell命令并直接调用Perl mkdir()
或PHP mkdir()
。
但除此之外,这里最可能的问题是Web服务器没有写入父目录(/home/gpham
)的权限。由于这是您的主目录,因此这种情况是正确的。从PHP外部创建目录并适当地设置其权限,或为其选择其他位置。