Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Volaner
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-11-10 20:27:18

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Volaner » 2016-11-10 20:41:18

PHP работает, <? print('Hello world!'); ?> печатает. Но при попытке создать соединение с базой, выдаётся сообщение - Call to undefined function mysql_connect(). При этом, если файл index.php запустить через php в консоли (#php index.php), то всё работает, и соединение с базой создаётся и данные выбираются.
В логах Apache, вот такое безобразие:

Код: Выделить всё

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/20131226/mysql.so' - /usr/local/lib/php/20131226/mysql.so: Undefined symbol "executor_globals" in Unknown on line 0
И так про все модули, не только с mysql.so. Версия PHP и всех расширений совпадает - 5.6.27. Кто знает, с чем связана ошибка Undefined symbol "executor_globals" и что с ней делать?
Последний раз редактировалось f_andrey 2016-11-10 21:27:24, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума, оформляйте сообщение по человечески.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

snorlov
подполковник
Сообщения: 3929
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение snorlov » 2016-11-11 15:09:08

Я бы для начала пересобрал весь софт 2-а раза...

Volaner
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-11-10 20:27:18

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Volaner » 2016-11-11 23:28:25

snorlov писал(а):Я бы для начала пересобрал весь софт 2-а раза...
Да уже пересобрал. Все порты физически удалял, потом востанавливал - #portsnap extract, чтоб уже точно ничего кривого не осталось. Всё четно...

Отправлено спустя 3 минуты 4 секунды:
У меня такое впечатление, что у Apache не хватает чего то, благодаря чему, он и понимает синтаксис php расширений. Вот что это за executor_globals, какой компонент у Apache отвечает за понимание этих php_extansion. Может быть раньше, этот компонент был включён в состав Apache, а теперь его отдельно ставить надо?

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Amadeus » 2016-11-12 1:44:32

Пожалуйста

Первое:

Код: Выделить всё

apachectl -t -D DUMP_MODULES |  grep php

Второе:

Код: Выделить всё

php -m | grep mysql

Третье:

Код: Выделить всё

/usr/ports/www/mod_php56]# make showconfig | grep ZTS 
Отправлено спустя 6 минут 21 секунду:
Чем по вашему мнению веб сервер, основная задача которого не обработка кода, пользуется ?

mod_php стоит вообще?)
Нет ничего невозможного

Volaner
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-11-10 20:27:18

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Volaner » 2016-11-12 13:19:55

Amadeus писал(а):Чем по вашему мнению веб сервер, основная задача которого не обработка кода, пользуется ?
Веб сервер пользуется интерпретатором, в данном случае PHP, в данном случае работа с которым, реализуется mod_php. А вот чем он пользуется, что именно использует, благодаря чему он понимает синтаксис расширений - я не знаю, но именно с этим видимо и проблемы.
Amadeus писал(а):mod_php стоит вообще?)
Еслиб не стоял, <? print('Hello world")?> бы не работало, а оно работает. У меня работает сам PHP, но только базовый функционал, ни одно расширение не прикручивается, все выдают ошибку.

Изображение

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Amadeus » 2016-11-12 17:47:41

Ну вот вы сами написали причину вашей проблемы)

у вас два выхода

1) Пересобрать php с поддежкой ZTS. Потом так же потом так же поступить с экстеншенами (точнее тут просто персобрать, так как они берут ее с основны)

2) Пересобрать mod_php без ZTS.


Судя по всему, в данном случае лучше поступить вторым путём.

А вот чем он пользуется, что именно использует, благодаря чему он понимает синтаксис расширений - я не знаю, но именно с этим видимо и проблемы.
Немного запутались в понятиях. У mod_phpX нет такой вещи, как "Cущность для определения расширений". Единственное существенное отличие - ZTS. (zend thread saferty)

Оно если в крадце включается для того что бы в апаче работал event mpm. Если у вас в нем нет строгой необходимости, то решение 2, если есть - решение 1
Нет ничего невозможного

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Amadeus » 2016-11-12 20:57:27

Дополню насчет этого
что бы в апаче работал event mpm
Работал с php. С другими языками в этом плане проще.
Нет ничего невозможного

Volaner
проходил мимо
Сообщения: 4
Зарегистрирован: 2016-11-10 20:27:18

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Volaner » 2016-11-17 2:41:11

Amadeus писал(а):Ну вот вы сами написали причину вашей проблемы)

