Это вопрос. У меня PHP 5.2.9 на Apache, и я не могу обновить PHP. Есть ли способ включить SOAP в PHP 5.2.9? Руководство по PHP не помогло, когда сказано: «Чтобы включить поддержку SOAP, настройте PHP с помощью –enable-soap». Как настроить?
Получение SOAP-работы обычно не требует компиляции PHP из исходного кода. Я бы рекомендовал попробовать это только как последний вариант.
Для хорошей оценки, проверьте, что ваш phpinfo говорит, если что-либо, о расширениях SOAP:
$ php -i | grep -i soap
чтобы убедиться, что это расширение PHP отсутствует.
Предполагая, что вы ничего не видите в SOAP в phpinfo, посмотрите, какие пакеты PHP SOAP могут быть доступны вам.
В Ubuntu / Debian вы можете искать:
$ apt-cache search php | grep -i soap
или в RHEL / Fedora вы можете выполнить поиск:
$ yum search php | grep -i soap
Обычно для вас доступны два пакета SOAP SOAP, обычно это php-soap
и php-nusoap
. Обычно мы используем php-soap
с настройкой PHP с помощью --enable-soap
.
В Ubuntu / Debian вы можете установить:
$ sudo apt-get install php-soap
Или в RHEL / Fedora вы можете установить:
$ sudo yum install php-soap
После установки вам может потребоваться поместить файл ini и перезапустить Apache.
Что касается вашего вопроса: нет, если активировать из .ini
недостаточно, и вы не можете обновить PHP, вы не можете многое сделать. Некоторые модули, но не все, могут быть добавлены без перекомпиляции ( zypper install php5-soap
, yum install php-soap
). Если этого недостаточно, попробуйте установить некоторый класс PEAR для интерпретируемой поддержки SOAP (NuSOAP и т. Д.).
В общем, --switches
с двойным тире предназначены для использования при перекомпиляции PHP с нуля.
Вы загрузите исходный пакет PHP (например, сжатый tar-файл tar.tgz, скажем), разложите его где-нибудь, а затем, например, в Linux, запустите скрипт configure
./configure --prefix ...
Команда configure
используемая вашим PHP, может быть показана с помощью phpinfo()
. Повторение его идентично должно дать вам точную копию PHP, которую вы сейчас установили. Добавление --enable-soap
будет включать SOAP в дополнение ко всему остальному.
Тем не менее, если вы не знакомы с перекомпиляцией PHP, не делайте этого . Он также требует наличия нескольких вспомогательных библиотек, которые вы могли бы или могли бы иметь: freetype
, gd
, libjpeg
, XML
, expat
и т. Д. И т. Д. (Недостаточно, они установлены , они должны быть версией разработчика , то есть с заголовки и т. д., в большинстве дистрибутивов установка libjpeg
может быть недостаточной, и вам может понадобиться libjpeg-dev
).
Я должен хранить отдельную виртуальную машину со всем, что было установлено для моей перекомпиляции.
Если у вас есть Ubuntu на вашем компьютере, следующие шаги помогут вам:
Откройте терминал и вставьте его: sudo apt-get install php-soap.
Перезапустите сервер apache2 в терминале: перезапустите службу apache2.
Чтобы снова проверить, чтобы ваш тестовый файл php выглядел как мой на шаге 1.