我试图在php中运行.sh脚本。
这里是sh代码
php fetchdrive.php
当我通过双击运行.sh脚本时,它工作正常,并显示我返回的变量(数组)。
我正在使用wampserver来运行php。多个php文件正常工作,不幸的是这个只能运行命令行,所以我想为什么不在我的index.php文件中通过sh调用命令。当我在index.php文件中尝试<?php echo exec('sh C:/wamp64/www/run.sh'); ?>
时,它不起作用。我知道这是因为在php文件的底部我尝试执行它有警报(&#34; Hello&#34;);
事实上,当我尝试使用echo exec时,我根本不认为它正在运行命令。所有这一切都是因为我试图运行一个命令&#34; php fetchdrive.php&#34;无需手动输入到终端,因为当我开始运行此服务器时,我不必每次都重新运行该命令。
有什么想法吗?
编辑:这里是警报的脚本标记
<script type="text/javascript"> alert("Hello!"); </script>
它适用于我的其他php文件。
tl; dr我只是想在网站上运行一个php终端命令。
答案 0 :(得分:0)
这就是我所做的,所以如果它不适合你,那么你可能会遇到WAMP或其他问题。我可能错了,但我不认为你是在一个有真正重击的盒子上。
<?php
passthru(__DIR__ . '/lame.sh');
和sh文件(password_hash函数至少需要PHP v5.5):
#!/bin/bash
PASSWORD = 'kookoopapa1'
PHP=`which php`
PASSWORD=`$PHP -r "echo password_hash( '$PASSWORD', PASSWORD_BCRYPT, ['cost' => 11] );"`
printf "<script type=\"text/javascript\"> alert(\"$PASSWORD\"); </script>\n"
试一试。你的bash也不是真正处于/ bin / bash的可能性。在您的终端类型&#34;哪个bash&#34;看看它说的是什么。根据需要修改你的shebang。