Làm cách nào để cài đặt PHP 5.3 trên CentOS?


9

Tôi phải cài đặt PHP 5.3 trên máy chủ CentOS của mình. Nếu tôi làm yum install php, kho lưu trữ cơ sở sẽ cài đặt 5.1.6 quá cũ cho các ứng dụng tôi cần cài đặt. Vì vậy, tôi đã cố gắng sử dụng kho lưu trữ IUS , theo các hướng dẫn chính thức từ 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

ĐỒNG Ý. Bây giờ tôi chỉ đơn giản là làm yum install php53, v.v. cho tất cả những gì tôi cần ... nhưng tôi gặp lỗi này:

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
-------------

Tôi không có ý tưởng về cách giải quyết điều này. Tôi nghĩ rằng tôi phải xóa các gói cơ sở. Tuy nhiên, là một người mới sử dụng Linux, tôi không biết làm thế nào để làm điều đó.

Câu trả lời:


8

Cập nhật : Rõ ràng RHEL 5.6 bao gồm PHP 5.3 , do đó, điều này sẽ sớm được hiển thị cho 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

Vấn đề ở đây là các gói bạn đang cài đặt có một tên khác (php53 thay vì php), nhưng chúng cố gắng cài đặt cùng một tệp ... do đó xảy ra xung đột. Đây không hẳn là cách tốt nhất để đặt các gói lại với nhau, nhưng tôi không biết có gói nào tốt hơn không nên chúng tôi sẽ bỏ qua.

Để xóa các gói hiện đang cài đặt của bạn:

# yum remove php-cli php-common php

Vì vậy, nói chung, yum remove <list of packages>sẽ loại bỏ các gói. Và tất nhiên, yum list installedđể xem danh sách các gói đã cài đặt (hoặc rpm -qa).


hm yeah loại bỏ có thể tốt hơn xóa, vì xóa cũng loại bỏ phụ thuộc. Hãy thử xóa trước, nếu thất bại hãy thử xóa.
Phil Hollenback

2
removeeraselà từ đồng nghĩa, theo yumtrang man dưới cả CentOS và các bản phát hành Fedora gần đây.
larsks

Cảm ơn! Điều đó đã làm việc, mặc dù tôi không phải xóa php nhưng hai cái đầu tiên trong danh sách đó. Để cài đặt php 5.3 tôi chỉ cần cài đặt php53 phải không? Có rất nhiều gói được liệt kê nhưng tôi nghĩ đó là gói quan trọng duy nhất phải không?
feelsitresofsoda

Chắc chắn từ đồng nghĩa. Nhìn vào yumcommands.pynếu bạn nghi ngờ. :)
mattdm

Có lẽ. Chỉ bạn mới biết ứng dụng của mình có yêu cầu bất kỳ mô-đun bổ sung nào không (ví dụ: hỗ trợ xml, hỗ trợ ldap, cơ sở dữ liệu, v.v.).
larsks

4

Câu trả lời cho điều này đã thay đổi, kể từ ngày 13 tháng 1 năm 2011. Red Hat đã phát hành phiên bản 5.6 và bao gồm phiên bản PHP 5.3 dưới dạng một gói riêng ( php53).

Bạn phải loại bỏ PHP cũ và sau đó cài đặt PHP 5.3 riêng. Điều này nghe có vẻ giống với gói của bạn từ kho lưu trữ IUS, nhưng bây giờ nó là chính thức.

Để biết thêm thông tin, hãy xem ghi chú phát hành Red Hat .

Lưu ý rằng đây chỉ là Red Hat và sẽ có một chút chậm trễ trước khi điều này có sẵn trong CentOS. Tuy nhiên, bản cập nhật RHEL 5.6 trông tương đối nhỏ, vì vậy tôi không nên hy vọng nó quá dài.


