CentOS에 PHP 5.3을 어떻게 설치합니까?


9

CentOS 서버에 PHP 5.3을 설치해야합니다. 내가 할 경우 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

여기서 문제는 설치하는 패키지의 이름이 다르지만 (php 대신 php53) 동일한 파일을 설치하려고 시도하기 때문에 충돌이 발생한다는 것입니다. 이것이 패키지를 함께 모으는 가장 좋은 방법은 아니지만, 더 나은 패키지가 있는지 모르겠 기 때문에 무시할 것입니다.

현재 설치된 패키지를 제거하려면

# yum remove php-cli php-common php

따라서 일반적으로 yum remove <list of packages>패키지를 제거합니다. 물론 yum list installed설치된 패키지 목록 (또는 rpm -qa) 을 보려면


hm 예 제거는 지우기보다 종속성이 더 좋기 때문에 지우기보다 낫습니다. 먼저 제거를 시도하십시오. 실패하면 지우기를 시도하십시오.
Phil Hollenback

2
remove그리고 erase받는 사람에 따라, synonymns 있습니다 yum모두 CentOS는 최근 페도라 릴리즈에서 매뉴얼 페이지를 참조하십시오.
larsks

감사! 비록 PHP를 제거 할 필요는 없지만 그 목록의 처음 두 가지를 제거했지만 작동했습니다. PHP 5.3을 설치하려면 php53을 yum 만 설치하면됩니까? 나열된 패키지가 많이 있지만 그것이 유일하게 중요한 것이라고 생각합니까?
fivelitresofsoda

확실히 동의어. yumcommands.py의심스러운 경우 살펴보십시오 . :)
mattdm

아마. 응용 프로그램에 추가 모듈 (예 : xml 지원, ldap 지원, 데이터베이스 등)이 필요한지 여부 만 알 수 있습니다.
larsks

4

이에 대한 답변은 2011 년 1 월 13 일부터 변경되었습니다. Red Hat은 버전 5.6을 출시했으며 여기에는 별도의 패키지 ( php53) 로 PHP 버전 5.3이 포함됩니다 .

이전 PHP를 제거한 다음 PHP 5.3을 별도로 설치해야합니다. 이것은 IUS 저장소의 패키지와 비슷하게 들리지만 이제는 공식입니다.

자세한 정보 는 Red Hat 릴리즈 노트를 참조하십시오 .

이것은 Red Hat에서 나오지 않았으며 CentOS에서 사용할 수 있으려면 약간의 지연이 있습니다. 그러나 RHEL 5.6 업데이트는 비교적 사소한 것으로 보이므로 너무 길지 않을 것으로 예상됩니다.


네. 그리고 4 개월 후. 여전히 centos repos에는 없습니다. :(
Stann


2011 년 4 월 현재 이용 가능합니다. 휴. 참조 에 CentOS 5.6 릴리스 노트
스테판 Lasiewski

2

새 패키지를 설치하기 전에 이전 버전의 패키지를 제거하십시오.

얌 지우기 PHP-cli PHP-comon

그런 다음 yum 설치를 시도하십시오.

경고 : 다른 중요한 패키지를 제거하지 않도록 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 버전에 동일한 패키지를 설치했으며 이제 모든 것이 작동합니다. phpinfoPHP 버전 5.3.3을 실행하고 있음을 확인합니다.
  3. 나는 Apache를 다시 시작했고 Joomla를 실행하는 사이트는 정상적으로 작동합니다.

0

"yum update php"가 충돌 오류를 발생시키는 동일한 문제가 있습니다.

"yum update"(모두 업데이트)를 실행하면 나에게 도움이되었습니다. 시도해보십시오.

또한 "yum erase php"또는 "yum remove php"를 실행하면 PHP에 의존하는 모든 패키지제거 될 수 있습니다.이 패키지 가 설치되어 있으면 Plesk 또는 CPanel 제어판을 포함 할 것입니다. 내가 실수하지 않으면 다시 설치해야하는데, 이는 고통 스러울 수 있습니다.


2
예, 정확히 그 문제가 있습니다. PHP를 업그레이드하기 위해 yum은 Drupal을 삭제하려고합니다. Drupal은 실제로 의존성이 아닙니다 .PHP가 작동해야하지만 컴파일 된 프로그램이 아닌 PHP 소스이기 때문에 PHP의 버전은 중요하지 않습니다. PHP5.2를 제거하고 Drupal을 내버려 두는 방법이 있습니까?
bart

0

CentOS 5.3에 PHP 5.3.10을 설치하는 많은 연구 끝에이 문제를 방금 해결했습니다. Atomicorp repo를 포함한 여러 저장소를 사용해 보았지만이 파산

나는 마침내 다음 단계가 치료를 받는다는 것을 알았습니다.

시작

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

"[remi]"제목 아래에서 "enabled = 0"을 "enabled = 1"로 변경하십시오.

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

끝난

건배; 표

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.