Установка php-мыла с yum и pear не удалась

Я пытаюсь установить расширение SOAP для PHP на сервере Centos 6.4. Я довольно незнаком с менеджерами пакетов, устанавливаю пакеты из CLI и настраиваю их в PHP. Я достаточно компетентен в управлении php.ini и другими конфигурационными файлами PHP (soap.ini и т. Д.).

Я попытался установить это с помощью команды:

yum install php-soap

но это дает мне следующую ошибку:

yum install php-soap
Loaded plugins: downloadonly, fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
drivesrvr                                                                                                                                                                                                |  951 B     00:00
Resolving Dependencies
There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.
The program yum-complete-transaction is found in the yum-utils package.
--> Running transaction check
---> Package php-soap.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Dependency: php-common(x86-64) = 5.3.3-40.el6_6 for package: php-soap-5.3.3-40.el6_6.x86_64
--> Running transaction check
---> Package php-common.x86_64 0:5.3.3-40.el6_6 will be installed
--> Processing Conflict: php54-common-5.4.36-1.ius.el6.x86_64 conflicts php-common < 5.4
--> Finished Dependency Resolution
Error: php54-common conflicts with php-common-5.3.3-40.el6_6.x86_64
You could try using --skip-broken to work around the problem
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
cloud-init-0.7.5-10.el6.centos.2.x86_64 has missing requires of PyYAML

Обратите внимание на эту проблему:

Error: php54-common conflicts with php-common-5.3.3-40.el6_6.x86_64

Если я перечислю все связанные с PHP пакеты, которые я установил, я получу это:

yum list installed | grep php
php-php-gettext.noarch             1.0.11-3.el6                       @epel
php-tcpdf.noarch                   6.1.1-1.el6                        @epel
php-tcpdf-dejavu-sans-fonts.noarch 6.1.1-1.el6                        @epel
php54.x86_64                       5.4.36-1.ius.el6                   @ius
php54-bcmath.x86_64                5.4.36-1.ius.el6                   @ius
php54-cli.x86_64                   5.4.36-1.ius.el6                   @ius
php54-common.x86_64                5.4.36-1.ius.el6                   @ius
php54-devel.x86_64                 5.4.36-1.ius.el6                   @ius
php54-gd.x86_64                    5.4.36-1.ius.el6                   @ius
php54-mbstring.x86_64              5.4.36-1.ius.el6                   @ius
php54-mcrypt.x86_64                5.4.36-1.ius.el6                   @ius
php54-mysql.x86_64                 5.4.36-1.ius.el6                   @ius
php54-pdo.x86_64                   5.4.36-1.ius.el6                   @ius
php54-pear.noarch                  1:1.9.5-2.ius.el6                  @ius
php54-pecl-apc.x86_64              3.1.13-2.ius.el6                   @ius
php54-pecl-memcache.x86_64         3.0.8-1.ius.el6                    @ius
php54-suhosin.x86_64               0.9.37-1.ius.el6                   @ius
php54-tidy.x86_64                  5.4.36-1.ius.el6                   @ius
php54-xml.x86_64                   5.4.36-1.ius.el6                   @ius
phpMyAdmin.noarch                  4.0.10.7-1.el6                     @epel

Я также попытался установить расширение SOAP, используя pear:

sudo pear install SOAP-0.13.0

Это утверждает, что расширение было успешно установлено:

WARNING: "pear/HTTP_Request" is deprecated in favor of "pear/HTTP_Request2"Did not download optional dependencies: pear/Mail, pear/Mail_Mime, pear/Net_DIME, use --alldeps to download automatically
WARNING: "pear/Net_URL" is deprecated in favor of "pear/Net_URL2"pear/SOAP can optionally use package "pear/Mail"pear/SOAP can optionally use package "pear/Mail_Mime"pear/SOAP can optionally use package "pear/Net_DIME"downloading SOAP-0.13.0.tgz ...
Starting to download SOAP-0.13.0.tgz (85,945 bytes)
....................done: 85,945 bytes
downloading HTTP_Request-1.4.4.tgz ...
Starting to download HTTP_Request-1.4.4.tgz (17,109 bytes)
...done: 17,109 bytes
downloading Net_URL-1.0.15.tgz ...
Starting to download Net_URL-1.0.15.tgz (6,303 bytes)
...done: 6,303 bytes
downloading Net_Socket-1.0.14.tgz ...
Starting to download Net_Socket-1.0.14.tgz (5,600 bytes)
...done: 5,600 bytes
install ok: channel://pear.php.net/Net_URL-1.0.15
install ok: channel://pear.php.net/Net_Socket-1.0.14
install ok: channel://pear.php.net/HTTP_Request-1.4.4
install ok: channel://pear.php.net/SOAP-0.13.0

Тем не менее, несмотря на то, что я добавил строку ‘extension = soap.so’ в мой php.ini, SOAP все еще не отображается в моем phpinfo (). Я также получаю следующую ошибку при запуске php -v или pear info SOAP-0.13.0 из командной строки:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/soap.so' - /usr/lib64/php/modules/soap.so: cannot open shared object file: No such file or directory in Unknown on line 0

Казалось бы, что мыла нет в файле / usr / lib64 / php / modules / или где-либо еще на сервере, мы проверили, используя:

cd /
find -name soap.so

Я деинсталлировал и переустанавливал пару раз, и каждый раз одно и то же.

Кто-нибудь может предложить какие-либо объяснения, почему один из этих методов не работает? Рады предоставить дополнительную информацию, если требуется.

3

Решение

Основываясь на комментариях выше @EtanReisner, я теперь смог успешно установить пакет SOAP.

Проблема заключалась в том, что у меня была смесь пакетов PHP из репозиториев EPEL и IUS. Как видно из вышесказанного

yum list installed | grep php

Большинство этих пакетов PHP из репозитория IUS, может показаться, что пакет php-soap, который я пытался установить с помощью

yum install php-soap

Был пакет на основе EPEL, следовательно, конфликт выделен в файле php-common. В соответствии с предложениями выше, я запустил следующее

yum list | grep ^php54

Результаты которого содержат более подходящий пакет PHP SOAP на базе IUS:

php54-soap.x86_64                         5.4.36-1.ius.el6              ius

После удаления всех неудачных установок пакета SOAP, оставленных моими первоначальными попытками, я затем запустил

ням установить php54-мыло

Который установлен первый раз без проблем, что так никогда.

Я не нашел никаких решений для второй части этого вопроса относительно того, почему менеджер пакетов на основе PEAR не смог успешно установить пакет.

4

Другие решения

Других решений пока нет …