LINUX.ORG.RU

Не работает SOAP (PHP 5.4, Debian 6)


0

1

Доброго времени суток! При запуске скрипта из командной строки PHP ругается на строки:

    public function __construct()
	 {
            $this->soap = new SoapClient(CBR::WSDL);
	 }

следующим образом:

root@debian:/var/www# php script2.php

Fatal error: Class 'SoapClient' not found in /var/www/www-cryptcp/script2.php on line 10

PHP установлен из пакетов, пакет php-soap установлен:

root@debian:~# aptitude search ~iphp
i A libapache2-mod-php5             - server-side, HTML-embedded scripting langu
i A libphp-adodb                    - The ADOdb database abstraction layer for P
i A php-auth-sasl                   - Abstraction of various SASL mechanism resp
i A php-http-request                - provides an easy way to perform HTTP reque
i A php-mail                        - PHP PEAR module for sending email
i A php-mail-mime                   - PHP PEAR module for creating MIME messages
i A php-mail-mimedecode             - PHP PEAR module to decode MIME messages
i A php-net-dime                    - class that implements DIME encoding
i A php-net-smtp                    - PHP PEAR module implementing SMTP protocol
i A php-net-socket                  - PHP PEAR Network Socket Interface module
i A php-net-url                     - easy parsing of Urls
i A php-pear                        - PEAR - PHP Extension and Application Repos
i   php-soap                        - a SOAP Client/Server class for PHP
i   php5                            - server-side, HTML-embedded scripting langu
i   php5-cgi                        - server-side, HTML-embedded scripting langu
i   php5-cli                        - command-line interpreter for the php5 scri
i   php5-common                     - Common files for packages built from the p
i   php5-curl                       - CURL module for php5
i   php5-gd                         - GD module for php5
i   php5-imagick                    - imagick module for php5
i   php5-imap                       - IMAP module for php5
i   php5-ldap                       - LDAP module for php5
i   php5-mcrypt                     - MCrypt module for php5
i   php5-mysql                      - MySQL module for php5
i   php5-pspell                     - pspell module for php5
i   php5-snmp                       - SNMP module for php5
i   php5-sqlite                     - SQLite module for php5
i   php5-tidy                       - tidy module for php5
i   php5-xdebug                     - xdebug module for php5
i   php5-xmlrpc                     - XML-RPC module for php5
i   php5-xsl                        - XSL module for php5
i   phpmyadmin                      - MySQL web administration tool

Думала, нужно прописать строку extension=php_soap.so в php.ini, но файла php_soap.so в ситстеме нет. Вывод команды php -m|grep soap пустой.

Помогите, пожалуйста, заставить soap работать.


Ответ на: комментарий от vtVitus

Да, ставили с dotdeb.org, phpsize версия такая же как у вас в примере, а phpsize5:

root@debian:/tmp/php/php5-5.4.21/ext/soap# phpize5 --version
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
Однако если использовать phpize или phpize5 перед ./configure - при make все равно вылетает та же ошибка.

Incher
() автор топика
Ответ на: комментарий от Incher

Странно обновился из dotdeb.org

#dotdeb.org
deb http://packages.dotdeb.org squeeze-php54 all
deb-src http://packages.dotdeb.org squeeze-php54 all

по окончании установки и phpize и phpize5 указывает на одно и тоже, есть мнение, что обновление с dotdeb.org было произведено как-то не так и alternatives не правильные. должно и php/php5 возвращать

PHP 5.4.21-1~dotdeb.0 (cli) (built: Nov  2 2013 21:32:49)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
и phpize/phpize5 возвращать
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
Должно быть
xxx@xxx-dev:/tmp/php/php5-5.4.21/ext/soap$ update-alternatives --list php
/usr/bin/php5
xxx@xxx-dev:/tmp/php/php5-5.4.21/ext/soap$ update-alternatives --list phpize
/usr/bin/phpize5

Если это не так, то через update-alternatives выставляй правильные значения. Так же перед каждым phpize надо вызывать make clean

И таки из-под рута не работай. Отстрелишь себе ногу, на боевом сервере, будет больно :D

vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

Этот сервер полубоевой-полутестовый, но все равно будет больно)) - там куча всякого барахла и пару рабочих приложений, юзающих PHP. А вообще там с PHP какая-то вакханалия творится, на этом сервере раньше был 5.3, потом видимо из dotdeb.org криво проапгрейдила. Результат для update-alternatives --list php и update-alternatives --list phpize такой же, а вообще вывод php -v выглядит так:

root@debian:/usr/lib/php5/20100525+lfs# php -v
PHP 5.3.11 (cli) (built: Apr 29 2012 05:07:47)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

хотя пакеты php5, php5-cli стоят версии 5.4 из dotdeb.org:

root@debian:/usr/lib/php5/20100525+lfs# aptitude show php5
Пакет: php5
Новый: да
Состояние: установлен
Автоматически установлен: нет
Версия: 5.4.21-1~dotdeb.0
Приоритет: необязательный
Раздел: php
...
root@debian:/usr/lib/php5/20100525+lfs# aptitude show php5-cli
Пакет: php5-cli
Новый: да
Состояние: установлен
Автоматически установлен: нет
Версия: 5.4.21-1~dotdeb.0
Приоритет: необязательный
Раздел: php
...

Спасибо большое за помощь, попробую навести порядок в этом зоопарке)

P.S. Ваш soap.so к сожалению не подошел, у меня 32-битная debian:

root@debian:/usr/lib/php5/20100525+lfs# php --php-ini /etc/php5/cli/php.ini
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525+lfs/soap.so' - /usr/lib/php5/20100525+lfs/soap.so: wrong ELF class: ELFCLASS64 in Unknown on line 0

Incher
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.