shell_exec sed -i写文件

时间:2013-05-29 15:54:31

标签: php linux apache

我有一个非常简单的脚本run.php

<?php
shell_exec('/var/www/html/insert.sh');
?>

insert.sh

#!/bin/bash
sed -i '/blah/ r file1.txt' config.xml

我在apache日志中遇到以下错误:

sed: couldn't open temporary file ./sedV5qH6N: Permission denied
sed: couldn't open temporary file ./sedBS3zO6: Permission denied
sed: couldn't open temporary file ./sedR4Nw3O: Permission denied

即使我与apache所有者完全同意了。我该如何纠正错误?

1 个答案:

答案 0 :(得分:2)

为了能够在适当的位置编辑文件,sed需要有权在与文件相同的目录中创建临时文件。显然,您的脚本无权在给定目录中写入。