Во многом вопрос. У меня PHP 5.2.9 на Apache, и я не могу обновить PHP. Есть ли способ включить SOAP в PHP 5.2.9? Руководство по PHP не помогло, когда сказано: "Чтобы включить поддержку SOAP, настройте PHP с помощью --enable-soap". Как настроить?
Как включить --enable-soap в php на linux?
Ответ 1
Получение 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-пакета PHP, обычно 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.
Ответ 2
Что касается вашего вопроса: нет, если активировать с .ini
недостаточно, и вы не можете обновить PHP, вы не можете сделать этого. Некоторые модули, но не все, могут быть добавлены без перекомпиляции (zypper install php5-soap
, yum install php-soap
). Если этого недостаточно, попробуйте установить некоторый класс PEAR для интерпретируемой поддержки SOAP (NuSOAP и т.д.).
В общем, двойная тире --switches
предназначена для использования при перекомпиляции PHP с нуля.
Вы загрузите исходный пакет PHP (например, сжатый tar2 t24), разложите его где-нибудь, а затем, например. под Linux запустите configure script
./configure --prefix ...
Команда configure
, используемая вашим PHP, может быть показана с помощью phpinfo()
. Повторение его идентично должно дать вам точную копию PHP, которую вы сейчас установили. Добавление --enable-soap
затем включит SOAP в дополнение ко всему остальному.
Тем не менее, если вы не знакомы с перекомпиляцией PHP, не делайте этого. Он также требует наличия нескольких вспомогательных библиотек, которые вы могли бы или могли бы иметь - freetype
, gd
, libjpeg
, XML
, expat
и т.д. И т.д. (Этого недостаточно., они должны быть версией разработчика, то есть с заголовками и т.д., в большинстве дистрибутивов установка libjpeg
может оказаться недостаточной, и вам может понадобиться также libjpeg-dev
).
Мне нужно сохранить отдельную виртуальную машину со всем, что было установлено для моих целей перекомпиляции.
Ответ 3
Если у вас есть Ubuntu на вашем компьютере, следующие шаги помогут вам:
- Сначала проверьте ваш файл php-тестирования, если у вас есть мыло (клиент/сервер) или нет, используя phpinfo(); и проверить результаты в браузере. Если у вас есть это, это будет выглядеть следующим образом (если не перейти к шагу 2):
-
Откройте ваш терминал и вставьте его: sudo apt-get install php-soap.
-
Перезагрузите сервер apache2 в терминале: перезапустите службу apache2.
-
Чтобы проверить, что ваш тестовый файл php снова выглядит как мой на шаге 1.