我正在尝试为我的 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
完全符合预期的文件内容(不为空)。
您可能在运行 shell 命令时遇到了权限问题。
为什么不试试更简单、更安全和跨平台的函数file_get_contents。
http://php.net/manual/en/function.file-get-contents.php
此外,您可以使用file_exists和is_readable来仔细检查所有内容并帮助调试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句