LINUX.ORG.RU

Ещё один камень в огород php


0

0

Намедни я поднимал машинку со стандартным LAMP. Собрал мускль(5.0.37, собрал апач(2.2.4), собрал пхп(5.2.1 с соответствующим сухозином). Апач, запустившись, плюнул индексной страницей "It works!". Пхп, после подсовывания файла phpinfo, phpinfo же и выплюнул, т.е. всё хорошо. Человеку понадобился там phpmyadmin, замечательно, поставил, как обычно закрыл его .htaccess'ом - всё работает. Поставили phpadsnew(для тех, кто не знает, это крутилка банеров на php), захожу туда, а мне - пустую страничку. Я привычно в логи(ну, думаю, там наверное надо взвести register_long_arrays или ещё что) а там мне - "[notice] child pid ххххх exit signal Segmentation fault (11)". Я немного поматерился, всё ещё раз проверил - тоже самое. Вынес апач+пхп. Пересобрал их пакеты заново, внимательнейшим образом изучил вывод на консоль - всё в порядке, ошибок и подозрительных сообщений нет. Запускаю - опять сегфолт. Тихо начинаю звереть, выношу апач+пхп, собираю 1.3.37+4.4.6, опять же внимательно слежу за выхлопом на консоль через tee. Всё собирается как обычно нормально, а мне опять сегфолт. Озверел окончательно, вынес самосбор, поставил оригинальные дистрибутивные пакеты - сегфолт. Спасибо Тику - надоумил смотреть в core, gdb в зубы - смотрю(опять же - апач почему-то core не создал, хотя всё, что надо включено было, развлекался с CLI php). После недолгого втыкания с man и в выхлоп понял, что проблема где-то на стыке php-mysql. Пересобирал различные версии, собирал по минимуму - всё равно сегфолт. Опустил руки. Через некоторое время позвонил коллега по серверу - починил, говорит. я в недоумении выспрашиваю как - оказывается, в phpadsnew в конфиге была ошибка в названии mysql базы.

И из-за этого... ФАНФАРЫ!!!... обычнейший скрипт выкидывал в segfault и CLI php и mod_php!!!

Моё и так невысокое мнение о пхп после этого случая упало в неподнимаемые ничем низы.

Deleted

это не камень...это надгробие :)

geek ★★★
()

З.Ы. Никто не знает, как во втором апаче отключить апачевское оформление в логи вывода на STDERR из CGI?

Т.е. в apache-1.x как выводишь в STDERR, так в логи и пишется, а в 2.x - стандартное обрамление - дата/время, [error], client IP, STDERR и referer?

Deleted
()

а зачем всё собирать из сорцев? чем дистрибутивные апачи и мускулы плохи?

Pi ★★★★★
()

Вообще-то, это камень в огород phpadsnew и того, кто его писал. Ну, и php 4 версии с старомодным mysql расширением заодно :-)

HappyCoder
()
Ответ на: комментарий от HappyCoder

> Вообще-то, это камень в огород phpadsnew и того, кто его писал.

С чего это? Почему не в адрес разработчиков php?

> Ну, и php 4 версии с старомодным mysql расширением заодно :-)

См внимательно. Я собирал разные версии php.

Deleted
()

Была аналогичная проблема. На gentoo. emerge -e system && emerge -e system && emerge -e world && emerge -e world и проблемы больше нет :)

catap ★★★★★
()
Ответ на: комментарий от catap

Если быть совсем точным, то php иногда проглючивает на тему glibc ;)

catap ★★★★★
()
Ответ на: комментарий от zzandy

а апач или пхп случаем не threads собраны?

anonymous
()
Ответ на: комментарий от zzandy

> ИМХО слишком последние версии всего. Это плохо. Откатись на более обкатанные версии и все будет пучком.

Откатывался. На 1.3.34 и 4.4.2

> апач или пхп случаем не threads собраны?

По разному собирал.

Deleted
()

>И из-за этого... ФАНФАРЫ!!!... обычнейший скрипт выкидывал в segfault и CLI php и mod_php!!!

У меня, вот, два дня назад Конк завесил Linux. Завесил так, что по ssh было не достучаться. При чём после рестарта по reset машина больше не поднялась, ибо XFS... ФАНФАРЫ! Обычная прикладуха роняет насмерть целую ОС, считающуюся стабильной!

...

По факту же - кручу php4+php5+apache2+lighttpd уже почти пять лет. Одних только MySQL-запросов эта связка отрабатывает, в среднем за сутки, по 800 в секунду. Общая нагрузка (включая статику) - более 800 тыс. запросов в сутки.

За всё это время PHP не падал, тьфу-тьфу-тьфу, ни разу :D

Что я не так делаю?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> У меня, вот, два дня назад Конк завесил Linux.

А что есть "Конк"? Если это конкверрор, то ты, конечно, сравнил заднюю часть с пальцем... Обычнейший скрипт + интерпретатор с DE.

> По факту же - кручу php4+php5+apache2+lighttpd уже почти пять лет.

Я - 10, без lighthttpd. Расчехляй, померяемся :)

P.S. Да, советую изучить man bash на предмет ulimit+документацию PAM.

Deleted
()
Ответ на: комментарий от Deleted

>Обычнейший скрипт + интерпретатор с DE.

То есть, я не прав, возмущаясь тем, что "Обычнейший скрипт + интерпретатор с DE" способен уронить операционную систему?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

С одной стороны - "Обычнейший скрипт + интерпретатор" - с другой - DE

Deleted
()
Ответ на: комментарий от Teak

> Ты это зря с ним так, по косвенным данным он пограмотнее нас с тобой двоих, вместе взятых. :)

Да мы с ним постоянно бодаемся :) Он - любитель opera и php, я - их нелюбитель, вот и трения :)

Deleted
()
Ответ на: комментарий от Deleted

Кстати, про Оперу ты прав, про PHP - нет :) Я не любитель этого языка, я программист на нём :D А люблю я языки, которые, как раз, не использую. Forth, Haskell, Python :D

Но программист, ИМХО, должен язык подбирать не любимый (и уж подавно не единственный ему известный :D), а подходящий под поставленную задачу :) Если задаче будет соответствовать, то я возьмусь программировать хоть на Паскале, как бы я его ни ненавидел :D

KRoN73 ★★★★★
()
Ответ на: комментарий от Deleted

>Ты смотришь на это со стороны программиста. Я - со стороны админа.

С точки зрения админа мне всё равно. Юзеровские php клиентов у меня под их юзерами крутятся. А у них самих итак ssh есть :) Так что, какой смысл им самих себя ломать?

...

А так, если PHP на всех сайтах вынесут в пользу того же Питона, я только рад буду. И быстро свои проекты на Питон переведу :D (Кстати, нынешняя CMS первоначально "работала" офлайново на Qbasic :D, потом на SP-Forth, потом вылезла в онлайн на Perl, развилась как следует на PHP и в будущем, чую, быть ей на Java или Python :D )

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Когда у тебя одного из твоих клиентов поимеют через дырку в его старой джумле и устроят из одного из твоих серверов флуд-машину - не будешь спрашивать "какой им смысл самих себя ломать" :))

Deleted
()
Ответ на: комментарий от Deleted

Дык, если он поставит дырявую Жумлу, то его поимеют и без дырок в самом PHP :)

...

Мне в этом плане проще, конечно, число клиентов измеряется не сотнями, а одним десятком и всем сделано внушение на счёт дырявого PHP-софта :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.