У меня есть виртуальный сервер Virtuozzo под управлением Plesk 8.x на CentOS 4.4, и я хотел бы установить на него последнюю версию PHP 5.3. В идеале я бы хотел пробежать 4 и 5 бок о бок, но я соглашусь на пробежку только 5, если потребуется.
(Обратите внимание, что Plesk запускает два экземпляра Apache / PHP - один для панели управления, а другой для обслуживания клиентских сайтов - и я хочу обновить экземпляр клиента, а не экземпляр панели управления)
Я загрузил необходимые RPM с http://www6.atomicorp.com/channels/atomic/centos/4/i386/RPMS/, но когда я пытаюсь их установить, я получаю такую ошибку:
[root@hq phprpm]# rpm -i *.rpm warning: php-5.3.6-3.el4.art.i386.rpm: V3 DSA signature: NOKEY, key ID 5ebd2744 file /etc/php.ini from install of php-common-5.3.6-3.el4.art conflicts with file from package php-4.3.9-3.18.1.swsoft file /usr/bin/php from install of php-cli-5.3.6-3.el4.art conflicts with file from package php-4.3.9-3.18.1.swsoft file /usr/bin/phpize from install of php-cli-5.3.6-3.el4.art conflicts with file from package php-devel-4.3.9-3.18.1.swsoft file /etc/httpd/conf.d/php.conf from install of php-5.3.6-3.el4.art conflicts with file from package php-4.3.9-3.18.1.swsoft file /var/www/icons/php.gif from install of php-5.3.6-3.el4.art conflicts with file from package php-4.3.9-3.18.1.swsoft
Как я могу установить файлы PHP5 в отдельном месте от файлов PHP4? Какие настройки мне нужно будет настроить, потому что они не находятся в местоположении по умолчанию?
Если я попытаюсь обновить PHP4 вместо того, чтобы устанавливать вместе с ним PHP5, я получаю следующую ошибку:
[root@hq phprpm]# rpm -Uvh php-*.rpm warning: php-5.3.6-3.el4.art.i386.rpm: V3 DSA signature: NOKEY, key ID 5ebd2744 error: Failed dependencies: php = 4.3.9-3.18.1.swsoft is needed by (installed) php-domxml-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-gd-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-imap-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-mbstring-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-mysql-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-pear-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-devel-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-ldap-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-odbc-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-pgsql-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-snmp-4.3.9-3.18.1.swsoft.i386 php = 4.3.9-3.18.1.swsoft is needed by (installed) php-xmlrpc-4.3.9-3.18.1.swsoft.i386
Это не удается, потому что Plesk выпускает собственную версию PHP. Я попытался обойти это с помощью RPM --nodeps, но получил эту ошибку:
[root@hq phprpm]# rpm -Uvh php*.rpm --nodeps warning: php-5.3.6-3.el4.art.i386.rpm: V3 DSA signature: NOKEY, key ID 5ebd2744 Preparing... ########################################### [100%] file /usr/bin/phpize from install of php-cli-5.3.6-3.el4.art conflicts with file from package php-devel-4.3.9-3.18.1.swsoft
Если я попытаюсь удалить php4, чтобы установить 5, я получаю следующую ошибку:
[root@hq phprpm]# rpm -e --test php-4.3.9-3.18.1.swsoft php-gd-4.3.9-3.18.1.swsoft php-mbstring-4.3.9-3.18.1.swsoft php-devel-4.3.9-3.18.1.swsoft php-ncurses-4.3.9-3.18.1.swsoft php-pgsql-4.3.9-3.18.1.swsoft php-xmlrpc-4.3.9-3.18.1.swsoft php-domxml-4.3.9-3.18.1.swsoft php-imap-4.3.9-3.18.1.swsoft php-mysql-4.3.9-3.18.1.swsoft php-pear-4.3.9-3.18.1.swsoft php-ldap-4.3.9-3.18.1.swsoft php-odbc-4.3.9-3.18.1.swsoft php-snmp-4.3.9-3.18.1.swsoft error: Failed dependencies: php is needed by (installed) psa-prevztune-8.1.0-17.swsoft.81563.noarch php >= 4.2 is needed by (installed) ZendOptimizer-3.0.1-1.swsoft.i386 php is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch /usr/bin/php is needed by (installed) psa-horde-3.1.7-cos4.build86080722.02.noarch php-gd is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch php-mbstring is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch php-domxml is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch php-imap is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch php-mysql is needed by (installed) psa-php4-configurator-1.4.0-cos4.build86080722.02.noarch
Имейте в виду, что на виртуальных серверах Virtuozzo по умолчанию yum не установлен - и я слышал, что заставить его работать - заноза в заднице - поэтому я хотел бы делать все через RPM.
Я проверил связанные вопросы о сбое сервера, но они не касались этой конкретной ошибки, и я не нашел в Google ничего полезного.
В итоге я просто удалил старые пакеты PHP с помощью rpm -e --nodeps, а затем установил новые с помощью rpm -ivh --nodeps, и это сработало.
Просто установите через yum. "yum search php" они должны быть опцией php5 или установить репо, в котором она есть.