Титла: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 06, 2009, 18:41 Опитвам се да инсталирам PHP 5.2.8 във Fedora Core 5. Компилирам го със следните опции:
Цитат export CFLAGS="-march=pentium4 -O3 -pipe -msse2 -mfpmath=387 -mmmx -fomit-frame-pointer -prefer-non-pic" В резултат MOD_PHP работи нормално с Apache 2.2.2, но PHP-CLI версията дава "Segmentation Fault". Пробвах с различни комбинации на опциите - но успях да получа работещо PHP-CLI единствено при "./configure" без никакви аргументи. Имам още 3 Федори (4, 5 и 6) - при тях няма такъв проблем. Нямам опит с дебъгването под Линукс - някой може ли да помогне да открия проблема ? Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: zeridon в Jan 07, 2009, 11:36 Аз лично смятам че не е необходимо да си компилираш PHP при положение че имаш пакетен мениджър но явно си имаш причини.
Относно компилацията препоръчвам да махнеш следните флагове: -msse2 -mfpmath=387 -mmmx -prefer-non-pic Така или иначе повечето от тях ще си дойдата от архитектурата която си задал и определено ще са по добре. специално последният може да ти създава проблеми Ако искаш да дебъгваш добро начало е strace но за да работи като хората ще трябва да компилираш с -O0 и да махнеш последните два флага от ./configure инвокацията Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 07, 2009, 13:27 Пробвах и без "export CGLAGS" - получава се по-голям ELF файл, обаче и той също дава Segmentation Fault. Ще пробвам с strace какво ще излезе.
Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: J0r0 в Jan 08, 2009, 11:44 Мисля че проблема е в PHP. Имаше някакъв бъг свързан с Exception класа или по-точно с неговото наследяване.
При мен го има същия проблем като полвам мои exceptions. Ако си напиша hello world скрипт няма segmentation fault. ПС . А скрипта изпълнява ли ти се нормално ?При мен скрипта се изпълнява успешно но завършва с segmentation. Ако не се излълнява скрипта горното не е вярно :) Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 08, 2009, 11:56 Аз изобщо не изпълнявам скрипт - просто пускам PHP от командния ред без никакви опции, или пък с опция -v - мисля, че не е заради Exception, а може би някаква неразбория с библиотеки. Жалкото е, че в WINDOWS поне научаваш кой DLL и на какъв адрес е възникнал AV, а тук - пълно мълчание ...
Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: laskov в Jan 08, 2009, 12:15 Предполагам, че ти липсва някакъв пакет, който не е нужен при конфигуриране с ./configure без допълнителни опции, но е нужен за някоя от опциите, които задаваш. Предполагам, че конфиг скрипта или компилатора е казал за някаква нефатална грешка, на която ти не си обърнал внимание. Ако е така, виж каква е грешката, инсталирай необходимия пакет и компилирай наново.
Ако пък не откриеш съобщение за грешка, ще трябва да гадаеш. Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 08, 2009, 15:16 Пробвах да пусна PHP през STRACE - тръгна без проблем, не даде Segmentation Fault и изпълни "phpinfo();" която въведох на командния ред. Мога да покажа и съобщенията на "configure" и на "make" - но са голям обем
Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: zeridon в Jan 08, 2009, 15:48 запази ги във файловете и ги прикачи (форума поддържа тази функционалност) от допълнителните опции за поста
Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 08, 2009, 16:22 output.log - това са съобщенията на екрана от
Цитат ./configure --with-apxs2=/usr/local/apache2/bin/apxs \config.log - лог-файла на "configure" make.log - съобщенията на екрана от "make" test.log - съобщенията от "make test" Титла: Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи Публикувано от: tmcdos в Jan 10, 2009, 21:02 Не успях да открия проблема, но ето с тези опции няма Segmentation Fault:
Цитат ./configure --without-apxs2 --without-apache --enable-sigchild \ |