Як встановити PHP 5.3 на CentOS?


9

Мені потрібно встановити PHP 5.3 на мій сервер CentOS. Якщо я це роблю yum install php, базовий репозиторій встановлює 5.1.6, який занадто старий для програм, які мені потрібно встановити. Тому я намагався використовувати сховище IUS , дотримуючись офіційних вказівок IUS:

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm

root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm

root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm

ДОБРЕ. Тепер я просто роблю yum install php53і т.д. для всього, що мені потрібно ... але я отримую цю помилку:

Running rpm_check_debug
Running Transaction Test
Finished Transaction Test


Transaction Check Error:
  file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
  file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Error Summary
-------------

Я не маю уявлення про те, як це вирішити. Я думаю, що мені доведеться видалити базові пакети. Однак, як хтось новий в Linux, я не знаю, як це зробити.

Відповіді:


8

Оновлення : Очевидно RHEL 5.6 включає PHP 5.3 , тож це незабаром з’явиться для CentOS.

file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64

Проблема тут полягає в тому, що пакунки, які ви встановлюєте, мають іншу назву (php53 замість php), але вони намагаються встановити ті самі файли ... звідси конфлікти. Це не обов'язково найкращий спосіб складання пакетів, але я не знаю, чи є кращі пакети, тому ми ігноруємо це.

Щоб видалити встановлені вами пакети:

# yum remove php-cli php-common php

Так, загалом, yum remove <list of packages>пакети вилучать. І звичайно, yum list installedщоб побачити список встановлених пакетів (або rpm -qa).


hm так, видалити може бути краще, ніж стирати, оскільки стирання також видаляє залежності. Спробуйте спочатку видалити, якщо це не вдалося, спробуйте стерти.
Phil Hollenback

2
removeі eraseє синонімами, згідно з довідковою yumсторінкою як в CentOS, так і в останніх випусках Fedora.
larsks

Дякую! Це спрацювало, хоча мені не довелося видаляти php, але перші два у цьому списку. Щоб встановити php 5.3, мені потрібно лише встановити php53? Є багато пакетів, перерахованих, але я думаю, що це єдине важливе право?
п'ять літрівсофсода

Виразно синоніми. Загляньте, yumcommands.pyякщо сумніваєтесь. :)
mattdm

Мабуть. Тільки ви знаєте, чи потрібна ваша програма будь-якого з додаткових модулів (наприклад, підтримка xml, підтримка ldap, бази даних тощо).
larsks

4

Відповідь на це змінилася, станом на 13 січня 2011 р. Red Hat випустила версію 5.6, і це включає PHP версії 5.3 як окремий пакет ( php53).

Вам потрібно видалити старий PHP, а потім встановити PHP 5.3 окремо. Це схоже на ваш пакет із сховища IUS, але зараз він офіційний.

Для отримання додаткової інформації див . Примітки до випуску Red Hat .

Зауважте, що це тільки що вийшло з Red Hat, і буде деяка затримка, перш ніж це стане доступним у CentOS. Хоча оновлення RHEL 5.6 виглядає відносно незначним, тому я не повинен очікувати, що він буде занадто довгим.


так. і через 4 місяці. це все ще не в centos repos. :(
Стенн


Доступний з квітня 2011 року. Дивіться примітки до випуску CentOS 5.6
Стефан Ласєвський

2

Спробуйте видалити старі версії пакетів, перш ніж встановлювати нові:

yum стерти php-cli php-comon

то спробуйте встановити yum.

Попередження : перегляньте список змін, які ви бажаєте внести перед вчиненням, щоб переконатися, що ви не видаляєте інші важливі пакети.


2

Ви маєте рацію, спочатку потрібно видалити пакети PHP за замовчуванням. Перш ніж рухатися вперед, майте на увазі, що інші пакети можуть мати певні залежності від базових версій. Швидше за все, у вас все буде добре, але просто попередите, що вам можуть знадобитися вирішити інші проблеми пізніше.

Ви повинні зробити це, видавши

yum erase php-common php-cli

Слідом за вашим

yum install php53


1
  1. Мені довелося прибрати php-cli, php-commonа php-devтакож деякі залежності, але нічого іншого (MySQL і т. Д. Були недоторкані.)
  2. Я встановив ті самі пакети в аромат PHP 5.3 із залежностями, і тепер все працює і працює. phpinfoпідтверджує, що я запускаю PHP версії 5.3.3.
  3. Я перезапустив Apache і сайт, запустивши Joomla, просто працює добре.

0

У мене була така ж проблема, де "yum update php" дасть мені конфліктні помилки.

Запуск "yum update" (оновлення всього) все-таки працював для мене. Спробуйте.

Крім того, розумійте, що якщо ви запустите "yum erase php" або "yum delete php", він може видалити всі пакунки, які залежать від PHP ... які, ймовірно, включатимуть вашу панель керування Plesk або CPanel, якщо вона встановлена. Якщо я не помиляюся, вам доведеться перевстановити ті, що можуть бути болем.


2
Так, у мене саме така проблема. Щоб оновити PHP, yum хоче видалити Drupal, який насправді не є залежністю: він вимагає, щоб PHP працював, але йому не зовсім важливо, яка версія PHP, оскільки це джерело PHP, а не компільована програма. Будь-який спосіб видалити PHP5.2 і залишити його Drupal у спокої?
барт

0

Я щойно вирішив цю проблему після багатьох досліджень, а саме встановлення PHP 5.3.10 на CentOS 5.3. Я намагався використовувати декілька сховищ, включаючи рето Atomicorp , але це зламало plesk

Нарешті я знайшов, що наступні кроки є справою, як я вважаю, поділяюсь.

ПОЧАТОК

Завантажте та ввімкніть сховища REMI та EPEL

cd ~
wget http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

vi /etc/yum.repos.d/remi.repo

Змініть "включений = 0" на "увімкнено = 1" у заголовку "[remi]"

Ви повинні видалити php-sqlite2, інакше ви отримаєте помилку залежності

yum remove php-sqlite2

Оновіть PHP до останньої версії 5.3.10 в цьому випадку

yum update php

Створіть резервну копію php.ini та ввімкніть нещодавно встановлену версію

mv /etc/php.ini /etc/php.ini.old
mv /etc/php.ini.rpmnew /etc/php.ini

Створіть резервну копію my.cnf та увімкніть нещодавно встановлену версію

mv /etc/my.cnf /etc/my.cnf.old
mv /etc/my.cnf.rpmnew /etc/my.cnf

Встановіть останню версію розширення ioncube

wget http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar -xvf ioncube_loaders_lin_x86-64.tar.gz
mv ioncube/* /usr/lib64/php/modules/

echo 'zend_extension=/usr/lib64/php/modules/ioncube_loader_lin_5.3.so' > /etc/php.d/ioncube-loader.ini

Можливо, вам також знадобиться встановити розширення php, в цьому випадку мені також знадобилося встановити розширення SOAP:

yum install php-soap

Перезавантажте служби, щоб зміни вплинули

service mysqld restart
service httpd restart

Зроблено

Ура; Позначити

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.