如何在php中打开linux文件?

时间:2017-09-05 07:12:53

标签: php linux file ubuntu replace

我正在尝试为我的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文件的内容,与预期完全一样(它不是空的)

1 个答案:

答案 0 :(得分:0)

运行shell命令可能存在权限问题。

为什么不尝试更简单,更安全和跨平台的 file_get_contents 功能。

http://php.net/manual/en/function.file-get-contents.php

此外,您可以使用 file_exists is_readable 来仔细检查所有内容并帮助调试。