0

我正在按照此处编写的指南从 PHP 运行 Bash 命令

我有 /var/www/test.php

<?php $old_path = getcwd();
chdir('/home/');
$output = shell_exec('./test.sh');
echo "<pre>$output</pre>";
chdir($old_path); ?>

并使用 sudo nano /home/test.sh 定位

#/bin/bash
mystring="Hello World"
echo "$mystring"

但在本地运行http://localhost/test.php我得到一个空白页。我可以从终端运行文件,并且可以成功运行 shell_exec('ls') 作为 php 脚本,谁能看到我做错了什么?

4

1 回答 1

0

好的问题在没有设置一些拼写错误和权限后得到解决,但主要问题似乎是 getcwd() 不能在我的操作系统本地或服务器上运行...... Ubuntu 12.04

因此,对于其他遇到问题的人,请务必:

  • 检查文件是否可以通过终端执行,如果没有运行chmod +x /file/location/test.sh
  • 接下来检查您所在的目录并使用echo shell_exec('pwd')
  • 如果您不移动目录,请尝试将其替换getcwd()dirname(__FILE__);

这为我解决了问题:) 现在将变量从 php 页面传递到该脚本!非常感谢大家的帮助。

`

于 2013-07-26T20:30:15.240 回答