PHP exec命令写入服务器

时间:2017-06-04 05:17:49

标签: php linux

所以我有一个bash脚本我想在php中运行有参数但是目前我甚至无法让PHP写入机器。作为基本测试,我尝试了触摸命令没有成功。我是PHP的新手,所以任何帮助都会很棒。我不明白这里有什么不对。 我试过了:

<?php 
shell_exec('touch /var/www/html/test.txt');
?>

<?php 
exec('touch /var/www/html/test.txt');
?>

<?php 
system('touch /var/www/html/test.txt');
?>

<?php 
passthru('touch /var/www/html/test.txt');
?>

1 个答案:

答案 0 :(得分:1)

如果没有更多信息,很难回答这个问题。但是,通常触摸应该创建一个新文件。最常见的原因是缺乏权限。

通常,网络服务器使用用户www-data运行。检查并查看是否未为该用户设置权限。

您只需运行命令

即可
addgroup www-data

如果www-data具有正确的权限,那将会出错。否则,事情可能就会开始起作用。出于安全考虑,请在此之后重启apache。

/etc/init.d/apache2 restart

或者,在系统命令中添加第二个变量。

system('touch /var/www/html/test.txt', $retval);

$ retval将包含错误的状态。将帮助您调试。

你也可以像这样在apache错误日志上运行尾部。

tail -f /var/log/apache2/error.log 

如果出现问题,它应该抛出错误。