Задача примерно такая:
У меня есть файл apache2.conf и я пытаюсь добавить в vitualhost сайта определенную строку, не удаляя другие.
Сейчас разбираюсь с perl, нашел пример с заменой, но он полностью стирает всё что найдено между ServerName и </VirtualHost> , а мне нужно хотя бы дописать, или в идеале:
Найти в apache2.conf нужный virtualhost: ServerName $domain и </VirtualHost> , удалить строку начинающуюся с «ScriptAlias /php-bin/» и добавить свою строку «ScriptAlias /php-bin/ /нужный_путь/»
Нашел скриптик на гитхабе, но он удаляет всё что было в virtualhost, а потом добавляет то что нужно. Хотелось бы что бы не удалял.
Сам скрипт:
my $apacheconf = '/etc/apache2/apache2.conf';
open(my $fh, '<:encoding(UTF-8)', $apacheconf);
my $newtext = "\n\tScriptAlias /php-bin/ /var/www/"."$user"."\n";
my $find = "/var/www/$user/data/www/$domain";
my $str = "";
while (my $rowa = <$fh>) {
chomp $rowa;
$str .= "$rowa\n";
}
close $fh;
my $string = $str;
$string =~ s/(ServerName $domain).*?(\<\/VirtualHost\>)/$1$newtext$2/gis;
То есть задача у меня такая:
Найти определенный virtualhost, удалить из него строку начинающуюся с ScriptAlias и добавить строчку из $newtext
Подскажите пожалуйста как хотя бы добавить строчку, я только учусь думаю что мне проще будет как-то отдельно от этой конструкции удалять строку, к примеру так:
Здравствуйте, подскажите пожалуйста как загрузиться с нового ядра..
Обновил Debian 6 до 8-й версии, но после перезагрузки ядро 2.6.32 запускается.
Ядро 3.16.0-4 стоит выше в grub.cfg, но что конкретно на экране загрузчика нет возможности увидеть, сервер в Hetzner.
В /etc/default/grub: GRUB_DEFAULT=0
Generating grub configuration file ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-3.16.0-4-amd64
Found initrd image: /boot/initrd.img-3.16.0-4-amd64
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
done