Vâng. và 4 tháng sau. nó vẫn chưa có trong repos centos. :(
Stann


Nó có sẵn kể từ tháng 4 năm 2011. Whew. Xem Ghi chú Phát hành CentOS 5.6
Stefan Lasiewski

2

Hãy thử gỡ bỏ các phiên bản cũ của các gói trước khi cài đặt các gói mới:

yum xóa php-cli php-comon

sau đó thử cài đặt yum của bạn.

Cảnh báo : xem danh sách các thay đổi mà yum muốn thực hiện trước khi cam kết, để đảm bảo bạn không xóa các gói quan trọng khác.


2

Bạn đã đúng, trước tiên bạn cần gỡ cài đặt các gói php mặc định. Trước khi tiếp tục, hãy nhớ rằng các gói khác có thể có các phụ thuộc cụ thể vào các phiên bản cơ sở. Rất có thể, bạn sẽ ổn, nhưng chỉ cần biết trước rằng bạn có thể cần phải giải quyết các mối quan tâm khác sau này.

Bạn sẽ có thể làm điều này bằng cách ban hành

yum erase php-common php-cli

Tiếp theo là của bạn

yum install php53


1
  1. Tôi đã phải loại bỏ php-cli, php-commonphp-devcùng với một số phụ thuộc nhưng không có gì khác (MySQL, v.v. không bị ảnh hưởng.)
  2. Tôi đã cài đặt các gói tương tự trong hương vị PHP 5.3 với các phụ thuộc và bây giờ mọi thứ đã hoạt động. phpinfoxác nhận rằng tôi đang chạy phiên bản PHP 5.3.3.
  3. Tôi đã khởi động lại Apache và trang web, chạy Joomla, chỉ hoạt động tốt.

0

Tôi đã có cùng một vấn đề trong đó "yum update php" sẽ cho tôi các lỗi xung đột.

Chạy "yum update" (cập nhật mọi thứ) đã làm việc cho tôi mặc dù. Hãy thử xem.

Ngoài ra, nhận ra rằng nếu bạn chạy "yum erase php" hoặc "yum remove php", nó có thể xóa tất cả các gói phụ thuộc vào PHP ... có thể bao gồm bảng điều khiển Plesk hoặc CPanel của bạn nếu bạn đã cài đặt. Nếu tôi không nhầm, bạn sẽ phải cài đặt lại chúng, đó có thể là một nỗi đau.


2
Vâng, tôi có chính xác vấn đề đó. Để nâng cấp PHP, yum muốn xóa Drupal, đây không thực sự là một phụ thuộc: nó yêu cầu PHP phải hoạt động, nhưng nó không quan tâm đến phiên bản PHP nào, vì nó là nguồn PHP chứ không phải là một chương trình được biên dịch. Bất kỳ cách nào để gỡ cài đặt PHP5.2 và để nó rời khỏi Drupal?
bart

0

Tôi vừa giải quyết vấn đề này sau nhiều nghiên cứu, cụ thể là cài đặt PHP 5.3.10 trên CentOS 5.3. Tôi đã thử sử dụng một số kho lưu trữ, bao gồm cả kho repo của Atomicorp , nhưng điều này đã phá vỡ plesk

Cuối cùng tôi đã tìm thấy các bước sau đây là một điều trị, nghĩ rằng tôi chia sẻ.

BẮT ĐẦU

Tải xuống và kích hoạt kho lưu trữ REMI và 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

Thay đổi "enable = 0" thành "enable = 1" trong tiêu đề "[remi]"

Bạn phải xóa php-sqlite2 nếu không bạn sẽ gặp lỗi phụ thuộc

yum remove php-sqlite2

Cập nhật PHP lên phiên bản mới nhất 5.3.10 trong trường hợp này

yum update php

Sao lưu php.ini và kích hoạt phiên bản mới cài đặt

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

Sao lưu my.cnf và kích hoạt phiên bản mới cài đặt

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

Cài đặt phiên bản mới nhất của phần mở rộng 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

Bạn cũng có thể cần cài đặt tiện ích mở rộng php, trong trường hợp này tôi cũng cần cài đặt tiện ích mở rộng SOAP:

yum install php-soap

Khởi động lại dịch vụ để thực hiện các thay đổi có ảnh hưởng

service mysqld restart
service httpd restart

LÀM XONG

Chúc mừng; dấu

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.