Автор Тема: Защо PHP-CLI дава SegFault, а MOD_PHP работи  (Прочетена 2793 пъти)

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Опитвам се да инсталирам PHP 5.2.8 във Fedora Core 5. Компилирам го със следните опции:

Цитат
export CFLAGS="-march=pentium4 -O3 -pipe -msse2 -mfpmath=387 -mmmx -fomit-frame-pointer -prefer-non-pic"
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
   --with-mysql=/usr/local/mysql \
   --with-curl --enable-sockets \
   --without-iconv --with-config-file-path=/usr/local/lib \
   --disable-pdo --disable-reflection --disable-tokenizer \
   --disable-spl --disable-ipv6 --disable-ctype --disable-filter \
   --without-sqlite --without-xmlrpc --without-pear --without-cdb \
   --enable-inline-optimization --disable-debug

В резултат MOD_PHP работи нормално с Apache 2.2.2, но PHP-CLI версията дава "Segmentation Fault". Пробвах с различни комбинации на опциите - но успях да получа работещо PHP-CLI единствено при "./configure" без никакви аргументи.
Имам още 3 Федори (4, 5 и 6) - при тях няма такъв проблем.
Нямам опит с дебъгването под Линукс - някой може ли да помогне да открия проблема ?
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #1 -: Jan 07, 2009, 11:36 »
Аз лично смятам че не е необходимо да си компилираш PHP при положение че имаш пакетен мениджър но явно си имаш причини.

Относно компилацията препоръчвам да махнеш следните флагове:
 -msse2
 -mfpmath=387
 -mmmx
 -prefer-non-pic

Така или иначе повечето от тях ще си дойдата от архитектурата която си задал и определено ще са по добре.

специално последният може да ти създава проблеми

Ако искаш да дебъгваш добро начало е strace но за да работи като хората ще трябва да компилираш с -O0 и да махнеш последните два флага от ./configure инвокацията
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #2 -: Jan 07, 2009, 13:27 »
Пробвах и без "export CGLAGS" - получава се по-голям ELF файл, обаче и той също дава Segmentation Fault. Ще пробвам с strace какво ще излезе.
Активен

J0r0

  • Новаци
  • *
  • Публикации: 2
    • Профил
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #3 -: Jan 08, 2009, 11:44 »
Мисля че проблема е в PHP. Имаше някакъв бъг свързан с Exception класа или по-точно с неговото наследяване.
При мен го има същия проблем като полвам мои exceptions. Ако си напиша hello world скрипт няма segmentation fault.
ПС . А скрипта изпълнява ли ти се нормално ?При мен скрипта се изпълнява успешно но завършва с segmentation. Ако не се излълнява скрипта горното не е вярно :)
« Последна редакция: Jan 08, 2009, 11:45 от J0r0 »
Активен

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #4 -: Jan 08, 2009, 11:56 »
Аз изобщо не изпълнявам скрипт - просто пускам PHP от командния ред без никакви опции, или пък с опция -v - мисля, че не е заради Exception, а може би някаква неразбория с библиотеки. Жалкото е, че в WINDOWS поне научаваш кой DLL и на какъв адрес е възникнал AV, а тук - пълно мълчание ...
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #5 -: Jan 08, 2009, 12:15 »
Предполагам, че ти липсва някакъв пакет, който не е нужен при конфигуриране с ./configure без допълнителни опции, но е нужен за някоя от опциите, които задаваш. Предполагам, че конфиг скрипта или компилатора е казал за някаква нефатална грешка, на която ти не си обърнал внимание. Ако е така, виж каква е грешката, инсталирай необходимия пакет и компилирай наново.
Ако пък не откриеш съобщение за грешка, ще трябва да гадаеш.
« Последна редакция: Jan 08, 2009, 12:20 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #6 -: Jan 08, 2009, 15:16 »
Пробвах да пусна PHP през STRACE - тръгна без проблем, не даде Segmentation Fault и изпълни "phpinfo();" която въведох на командния ред. Мога да покажа и съобщенията на "configure" и на "make" - но са голям обем
Активен

zeridon

  • Killmode enabled
  • Administrator
  • Напреднали
  • *****
  • Публикации: 1398
  • Distribution: Debian/Ubuntu
  • Window Manager: console/Gnome
  • BOfH
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #7 -: Jan 08, 2009, 15:48 »
запази ги във файловете и ги прикачи (форума поддържа тази функционалност) от допълнителните опции за поста
Активен

Внмимавай имам клещи за кабел
http://www.netsecad.com/
http://theregister.co.uk/odds/bofh/

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #8 -: Jan 08, 2009, 16:22 »
output.log - това са съобщенията на екрана от
Цитат
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
   --with-mysql=/usr/local/mysql \
   --with-curl --enable-sockets \
   --without-iconv --with-config-file-path=/usr/local/lib \
   --disable-pdo --disable-reflection --disable-tokenizer \
   --disable-spl --disable-ipv6 --disable-ctype --disable-filter \
   --without-sqlite --without-xmlrpc --without-pear --without-cdb
config.log - лог-файла на "configure"
make.log - съобщенията на екрана от "make"
test.log - съобщенията от "make test"
Активен

tmcdos

  • Напреднали
  • *****
  • Публикации: 53
  • Distribution: Fedora Core 6
  • Window Manager: Не използвам - само Command-Line
    • Профил
    • WWW
Re: Защо PHP-CLI дава SegFault, а MOD_PHP работи
« Отговор #9 -: Jan 10, 2009, 21:02 »
Не успях да открия проблема, но ето с тези опции няма Segmentation Fault:
Цитат
./configure --without-apxs2 --without-apache --enable-sigchild \
   --with-mysql=/usr/local/mysql \
   --without-iconv --with-config-file-path=/usr/local/lib \
   --disable-libxml --disable-dom --without-mcrypt --disable-posix \
   --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter \
   --disable-pdo --disable-reflection --disable-tokenizer \
   --disable-spl --disable-ipv6 --disable-ctype --disable-filter \
   --without-sqlite --without-xmlrpc --without-pear --without-cdb \
   --disable-cgi
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Проблем с mod_php на apache2
Настройка на програми
senser 15 6346 Последна публикация Jan 12, 2006, 18:02
от ray