【发布时间】:2011-12-02 09:31:42
【问题描述】:
我正在尝试在我的服务器上运行这段 php 代码:
<?php
$cmd = 'echo "this is a test" > /home/ubuntu/scripts/test_file';
echo exec($cmd);
?>
据我了解,它应该将这段文本添加到文件 test_file 中。该文件存在于适当的位置,我在 php 文件上尝试了 chmod 755 和 chmod 777。但我没有看到将文本添加到 text_file 。我尝试直接在服务器上运行 linux 命令,它可以工作。有人可以告诉我我做错了什么吗?
另外,我正在尝试通过 php 脚本在服务器上创建一个虚拟主机文件。我认为与其通过 php exec() 运行命令,不如运行一个 shell 脚本,让 shell 脚本从文本文件中读取所需的参数并在虚拟主机文件中设置目录路径。我是 linux 新手,这是一个好方法还是有更好的方法来解决这个问题?所有这些都是为了以编程方式设置一个基于 magento 的站点。谢谢。
【问题讨论】:
-
对
exec的调用是否产生任何错误/警告? -
这是不可取的,虚拟主机文件应该有访问限制,它不应该通过apache用户修改。
-
@JanHančič 不,我没有收到任何错误。
-
@ajreal 你建议我如何实施这个解决方案?
-
@Nithin 你的目标是什么?应用于虚拟主机配置的更改只会在 apache 上重新启动后生效。虽然在 apache (php) 上运行的脚本不应该对 apache 服务有更高的控制权。