PHP 5.3+ enable_dl не включает dl ()?

Я пытаюсь установить стороннее расширение PHP (.so) в PHP 5.3.6-13 на Ubuntu 11.10 и использовать его в веб-среде. Документация поставщика предлагает использовать функцию dl() для динамической загрузки библиотеки.

Когда я пытаюсь их пример кода, я считаю, что dl() недоступен (Fatal error: call to undefined function dl ()), поскольку функция dl() устарела в PHP 5.3. Но в php.ini есть правило конфигурации enable_dl , а другие источники говорят, что я должен использовать dl () просто путем изменения переменных php.ini ( enable_dl=On , safe_mode=Off , не указанных в disable_functions ) и перезапуска апач. Когда я пытаюсь это сделать, dl() все еще не определено.

Поэтому я вхожу в заметки об изменениях в PHP 5.3 SAPI и обнаруживаю следующее:

Функция dl () теперь отключена по умолчанию и теперь доступна только в CLI, CGI и встраивает SAPI.

Означает ли это, что dl() не только «отключен по умолчанию» в PHP 5.3+ с использованием веб-SAPI, но на самом деле «полностью недоступен независимо от того, что я делаю даже при изменении параметров конфигурации PHP» ? Это то, что мне кажется, потому что я не могу заставить dl() работать независимо от того, что я настраиваю.

Чтобы уточнить: я могу модифицировать php.ini и напрямую загрузить расширение, так что это не вопрос о том, как заставить расширение работать, а скорее о функции dl() и ее состоянии в PHP 5.3+. Если он больше не доступен ни при каких обстоятельствах, я хочу сообщить поставщику, чтобы они могли обновить свою документацию. Но если это должно быть доступно, и я просто что-то пропустил, я тоже хотел бы это услышать.

Solutions Collecting From Web of "PHP 5.3+ enable_dl не включает dl ()?"

Эта функция была удалена из некоторых SAPI в PHP 5.3. – dl()

Поэтому, если у вас enable_dl параметр enable_dl и он все еще не работает, он отключается в используемом SAPI.

Если вы задаетесь вопросом, какие SAPI имеют в виду, то список изменений на той же странице более подробно:

Единственными SAPI, которые позволяют dl() являются CLI и Embed.

Вы не используете ни одно из этих двух. Вместо этого используйте Директивы по загрузке расширений, и все в порядке.