Запуск PHP: невозможно загрузить динамическую библиотеку: невозможно открыть файл общих объектов: нет такого файла или каталога

Я подозреваю, что основная причина ограничения заключается в том, чтобы избежать чрезмерного потребления памяти (каждый дескриптор открытого файла использует память ядра). Он также служит защитой от ошибок приложений, утекающих файловые дескрипторы и потребляющих системные ресурсы.

Но учитывая, насколько абсурдно много оперативной памяти современные системы по сравнению с системами 10 лет назад, я думаю, что сегодня значения по умолчанию довольно низкие.

В 2011 году жесткое ограничение по умолчанию для файловых дескрипторов в Linux было и увеличено с 1024 до 4096 .

Некоторое программное обеспечение (например, MongoDB) использует намного больше файловых дескрипторов, чем установлено по умолчанию. Специалисты MongoDB рекомендуют увеличить этот предел до 64 000 . Я использовал rlimit_nofile из 300 000 для некоторых приложений.

Пока вы сохраняете мягкий предел по умолчанию (1024), вероятно, довольно безопасно увеличить жесткое ограничение. Программы должны вызывать setrlimit () , чтобы поднять свой предел выше мягкого, но все еще ограничены жестким пределом.

См. Также некоторые связанные вопросы:

2
10.12.2016, 12:45
2 ответа

Я не нашел способа заставить расширение искать общие библиотеки в / usr / local / lib , но я нашел найдите способ заставить libgeos установить их в / usr / lib , где их ищет расширение.

Просто используйте - префикс при сборке libgeos:

./configure --prefix=/usr
0
27.01.2020, 22:43

В более новой версии привязки PHP теперь является самостоятельным проектом, поэтому ldconfigнеобходимо запустить после сборки libgeosи php-geos, чтобы модуль PHP загружал динамические библиотеки из libgeos правильно.

0
27.01.2020, 22:43

Теги

Похожие вопросы