Làm cách nào để cài đặt mcrypt cho PHP 5.3.3 trên CentOS 5.7 64 bit?


11

Tôi đã cài đặt php 5.3 và một số mô-đun bằng

yum install php53-{module-name}

Nhưng mcrypt không hoạt động.

Tôi đã tìm kiếm như thế này:

yum list php* | grep mcry

Gói duy nhất xuất hiện là

php-mcrypt.x86-64         5.1.6-15.e15.centos.1    extras

Tôi có cùng một vấn đề chính xác với mhash. Kết quả cho php thậm chí còn khó hiểu hơn.

Tôi biết đây có lẽ là một câu hỏi ngớ ngẩn, nhưng bất kỳ trợ giúp sẽ được đánh giá cao. Tôi đã quen với "apt-get install" đơn giản của Ubuntu và mọi thứ đều hoạt động. CentOS dường như được định hướng chi tiết hơn rất nhiều.

Cảm ơn.

EDIT: Đây là những gì tôi đã thử:

yum install php53-mcrypt

Kết quả:

No package php53-mcrypt available

Và thử điều này:

yum install php-mcrypt

Kết quả trong:

Error: php53-common conflicts with php-common

Bởi vì php-mcrypt cố gắng lấy php-common làm phụ thuộc (?) Và tôi đang cố gắng sử dụng php 5.3 thay vì php 5.1 mặc định trên CentOS 5.7.


Chính xác thì cái gì không hoạt động và làm thế nào nó thất bại? Bạn có thể cung cấp một đoạn đầu ra?
colechristensen

Tôi đã cập nhật bài viết của mình với một số nội dung tôi đã thử và đầu ra.
Butussy Butkus

Câu trả lời:


18

Có phải php 5.3 thực sự cần thiết cho những gì bạn đang làm không? Đừng tự động cho rằng mới hơn là tốt hơn.

Nếu bạn nâng cấp lên CentOS 6 php 5.3 là mặc định.

Những gì bạn phải hiểu là RedHat (và do đó bản sao của nó) rất thận trọng về việc nâng cấp các gói với lý do chính đáng. Nếu bạn muốn đẩy nó và nhận thêm các gói nâng cấp, hãy chờ đợi các vấn đề.

Điều đó nói rằng, gói bạn đang tìm kiếm tồn tại! Tất cả bạn cần làm là

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install php53-mcrypt

Repo EPEL chứa nhiều hơn và nhiều gói nâng cấp hơn để khen kho lưu trữ mặc định.


Cài đặt kho lưu trữ EPEL trên CentOS Linux 5.5 32 bit:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

Cài đặt kho lưu trữ EPEL trên CentOS Linux 5.5 64 bit:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm

Không, php 5.3 không thực sự cần thiết. Nhưng php 5.2+ thì có. Dù bằng cách nào, tôi không thể sử dụng PHP mặc định được sử dụng trong CentOS 5.7. Nếu cài đặt 5.2 với tất cả các gói tôi cần dễ dàng hơn đáng kể, tôi chắc chắn sẽ làm được. Nhưng vì nó cũng không phải là mặc định, tôi cho rằng nó có thể khó như vậy và do đó tôi cũng có thể nỗ lực trong 5.3 như cho 5.2. ??
Butussy Butkus

Chạy các lệnh để cài đặt EPEL và các vấn đề của bạn sẽ được giải quyết dễ dàng.
colechristensen

Ngoài ra, nếu nó không quá rắc rối, bạn có thể giải thích cách bạn tìm thấy gói và đảm bảo nó là gói chính xác cho phiên bản HĐH, bộ xử lý (32/64 bit) và phiên bản PHP không? Tức là bạn đã sử dụng công cụ nào để tìm url vòng / phút cung cấp cho bạn gói chính xác bạn cần? Cảm ơn rất nhiều!
Butussy Butkus

1
Vì vậy, yum cài đặt php53-mcrypt hoạt động, nhưng thật đáng buồn là php53-mhash và php53-lê không được tìm thấy. Điều này có nghĩa là chúng không tồn tại trên EPEL?
Butussy Butkus

1
Câu trả lời này đã làm việc cho tôi. Đừng quên khởi động lại /etc/init.d/httpd restart, để xem các thay đổi.
Josh

2

Điều này chắc chắn sẽ hoạt động trên các phiên bản CentOS / RHEL 6+.
Hy vọng cách tiếp cận tương tự sẽ làm việc trên 5+ phiên bản.

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update
yum install -y php-mcrypt

1

Vì mọi người vẫn đang đến đây, tôi sẽ đưa ra câu trả lời mà tôi chưa thấy.

