Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: reload virtual hosts средствани php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
OmanDebian
Отправлено: 30 Мая, 2015 - 21:44:21
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Всем привет! Есть задача написать некую штуковину которая будет заставлять перечитывать апач свои виртуальные хосты, данная вещь должна вызываться из php в виде класса, ну например $this->блабла->блабла('reload'); что там дальше будет уже второстепенно, будет ли его релоадить баш, сишный скрипт и т.д.
Апач весит на xampp, перечитывает виртуальные хосты в терминале вот такой командой /opt/lampp/lampp reload, ну и общем упираюсь я в права, не дает мне мне слать это обычной exec функцией. Много что перепробовал многое, и копался в исходниках как webmin, ну в общем не хватает мне мозга это сделать. Не прошу помощи за бесплатно, пишите цену. Также нужен будет мануал по установки или настройки вашего скрипта.
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Мая, 2015 - 23:45:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Повесить на рутовый крон задачу, которая будет каждую минуту (это самый короткий интервал крона) запускать некий скрипт (можно даже пыхоскрипт) который будет смотреть "где-то там" пул задач, которые уже успели понадобавлять нажатием кнопок своими шаловливыми ручонками пользаки сайта.
 
 Top
LIME
Отправлено: 31 Мая, 2015 - 00:16:16
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Можно проще если подойдет
http://www[dot]softtime[dot]ru/info/apac[dot][dot][dot]p?id_article=103
 
 Top
OmanDebian
Отправлено: 31 Мая, 2015 - 00:30:40
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




LIME пишет:
Можно проще если подойдет
http://www.softtime.ru/info/apache.php?id_article=103


В моем случае не подойдет, есть 2 домена обращающихся в одну директорию), по данной системе будет 2-е разные директории соответствующие доменам. Крон тоже не вариант, минута долго, а секунда) много, нужно что бы хоб создал домен, подключил и сразу сходу все пере записалось и пере читалось), как на хостах, но опыта мне не хватает такие штуки писать, я рассматривал ваши варианты, к сожалению в моей ситуации они не выход.
 
 Top
LIME
Отправлено: 31 Мая, 2015 - 00:39:23
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Чет я не понял
если у тебя все хосты в одну папку смотрят настрой на нее дефолтный хост и все
А если хочешь это делать выборочно просто сделай симлинк на другую папку по нужному пути
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Мая, 2015 - 00:51:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну влепи права човн-чмод прямо на файл хоста чтобы ввв-дата смог его перезаписывать. А перегружать опач через инотифи: http://habrahabr[dot]kz/blog/752[dot]html
 
 Top
OmanDebian
Отправлено: 31 Мая, 2015 - 01:00:38
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




DeepVarvar пишет:
Ну влепи права човн-чмод прямо на файл хоста чтобы ввв-дата смог его перезаписывать. А перегружать опач через инотифи: http://habrahabr.kz/blog/752.html


Оп! А вот это уже интересно! Завтра попробую отпишусь!
 
 Top
OmanDebian
Отправлено: 31 Мая, 2015 - 11:33:36
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Итак друзья я сделал больше чем хотел, объединив 2-е мысли 2-х людей за это им низки поклон. killer8080 с форума phpforum.su и DeepVarvar с форума forum.php.su.
Итак что же я сделал:
Установил утилиту Inotify которая которая может отслеживать изменение в фалах или каталогах.
создал файла update.sh и задал на наго пользователя из под которого работает apache в моем случае это daemon, со следующим содержимым:

#!/bin/sh
while inotifywait -e modify /domain; do
if tail -n1 /domain | grep 1; then
/restart.c
fi
done

Где:
while inotifywait -e modify /domain; запускает некий цикл который мониторит всегда файл domain
if tail -n1 /domain | grep 1; Проверяет наличия появившейся 1 в данном файле
Если появилась единица то /restart.c

Создал файл restart.c с содержимым

int main() {
system("/opt/lampp/lampp reload");
}

скомпилил командой gcc restart.c -o restart

Дал права только для root что прямого доступа другие не получили

Далее запускаем скрип обычным php exec('./update.sh'), все пошел мониторинг файла domain, теперь всегда скрипт update.sh ждет изменения в файле domain.

Далее на другом сервере из под обычного php по ftp правлю файл domain пишу в его 1 и та да! Срабатывает update.sh, и дальше он запускает restart.c.
Все готово! Осталось только привести это в нужный вид, ибо это черновой рабочий вариант. Мы получили возможность даже удаленного reload виртуальных хостов, т.е. управлять перезагрузкой с абсолютно другого сервера.
Сразу хочу сказать что данная штуковина не работает если включен selinux (долго парился по чему же не работает), пока не разобрался как мне разрешить это все в selinux по этому пока что его отключил.
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Мая, 2015 - 12:51:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




OmanDebian пишет:
int main() {
system("/opt/lampp/lampp reload");
}
Защем тебе тут вызов завернутый в сю?
Дергай прямо команду:

#!/bin/sh
while inotifywait -e modify /domain; do
if tail -n1 /domain | grep 1; then
/opt/lampp/lampp reload
fi
done
 
 Top
OmanDebian
Отправлено: 31 Мая, 2015 - 14:08:08
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




DeepVarvar пишет:
OmanDebian пишет:
int main() {
system("/opt/lampp/lampp reload");
}
Защем тебе тут вызов завернутый в сю?
Дергай прямо команду:

#!/bin/sh
while inotifywait -e modify /domain; do
if tail -n1 /domain | grep 1; then
/opt/lampp/lampp reload
fi
done


И так тоже реализовывал но мне показалось что это дыра, т.к. можно запустить reload прям из exec('./update.sh'), а в моем случае на прямую exec('./restart.c') не запускается)))) т.е. ему права нужны, ну типо некая прослойка что бы прямого доступа не было к reload)), хотя хз я не шарю по этому 100% сказать не могу что моя безопасность на самом деле безопасна). А цель всего этого: пишу маленькую панельку типо сипанели в очень урезаной версии для управления хостами и сайтами ибо скопилось очень много и управлять пользователями из ssh неудобно

(Отредактировано автором: 31 Мая, 2015 - 14:12:51)

 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Мая, 2015 - 14:52:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Нет, ты просто добавил еще один слой. А права пользака и права на файл/команду остались те же.
 
 Top
OmanDebian
Отправлено: 31 Мая, 2015 - 16:42:36
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




DeepVarvar пишет:
Нет, ты просто добавил еще один слой. А права пользака и права на файл/команду остались те же.


Окей) тогда упростим
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Apache и другие веб-серверы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB