Програмная запись строки в settings.php

Главные вкладки

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 22 декабря 2010 в 18:24

При установке модуля domain access как известно требуется добавить в settings.php строчку со ссылкой на его конфиг

У меня этот модуль ставится из установочного профиля. Так как я не могу записать нужную строку в settings.php перед установкой системы (установка не пойдёт вообще), то я решил записывать нужную строку на конечном этапе установки

Соорудил код:

<?php

function write_domain_conf () {
$modules module_list(FALSETRUEFALSENULL);
if (
in_array('domain'$modules)) {
global 
$base_path;
$filename $base_path conf_path() . '/settings.php';
$path $base_path 'sites/all/modules/domain/settings.inc';
$conf "include '$path';";
chmod($filename0777);
if (
is_writable($filename)) {
    
fopen($filename'a+');
    
fwrite($filename$conf);
    
fclose($filename);
  }
 
chmod($filename0444);
 }
}

?>

Это не работает, думаю дело в правах. Директории, в которых находится settings.php имеют права 777, сам settings.php тоже как бы должен иметь 777 (тот же владелец ведь?)

В чём может быть проблема?

Комментарии

Аватар пользователя bsyomov bsyomov 22 декабря 2010 в 21:56

У вас не получится сделать chmod так как пользователь под которым выполняются скрипты не является владельцем этого файла. Точнее это так практически на всех хостингах.
Only the owner of a file or the super-user is permitted to change the mode of a file