0

我在 linux NAS 上有一个网页,运行着 webserver 和 php。我想从服务器启动一个脚本,将数据写入数据库。

当我在 new69.php (有问题的网站)上时,我有例如:

$uptime = exec('uptime');echo $uptime; (这有效)

所以我有联系。

然后我使用 if 语句:

if (isset($_POST['verzenden'])) {
 $output1 = exec('whoami');
 exec('/share/MD0_DATA/Qweb/sqlite/AllesNaardDB.sh');
 } else {

    echo "Nog lekker niets gedaan.";

Whoami在 is statememt 中给出了用户名“httpdusr”,所以 if 语句被到达并起作用。

现在当我执行 exec 语句时:

它必须执行 AllesNaardDB.sh,其中包含:

cd /share/MD0_DATA/Qweb/sqlite
echo "Wasmachine"
python2.6 wasm_util_sql.py [param]
echo "alles gegeven"
exit 0

没有显示或完成。

但是当我这样做时:

$output = exec('/share/MD0_DATA/Qweb/AllesNaardDB.sh');
echo "<pre> $output </pre>";

我在变量 $output, "alles gegeven"中得到脚本的 als 行 。

起初我认为这可能与权利有关。所以我(切换用户)su到“httpdusr”并且腻子中的脚本执行得很好。

我还用“ls -l”制作了另一个脚本 ff.sh 来执行,一切正常。我也使用 passthru()、system()、shell_exec。唯一的改进是使用 system() 和 passthru(),“echo”Wasmachine“”出现在网站上。

我不明白为什么 python 作业没有开始?

我工作得更进一步,但是否有一些 sqlite3 命令是用户依赖的?

像这样我可以以管理员身份对数据库执行一些写操作,但不能以 httpdusr 身份执行?

4

2 回答 2

0

尝试添加#!/bin/sh到脚本的顶部并确保它是chmod a+x.

于 2012-08-22T20:01:05.037 回答
0

这是一个在 python 脚本中带有路径的问题,它正在写入数据库。它从网页启动时使用不同的路径(MD0_DATA/Qweb/),然后从 shell 脚本启动(MD0_DATA/Qweb/sqlite)

*我还没有解决问题,但理解它。每个人都感谢您的努力。

于 2012-08-26T18:51:28.650 回答