Tôi chạy CentOS nhưng tôi cũng cần theo kịp với PHP và MySQL, với các phiên bản mới hơn Red Hat chọn cung cấp. Để giải quyết vấn đề này, tôi sử dụng kho lưu trữ remi , nơi cung cấp các gói PHP, MySQL, Symfony hiện tại và một vài thứ khác cho CentOS.

(Và tôi vừa ngừng hoạt động hộp CentOS 5 cuối cùng chưa đầy một giờ trước, hooray!)


Tôi đã kết thúc việc giải quyết vấn đề của mình và mặc dù cách đây nhiều tháng, tôi tin rằng nó đang sử dụng kho lưu trữ remi. Tôi cũng nhớ chạy vào một vài trục trặc mặc dù. Tôi đã phải gỡ cài đặt / cài đặt lại nhiều lần trước khi mọi thứ trở nên ổn định.
Butussy Butkus

Remi đã trở thành ngay sau EPEL trong kho lưu trữ mà tôi thêm vào hộp CentOS mới cài đặt. Nó tiết kiệm rất nhiều đau đầu sau này. :)
Michael Hampton

-1

Ban đầu, tìm hiểu phiên bản PHP bạn đang sử dụng:

rpm -q php
output:php-5.3.3-22.el6.x86_64

Tìm gói RPM thích hợp trên http://rpmfind.net/linux/rpm2html/search.php?query=php-mcrypt (khớp với phiên bản PHP và kiến ​​trúc CPU của bạn)

Đối với tôi, đó là ftp://rpmfind.net/linux/epel/6/x86_64/php-mcrypt-5.3.3-1.el6.x86_64.rpm

Điều này hoàn thành việc cài đặt:

wget -c ftp://rpmfind.net/linux/epel/6/x86_64/php-mcrypt-5.3.3-1.el6.x86_64.rpm
rpm -i --nodeps php-mcrypt-5.3.3-1.el6.x86_64.rpm

Kiểm tra php -vlỗi.


Tốt hơn nên cài đặt kho EPEL đúng cách để mọi phụ thuộc được giải quyết đúng cách. Đừng không đi săn bắn cho gói ngẫu nhiên trên mạng!
vonbrand

vâng @vonbrand, bạn nói đúng, tôi đã thử, nhưng không tìm thấy, vì vậy đã sử dụng giải pháp trên để giải quyết vấn đề nhanh chóng
Maulik Shah

-2

Có vẻ như bạn sẽ phải tự biên dịch nó, vì dường như không có mcM RPM cho php-5.3 trên CentOS5.

Hãy xem điều này về cách thực hiện biên dịch:

http://chrisjean.com/2011/06/24/upTHER-php-5-1-or-5-2-to-5-3-on-centos/

Lưu ý rằng điều này sẽ đưa bạn ra khỏi quản lý gói cho mcrypt và lê, nếu điều đó quan trọng.


Quản lý các gói như thế này khi vấn đề thực sự bạn đang làm việc hoàn toàn khác ... thường là một sai lầm. Bạn sẽ không biết về các bản cập nhật bảo mật, sửa lỗi và có cơ hội chắc chắn để làm hỏng mọi thứ và lãng phí thời gian để sửa chữa các vấn đề sai. Điều đó và EPEL, một kho lưu trữ liên kết với RedHat, xuất bản gói php53-mcrypt cho các bản phân phối dựa trên EL5.
colechristensen

Tôi khá nhận thức được các vấn đề. Vấn đề là, từ những câu hỏi trước đó của người đăng bài ban đầu, anh ta bị ràng buộc trong việc cố gắng để php 5.3 chạy trên phiên bản CentOS5. Từ bài đăng trên blog mà tôi đã trích dẫn, dù sao thì anh ta cũng sẽ bị lừa, vì không có gói php53-mcrypt và php53-lê, vì vậy, bất kể anh ta sẽ làm gì ngoài tầm kiểm soát phiên bản. Nếu anh ta phải ở trong hộp CentOS5, anh ta không có nhiều sự lựa chọn nếu anh ta yêu cầu php mcrypt và lê.
cjc

Trên thực tế, php53-mcrypt đã được cài đặt khi tôi theo dõi bài viết của colechristensen. Nhưng php53-lê và php53-mhash đã thất bại. Tôi không muốn gây rối với việc biên dịch, vì vậy tôi nghĩ các tùy chọn tốt hơn là 1: cố gắng làm lại tất cả những điều này với php52 (tôi cần ít nhất là php 5.2). Và nếu thất bại, tôi sẽ thử nâng cấp CentOS lên 5.7. Và nếu thất bại, hãy mua một máy chủ mới và tự cài đặt một hệ điều hành khả thi.
Butussy Butkus
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.