我正在尝试为我的PHP项目创建一个安装程序。我需要将以下块添加到<VirtualHost *:80>
中。以下是我的安装程序脚本的一部分:
<?php
$path = "/var/www/html/myProject";
$default_conf = shell_exec('cat /etc/apache2/sites-available/000-default.conf');
$new_directory = "<Directory $path/public>
Allow Override all
Require all granted
</Directory>";
$res = str_replace("</VirtualHost>","$new_directory</VirtualHost>", $default_conf);
file_put_contents("/etc/apache2/sites-available/000-default.conf",$res);
但是$default_conf
是空的。为什么?我该如何解决?
注意到命令行环境中此命令的结果
cat /etc/apache2/sites-available/000-default.conf
是000-default.conf
文件的内容,与预期完全一样(它不是空的)。
答案 0 :(得分:0)
运行shell命令可能存在权限问题。
为什么不尝试更简单,更安全和跨平台的 file_get_contents 功能。
http://php.net/manual/en/function.file-get-contents.php
此外,您可以使用 file_exists 和 is_readable 来仔细检查所有内容并帮助调试。