Debian 8 - Проблемы с curl / php и с компиляцией из исходных текстов

Я пытаюсь переместить приложение php на новый сервер.

Хотя на старом сервере вызов curl php работает правильно на новом сервере, я получаю сообщение об ошибке:

{"error": "Требуется заголовок реферера" }

Поскольку оба сервера имеют разные версии Debian, PHP и curl, я пытаюсь скомпилировать curl 7.51 из исходников на новом сервере. После простой компиляции у меня установлена ​​новая версия curl. Но у меня до сих пор нет нового модуля curl для php. Когда я пытаюсь включить libcurl.so в php, он жалуется

Предупреждение PHP: запуск PHP: неверная библиотека (возможно, не библиотека PHP) '/usr/local/lib/libcurl.so' в Unknown в строке 0

Есть некоторые различия в включенных функциях в curl на обоих серверах. Я хочу включить некоторые функции во время компиляции, но я не могу заставить эту новую версию работать с php. И похоже, что он все равно не включает эти функции при компиляции, я запускаю

./ configure --enable-debug --with-gssapi

, но после make && make install эти функции все еще не включены в новой версии . Протоколы: файл dict ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Особенности: Отладка GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

На новом сервере установлена ​​Debian Jessie:

PHP 5.6.27 + dfsg-0 + deb8u1

curl 7.38.0 (x86_64-pc-linux-gnu) libcurl / 7.38.0 OpenSSL / 1.0.1t zlib / 1.2.8 libidn / 1.29 libssh2 / 1.4.3 librtmp / 2.3 Протоколы: файл dict ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Особенности: AsynchDNS IDN IPv6 Largefile GSS-API SPNEGO NTLM NTLM_WB SSL libz TLS-SRP

Большое спасибо,

Jaroslaw

0
задан 9 December 2016 в 18:20
1 ответ

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

Как мне получить новую скомпилированную версию модуля, которую я могу включить в php?

Хорошо, если этот модуль доступен для широкой публики, затем проверьте пакет из репозитория Debian. Он имеет php5-curl (подробности на https://packages.debian.org/stable/php/php5-curl ). Это может сработать.

Могут возникнуть некоторые проблемы, вызванные возможными различиями в конфигурации модуля или интерфейсе, который мог измениться между версиями.

Но если код tat модуля был каким-либо образом изменен автором системы, которую вы переносите на новый сервер, то вы необходимо будет проконсультироваться с исходным кодом (если у него есть репозиторий, проконсультируйтесь с коммитами соответствующих файлов, связанных с модулем).

Как мне получить новый модуль curl для php с включенными некоторыми функциями

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

Но всегда помните, что, вообще говоря, модификации пакетов могут в конечном итоге привести к некоторым проблемам безопасности или несовместимости с вашими системами, поэтому они должны быть выполнено с умом.

В случае неудачи вы можете попробовать понизить версию curl до той же версии, которая была установлена ​​на старом сервере. Используя существующую инфраструктуру Debian или вручную. Но каждая часть системы, не входящая в репозиторий Debian, не будет обновляться Debian автоматически. Если оставить это без внимания, это может привести к проблемам с безопасностью и стабильностью. Так что это гораздо менее удобный (и менее безопасный) способ.

0
ответ дан 5 December 2019 в 09:06

Теги

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