у вас два выхода

1) Пересобрать php с поддежкой ZTS. Потом так же потом так же поступить с экстеншенами (точнее тут просто персобрать, так как они берут ее с основны)

2) Пересобрать mod_php без ZTS.
PHP я изначально ставил с поддержкой ZTS, и у mod_php поддержка ZTS тоже включена была.

Ради интереса, поставил nginx, который работает с php через FPM а не mod_php, ошибки были те же.

В итоге, поудалял PHP, mod_php и все расширения. Установил всё заново через pkg, и модули заработали, и через mod_php в apache, и через FPM в nginx. До этого, я несколько раз переставлял всё через порты, делая #make rmconfig и всё перенастраивая, всё было четно. В общем, не понятно, что за фигня происходит в портах, факт в том, что собираются PHP и его расширения, которые не совместимы друг с другом....

guest
проходил мимо

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение guest » 2016-11-17 10:00:17

Volaner писал(а):
Amadeus писал(а):Ну вот вы сами написали причину вашей проблемы)

у вас два выхода

1) Пересобрать php с поддежкой ZTS. Потом так же потом так же поступить с экстеншенами (точнее тут просто персобрать, так как они берут ее с основны)

2) Пересобрать mod_php без ZTS.
PHP я изначально ставил с поддержкой ZTS, и у mod_php поддержка ZTS тоже включена была.

Ради интереса, поставил nginx, который работает с php через FPM а не mod_php, ошибки были те же.

В итоге, поудалял PHP, mod_php и все расширения. Установил всё заново через pkg, и модули заработали, и через mod_php в apache, и через FPM в nginx. До этого, я несколько раз переставлял всё через порты, делая #make rmconfig и всё перенастраивая, всё было четно. В общем, не понятно, что за фигня происходит в портах, факт в том, что собираются PHP и его расширения, которые не совместимы друг с другом....
Факт в том, что Вы методом тыка - натыкали опции при конфигурации портов, из-за
которых неверно собрали php и модули.

Чтобы немного представлять: то что Вы ставите через pkg - это пакеты, собранные из ПОРТОВ с default'ными
опциями.
Только пару дней назад, собрал apache и с worker и с event и php соответственно + mod_php - все
работает без проблем.

Вывод: devhands

Аватара пользователя
Amadeus
ст. сержант
Сообщения: 332
Зарегистрирован: 2008-10-05 12:42:44
Откуда: Kiev

Не работает связка Apache 2.4 + MySQL 5.6 + PHP 5.6 на FreeBSD 10.3

Непрочитанное сообщение Amadeus » 2016-11-17 17:19:09

PHP я изначально ставил с поддержкой ZTS, и у mod_php поддержка ZTS тоже включена была.
Значит либо там либо там не была включена. Мы не в стране ОЗ живём.

Вам верно заметили - пакеты из репозиториев это пакеты собранные из портов.

Отправлено спустя 1 час 5 минут 33 секунды:

Код: Выделить всё

[root@nalog-rev /]#  pkg query -e "%n=php55" "%n-%v %Ok %Ov"
php55-5.5.38_2 CGI on
php55-5.5.38_2 CLI on
php55-5.5.38_2 DEBUG off
php55-5.5.38_2 DTRACE off
php55-5.5.38_2 EMBED off
php55-5.5.38_2 FPM on
php55-5.5.38_2 IPV6 on
php55-5.5.38_2 LINKTHR on
php55-5.5.38_2 MAILHEAD off
php55-5.5.38_2 ZTS off
[root@nalog-rev /]# pkg query -e "%n=mod_php55" "%n-%v %Ok %Ov"
mod_php55-5.5.38_2 AP2FILTER off
mod_php55-5.5.38_2 DEBUG off
mod_php55-5.5.38_2 DTRACE off
mod_php55-5.5.38_2 IPV6 on
mod_php55-5.5.38_2 LINKTHR on
mod_php55-5.5.38_2 MAILHEAD off
mod_php55-5.5.38_2 ZTS off
[root@nalog-rev /]# pkg query -e "%n=php55-mysql" "%n-%v %Ok %Ov"
php55-mysql-5.5.38_1 MYSQLND on
А то так, на вскидку, примерно в такой же ситуации как у вас, когда пришлось тянуть бинарники. А не собирать. Удивительное дело да? Именно то, о чем говорилось в самом начале
Нет ничего невозможного