Я пытаюсь перенести два веб-приложения на один сервер (debian10), обоим требуются разные версии PHP, и обоим для правильной работы требуются расширения cURL.
php5.6-curl использует libcurl v3
php8.1-curl использует libcurl v4
Сначала я установил php5.6-curl, а когда попытался установить php8.1-curl - apt выдал уведомление, чтоThe following packages have unmet dependencies: php8.1-curl : Depends: libcurl4 (>= 7.56.1) but it is not going to be installed
Если я использую -f в apt, он удаляет php5.6-curl...
Какой наиболее элегантный способ сделать эти две библиотеки libcurl доступными в одной системе?
Спасибо, Роберт.
edit: Насколько я понимаю, проблема в том, что libcurl3 и libcurl4 используют один и тот же файл /usr/lib/x86_64-linux-gnu/libcurl.so.4, и он меняется при переустановке пакета (libcurl3<->libcurl4). PHP[5.6,8.1]-fpm пытается загрузить библиотеку, та, которая получает неправильную версию libcurl.so.4, терпит неудачу, и php не может использовать этот модуль.
Может быть, существует элегантный способ заставить исполняемые файлы 4eg php5-curl использовать библиотеку из указанного пользователем пути?
решение1
Поместите оба приложения в контейнер, содержащий все необходимое.
решение2
Я нашел обходной путь самостоятельно, если вы хотите решить похожую проблему, вы можете пойти моим, не самым элегантным путем.
- установить все необходимые пакеты php5.6;
- скопировать каталог /usr/lib в /usr/php56libs
- в моем случае отредактируйте файл службы systemd:
systemctl edit --full php5.6-fpm
- подуслугараздел добавить переменную окружения:
Environment="LD_LIBRARY_PATH=/usr/php56libs"
- теперь вы можете установить все пакеты php8.1 с помощью apt (с
-f
опцией force), это удалит все конфликтующие библиотеки из /usr/lib, но это не имеет значения, поскольку служба php5.6-fpm будет использовать библиотеки из /usr/php56libs
решение3
Войдите на свой сервер через SSH. Убедитесь, что вы находитесь в домашнем каталоге пользователя. Найдите версию, которую хотите установить. Распакуйте файл. Перейдите в этот новый каталог. Откройте свой .bash_profile с помощью nano или vim. Например: Добавьте требуемый файл в .bash и обновите. Обновите свой .bash_profile, чтобы активировать новую конфигурацию. Проверьте местоположение и версию curl.