LINUX.ORG.RU
решено ФорумAdmin

Ошибка 500 при подключении extension в php

 , ,


0

1

Всем привет!
Есть сервер с FreeBSD-10.1, на нем установлено 4 разных версии php: php-5.3, 5.4, 5.5, 5.6
Основная версия php - это 5.4, она сетапилась по дефолту, при установке остальных версий указывался префикс.
Беру php-5.3, подключаю к нему модули:

bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
gettext
gmp
hash
http
iconv
imagick
imap
intl
json
ldap
libxml
mbstring
mcrypt
mhash
mysql
mysqli
mysqlnd
openssl
pcre
PDFlib
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
pgsql
Phar
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
SQLite
standard
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
zip
zlib
Всё отлично, всё работает без каких-либо ошибок.
Подключаю эти же модули к остальным версиям php, получаю ошибку 500.
Premature end of script headers: php.cgi
Выяснил, что ошибка 500 появляется, когда подключаю следующие so-шники:
xmlreader.so
soap.so
pdo_pgsql.so
http.so
xls.so
xmlrpc.so
shmop.so
Т.е. проблема только с этими модулями, со всеми остальными на всех версиях php проблем не наблюдается.
Как такового скрипта нету, ошибку 500 получаю, когда открываю web страницу с phpinfo();
Кто сталкивался, подскажите, плз. Может, есть идеи? Буду благодарен!


Может, есть идеи?

Смотреть еррор лог вебсервера. Попробовать запустить php из командной строки.

goingUp ★★★★★
()

1. Подключаешь модули от другой версии
2. Подключаешь в неправильном порядке.

zgen ★★★★★
()

Лог смотрел, особо много не вытащил оттуда. Все, что там было написано - это «Premature end of script headers: php.cgi»
С командной строки запускал, указав опцию чтения нужного php.ini, с которого подбирать данные. PHP, как интерпретатор, код воспринял и послушно вывел мне phpinfo, проблема наблюдалась если в цепи появлялся Apache.

Смотреть еррор лог вебсервера. Попробовать запустить php из командной строки.

1. Модули я подключал нужной версии, это изначально проверил. Если бы они подключались от другой версии, это бы свидетельствовало, что криво собран php и все модули перемешались.
2. За порядок подключения не совсем понял. У меня для каждого домена или субдомена отдельный php.ini, при обращении к домену apache читает именно php.ini домена, а не глобальный php.ini для php. Таким образом я подключаю для разных доменов разные модули и порядок там не имеет никакого значения.

1. Подключаешь модули от другой версии
2. Подключаешь в неправильном порядке.


Благодарен вам за идеи и предложения. Проблему решил.
При сборке php-5.4, 5.5, 5.6 указал опцию

[x] ZTS  Force Zend Thread Safety (ZTS) build
Посмотрел на отличия в сборке, в php-5.3 этой опции небыло, решил пересобрать остальные версии php без ZTS. Удалил все extension-ы да и сами версии php, путь к библиотекам поменялся
был  /usr/local/php55/lib/php/20121212-zts
стал /usr/local/php55/lib/php/20121212
Чего нехватало, то досетапил с pecl и все заработало!

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