php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 09:29 |
Хех, вот таким вот кодом делаю php - многопоточным :)
Код: | system("/usr/local/bin/php ".$AbsPath."thread.php > ".$AbsPath."logs/log".$i.".html &"); |
Суть переменных - не важна, по смыслу - ясно..
При этом все потоки запускаются от имени Апача, что создает некие трудности под панелью DirectAdmin (не суть важно какие), реально ли сделать так, чтоб потоки запускались от имени какого-то конкретного юзверя?
P.S. Единственное, что на уме - su, но фик знает как его сюда вставить (:
P.P.S. Все на дедике - могу править любые конф. файлы.
P.P.P.S. Всем по делу - рейтинг по макс. (Не большой, правда, у меня макс. :)
P.P.P.P.S. Разговор поддержу ближе к вечеру. :)
Всем хорошего дня!
|
|
|
|
С нами с 14.11.05
Сообщения: 56
Рейтинг: 177
|
Добавлено: 16/01/07 в 10:19 |
Используй sudo (man sudo, man sudoers).
|
|
|
|
С нами с 29.12.06
Сообщения: 62
Рейтинг: 84
|
Добавлено: 16/01/07 в 12:33 |
Кхм, господа, добавлять apache в sudoers это тоже самоее что отдать рутовый пароль каждому посетителю - безопасности 0!
Если нужно запускать скрипт от имяни пользователя - пересобери apache с suexec. Там есть некоторые траблы именно с пхп но все решаемо - литературы много в сети.
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 16/01/07 в 14:06 |
Автор чтобы сделать скрипт многопоточным покури pcntl в мануле php.
+1 Petroff все верно сказал.
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 15:33 |
lalex, щас гляну что это за sudo.. Но видимо вариант не самый хороший.
Apache собран с suexec... хм... Щас одну вещь попробую.. Как-то не подумал об энтом...
pcntl - не катит, DA падает :))))
да и переписывать скрипты оч. уж не хочется..
И так все работает, дело лишь в том, что панель убивает процессы от апача в 00:00 и еще в некоторые времена, что не удобно...
Можно конечно через nohup покрутить, но хотелось бы элегантнее найти вариянт...
Всем досрочно спасибо! +3..
Скоро вернусь (:
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 15:33 |
О-о-о-о. Я +4 могу ставить! ;)))))
Всем +4. (; Первому +3 ;)))
|
|
|
|
no sign
С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403
|
Добавлено: 16/01/07 в 15:41 |
Код: | $cmd = 'thread.sh ' . $start . ' ' . $cnt . ' ' . $i;
`echo "$cmd" | at now`;
print 'started ' . $cmd . "\n"; |
можете так попробовать еще
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 15:43 |
arachnO писал: | Код: | $cmd = 'thread.sh ' . $start . ' ' . $cnt . ' ' . $i;
`echo "$cmd" | at now`;
print 'started ' . $cmd . "\n"; |
можете так попробовать еще :) |
Тоже вариант. Сейчас suexec покручу и над этим подумаю.. А в шелл-скрипте идет запуск php... Дя, должен не от апача запустится...
|
|
|
|
С нами с 03.07.05
Сообщения: 474
Рейтинг: 231
|
Добавлено: 16/01/07 в 16:36 |
Как уже говорили - для многопоточности лучше использовать библиотеку pcntl.
Кстати, а в чем именно проблемы apache и direct admin'a? Уже более 2х лет использую - никаких траблов не замечено. Или попробуй тогда nginx + php, если все так плохо.
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 16:47 |
Все отлично, просто хочется сделать чутку удобнее.. Все работает и без pcntl. Просто надо от другого имени пустить.
У Apache и DA нет проблем. Есть проблемы у PHP собранного с --with-pcntl и DA...
|
|
|
|
no sign
С нами с 25.07.03
Сообщения: 3623
Рейтинг: 1403
|
Добавлено: 16/01/07 в 16:48 |
netzoner писал: | Как уже говорили - для многопоточности лучше использовать библиотеку pcntl. |
только если под Линуксом
под фряхой юзать не советую
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 16/01/07 в 16:54 |
Dantist писал: | У Apache и DA нет проблем. Есть проблемы у PHP собранного с --with-pcntl и DA... |
хм... под FC5+DA таких проблем не замечал, связка работает стабильно...
правда рнр до 5 версии обновить пришлось, для мульти курла
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 16/01/07 в 17:02 |
arachnO писал: | только если под Линуксом
под фряхой юзать не советую |
в обоих случаях работает нормально.
|
|
|
|
php наше всё :)
С нами с 26.07.04
Сообщения: 814
Рейтинг: 447
|
Добавлено: 16/01/07 в 17:39 |
И все же вернемся к теме... :)
suexec не помог.. Может я его не "умею готовить". Petroff, разверни свой ответ в этом плане, плиз.. Спасибо.
Попробую из шелл-скрипта пустить.
По поводу pcntl, curl_multi_*** - это все так, на будущее. :) pcntl - это вообще все с нуля почти, а мульти-курл - это такая-себе многопоточность... Хотя именно такая и нужна, но все-равно - "Переписывать скрипты очень не хочется"... )
Похоже, что остается шелл-скрипт и nohup... nohup - это жестоко... Если панель убивает все с username apache за исключением httpd - "значит - это кому-нибудь нужно?"... (; (С) "Маяковский".
Понятно, конечно, что нужно... Так-что nohup - жестоко... Блин. :(
|
|
|
|
С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362
|
Добавлено: 16/01/07 в 17:46 |
Сделай все нормально, а не через ж.... и проблем у тебя не будет.
1) Пригласи админа чтобы он тебе все нормально поставил, стукни к Petroff например, грамотный админ , думаю не откажет тебе в помощи.
2) Напиши нормально скрипт , за то время пока ты тут пишешь их уже пять можно было написать.
Удачи!
|
|
|
|
С нами с 29.12.06
Сообщения: 62
Рейтинг: 84
|
Добавлено: 16/01/07 в 18:21 |
Dantist писал: | И все же вернемся к теме...
suexec не помог.. Может я его не "умею готовить". Petroff, разверни свой ответ в этом плане, плиз.. Спасибо.
|
Читани тут, нашел в гуглях, читанул вроде правильно все рассказано:
http://www.oszone.net/2825/
(ну естественно пути все свои указыывай типа
--suexec-docroot=/usr/local/apache/htdocs \
--suexec-userdir=/usr/local/apache/htdocs \
)
|
|
|
|
С нами с 29.12.06
Сообщения: 62
Рейтинг: 84
|
Добавлено: 16/01/07 в 18:30 |
Dantist писал: | Тоже вариант. Сейчас suexec покручу и над этим подумаю.. А в шелл-скрипте идет запуск php... Дя, должен не от апача запустится... |
Хмм, так все равно от апача запустится, потому что шел скрипт запускается в пхп от апача, тоесть как не крути а UID неменяется, сколько раз скрипт не запускай ).
Если развивать тему, то можно уж в пхп писать в базу, мол это надо выполнить, а там уж по крону юзера выполнять..
Но так извращяться это уже перебор ))))
|
|
|
|