Cách tốt nhất để làm cho RHSCL PHP có sẵn trên toàn cầu


10

Tôi đã cài đặt RHSCL 2 bằng url sau:

https://access.redhat.com/documentation/en-US/Red_Hat_Software_Collections/2/html/2.0_Release_Notes/chap-Installation.html

sử dụng trình quản lý đăng ký RedHat.

Sau đó tôi chạy yum remove php*theoyum install rh-php56

Mọi thứ đều diễn ra suôn sẻ trừ bây giờ PHP không tìm thấy ở đâu cả. Sau đó tôi chạy find / -name phpvà tìm thấy rh-php56trong các thư mục sau:

/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/register.content/var/opt/rh/rh-php56/lib/php
/opt/rh/rh-php56/root/usr/bin/php
/opt/rh/rh-php56/root/usr/lib64/php
/opt/rh/rh-php56/root/usr/share/php

Cách tốt nhất để đưa các tệp nhị phân này vào /usr/binhoặc bất kỳ thư mục nào khác thường có sẵn trên toàn cầu cho tất cả người dùng là gì?

Tôi đã bỏ lỡ một bước khi cài đặt các gói đó là lý do tại sao nó không có sẵn trên toàn cầu? Hay đây chỉ là những gì xảy ra khi sử dụng RHSCL?

Tôi đã kiểm tra các nhị phân trong các thư mục đó và chúng hoạt động khi tôi chạy php -vđể nó hoạt động tốt.

Suy nghĩ đầu tiên của tôi là chỉ cpvào /binhoặc /usr/binnhưng có lẽ có một cách chính thức để làm những gì tôi đang yêu cầu?

biên tập

Không thể bình luận, không có đại diện ... từ chương 3 của liên kết tôi đã đăng, nó nói rằng các gói bộ sưu tập phần mềm phải được chạy như vậy:

scl enable rh-php56 'php -v'

Cái nào cũng hoạt động ... tuy nhiên làm cách nào để tôi chạy nó cho tất cả người dùng như $ php -vkhông có lệnh bổ sung. Tôi cần các nhị phân php có sẵn trên toàn cầu để máy chủ web có thể sử dụng nó và người dùng ssh với các shell thông thường.


Bạn đã quên đọc chương 3 của liên kết bạn đã đưa ra ....
Sven

1
Sven ... Tôi tự đọc nó .. và tất cả những gì nó có đang bắt đầu một lớp vỏ phụ với bộ sưu tập có sẵn. Nó KHÔNG chi tiết làm thế nào để làm cho một bộ sưu tập có sẵn theo mặc định mà không cần người dùng cần chạy một vỏ phụ. Tôi sẽ chi tiết một giải pháp thích hợp dưới đây.
anthony

Sven, điều đó có nghĩa là mọi người dùng và mọi trình nền sẽ cần phải chạy scl enable rh-php56 command, điều này rất phức tạp. Kích hoạt nó trên toàn cầu thông qua câu trả lời của @ antofthy thanh lịch hơn nhiều.
Stefan Lasiewski

Câu trả lời:


16

Cách để nhập bộ sưu tập phần mềm vào trình bao hiện tại của bạn (không khởi chạy lớp vỏ phụ) là tìm nguồn tệp "enable".

Ví dụ cho rh-php56 trên máy Redhat 7 ...

nguồn / opt / rh / rh-php56 / enable

Bây giờ bạn có thể chạy "php" hoặc đọc manpages "man php" như bình thường.

sẽ thêm các biến môi trường thích hợp vào môi trường shell hiện tại. Người dùng cá nhân có thể thực hiện việc này trong các tệp .bashrc, cho phép nó có sẵn từ SSH (shell không tương tác)

Bạn cũng có thể sao chép (hoặc symlink) tệp kích hoạt vào /etc/profile.d/ với hậu tố ".sh" để tự động kích hoạt nó cho TẤT CẢ người dùng.

Ví dụ

ln -s / opt / rh / rh-php56 / enable /etc/profile.d/rh-php56.sh

Trở nên làm điều này nếu cần nhiều hơn môi trường (chẳng hạn như daemon?). Hoặc nếu có nhiều phiên bản của phần mềm đó trên một hệ thống (để tương thích ngược với các phần mềm / dịch vụ khác), vì có thể có sự tương tác giữa các phiên bản. Ngoài ra, người dùng có thể không muốn phiên bản 'mới nhất' hoặc bị nhầm lẫn về lý do tại sao hệ thống 'cơ sở' (cấu hình EG: / etc) không ảnh hưởng đến phiên bản bộ sưu tập phần mềm.

Anthony Thyssen (Một quản trị viên hệ thống rất cũ)


phương thức nào của php.ini mà phương thức này gọi?
Darvanen

1
Tệp php.ini đọc được mã hóa cứng vào chương trình php. Trong ví dụ trên, đó là "/etc/opt/rh/rh-php56/php.ini". Bạn có thể xác minh điều này bằng cách sử dụng tập lệnh PHP <? Php phpinfo ()?> Từ trang web ".php" hoặc sử dụng lệnh CLI PHP.
anthony

Ahhh ... Tôi đã khởi động lại httpd thay vì dịch vụ php-fpm. Đăng ở đây trong trường hợp bất cứ ai khác bị mắc kẹt theo cách đó.
Darvanen

Điều này có thực sự đủ để kích hoạt gói SCL không? access.redhat.com/solutions/527703 dường như tạo ra một tập lệnh bash giống nhưsource scl_source enable python33
Stefan Lasiewski

Nên là đủ. Về cơ bản, nó thiết lập môi trường để sử dụng phiên bản cụ thể trên phiên bản hệ thống. Nhưng chỉ trong vỏ phụ bắt đầu.
anthony
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.