Hướng dẫn which php version is used by composer? - phiên bản php nào được sử dụng bởi nhà soạn nhạc?

Tôi đã có cùng một vấn đề và đây là cách tôi có thể tìm ra cách chạy trình soạn thảo bằng cách sử dụng phiên bản PHP khác trên lưu trữ chung mà không phá vỡ hệ thống :)how to run composer using a different PHP version on a shared hosting without breaking the system :)

May mắn thay, việc giải quyết vấn đề này với nhà soạn nhạc sử dụng phiên bản PHP khác nhau là chết đơn giản.

Findings:

PHP mặc định không được chạy từ/usr/local/bin hoặc thư mục tương tự. Sử dụng

which php

hoặc

whereis php

sẽ không cho bạn câu trả lời tốt nhất.


Thực hiện theo hướng dẫn ngắn dưới đây:

Đầu tiên tìm đường dẫn thực tế đến chính nhị phân của nhà soạn nhạc của bạn. Trên máy chủ lưu trữ được chia sẻ của tôi, nó đã ở

/opt/cpanel/composer/bin/composer

Tôi tin rằng hầu hết các nhà cung cấp lưu trữ sử dụng cPanel sẽ có đường dẫn như vậy đến nhà soạn nhạc.

Tiếp theo, tạo một bí danh cho phiên bản PHP bạn muốn sử dụng. Trong dự án của tôi, tôi cần PHP 7.4 hoặc mới hơn.alias to the PHP version you want to use. In my project, I needed php 7.4 or newer.

Như đã đề cập trước đó, máy chủ đã sử dụng cPanel và phiên bản PHP mặc định thực tế mà máy chủ sử dụng nằm trong đường dẫn

whereis php
2

Bạn sẽ thấy các phiên bản PHP khác nhau trong

whereis php
2 (ví dụ như tiền tố bởi EA-phpxx), đối với Php 7.4, nó sẽ là một thư mục gọi là EA-php74 và đối với Php 8.0, nó sẽ là một thư mục gọi là EA-php80.php 7.4, it would be a folder called ea-php74 and for PHP 8.0, it would be a folder called ea-php80.

Bây giờ, hãy chắc chắn rằng PHP tồn tại trong một đường dẫn tương tự như thế này:

/opt/cpanel/ea-php80/root/usr/bin

Nếu bạn tìm thấy

whereis php
4 trong thư mục, thì bây giờ bạn có thể bí danh nó như Folows:

alias php='/opt/cpanel/ea-php80/root/usr/bin/php'

Kiểm tra rằng bí danh đang hoạt động bằng cách chạy

php --version 

và kiểm tra phiên bản PHP như trong ảnh chụp màn hình bên dưới:

Hướng dẫn which php version is used by composer? - phiên bản php nào được sử dụng bởi nhà soạn nhạc?


Bây giờ, chạy trình soạn thảo như bình thường. Ví dụ

 php /opt/cpanel/composer/bin/composer update
 php /opt/cpanel/composer/bin/composer install
 php /opt/cpanel/composer/bin/composer install

Hãy nhớ làm thế nào chúng tôi tìm thấy nhị phân của nhà soạn nhạc AT/opt/cPanel/nhà soạn nhạc/bin/nhà soạn nhạc. Nếu điều này không khớp với đường dẫn đến nhị phân compser trên máy chủ của bạn, hãy sử dụng hướng thích hợp.. If this does not match the path to the compser binary on your server, use the appropriate one.

Tôi hi vọng cái này giúp được. Mã hóa hạnh phúc!

Bỏ qua nội dung

Khi bạn thực thi trình soạn thảo, nó sử dụng phiên bản PHP mặc định. Đôi khi, bạn sẽ gặp sự cố nếu bạn sử dụng trình soạn thảo với một phiên bản khác mà phiên bản thực hiện dự án.

Ví dụ: trong một máy chủ, phiên bản mặc định là PHP 8.0:

$ php -v
PHP 8.0.7 (cli) (built: Jun  4 2021 23:14:20) ( NTS )

Để thực thi trình soạn thảo với phiên bản PHP khác như Php 7.4, trước tiên tôi nhận được Php 7.4 và nhà soạn nhạc đường dẫn đầy đủ:

$ which php7.4
/usr/bin/php7.4
$ which composer
/usr/local/bin/composer

Để thực thi trình soạn thảo với PHP7.4, tôi chỉ cần sử dụng các đường dẫn đầy đủ. Ví dụ: để có được phiên bản trình soạn thảo, tôi thực thi:

$ /usr/bin/php7.4 /usr/local/bin/composer -v
Composer version 2.1.3 2021-06-09 16:31:20

bài chuyển hướng

Gần đây tôi đã viết một bài về việc cập nhật lên Php 7.4. Điều đó thật tuyệt! Kích thích! Tiến triển! Nhưng, nó giới thiệu một số thách thức thú vị, đặc biệt là khi bạn đã cập nhật máy chủ của mình lên phiên bản PHP mới. Tại sao? Chà, đối với một người, nhà soạn nhạc giả định rằng phiên bản PHP trên máy bạn đang chạy là phiên bản PHP bên phải của Php.

Chẳng hạn, ở đây, một kịch bản mà tôi đã cập nhật máy ảo của mình lên Php 7.4 và tôi đặt các yêu cầu PHP trong tệp Composer.json của mình thành Php 7.4 nhưng tôi chưa cập nhật máy chủ của mình lên Php 7.4:

Yêu cầu của bạn không thể được giải quyết cho một bộ gói có thể cài đặt.

Bài 1

- Trình soạn thảo gốc.json yêu cầu PHP> = 7.4 Nhưng phiên bản PHP của bạn (7.3.14) không đáp ứng yêu cầu đó.

Bạn cũng có thể gặp vấn đề này ngược lại, nơi bạn đã cập nhật máy chủ của mình lên Php 7.4 nhưng chưa cập nhật dự án lên Php 7.4 (vẫn ở mức 7.2 hoặc 7.3) và bạn vô tình nâng cấp.

Có một vài cách mà nhà soạn nhạc tác động đến phiên bản PHP. Hãy để đào sâu vào những thứ đó!

PHP như một sự phụ thuộc

Bạn có biết bạn có thể thêm PHP dưới dạng phụ thuộc ngay trong tệp Composer.json không? Bạn có thể! Và nó chắc chắn được khuyến nghị, vì nó giúp đảm bảo rằng bạn có được phiên bản phù hợp của các phụ thuộc khác. Nếu dự án của bạn đang chạy Php 7.4, bạn muốn đảm bảo rằng tất cả các phụ thuộc khác của bạn hoạt động với PHP 7.4.

Bạn thêm điều này giống như bất kỳ sự phụ thuộc nào khác:

whereis php
0
whereis php
1

Sau đó, bạn chỉ có thể chạy Cập nhật nhà soạn nhạc php-với tất cả các phụ thuộc giống như bạn sẽ làm bất cứ điều gì khác.

Lưu ý: Nếu bạn đang nhận được lỗi trên về các yêu cầu compser.json, đôi khi đây là một dấu hiệu cho thấy bạn nên cập nhật PHP máy chủ của mình hoặc bạn nên làm việc trong VM của mình. Trong trường hợp của tôi, tất cả những gì tôi phải làm để giải quyết vấn đề đó là chạy lệnh của nhà soạn nhạc bên trong Lando VM (để cập nhật nhà soạn nhạc Lando [chạy bên trong] so với cập nhật nhà soạn nhạc [chạy bên ngoài]).

PHP như một cấu hình nền tảng

Trong kịch bản cập nhật mà tôi đã thảo luận trước đây, cấu hình nền tảng sẽ giúp đảm bảo rằng phiên bản PHP máy chủ và phiên bản PHP dự án của bạn ở trong làn đường của họ.

"config": {

"nền tảng": {

"PHP": "7.3"

}

},

Bằng cách này, về cơ bản bạn sẽ đảm bảo rằng ngay cả khi bạn có Php 7.4 trên máy chủ của mình, dự án này sẽ vẫn ở mức 7.3 Php. Hãy nhớ rằng, "PHP": "> = 7.3" như một yêu cầu có thể có nghĩa là Php 7.4. Vì vậy, bằng cách có "PHP": "> = 7.3" như một yêu cầu và "PHP": "7.3" như một cấu hình nền tảng sẽ khóa dự án thành PHP 7.3.

Tóm lại là

Quá trình định nghĩa này rất hữu ích khi bạn có một số lượng lớn các nhà phát triển không hoạt động trong một môi trường nhất quán (ví dụ: một cấu hình VM phổ biến). Bất cứ khi nào bạn có những người có tiềm năng cho các cấu hình PHP biến đổi giữa các máy, các bổ sung này cho nhà soạn nhạc của bạn.JSON FILL hy vọng sẽ đảm bảo trải nghiệm nhà soạn nhạc ổn định hơn.

Nhà soạn nhạc có đi kèm với PHP không?

Gói nền tảng# Composer có các gói nền tảng, là các gói ảo cho những thứ được cài đặt trên hệ thống nhưng không thực sự có thể cài đặt được bởi nhà soạn nhạc.Điều này bao gồm bản thân PHP, phần mở rộng PHP và một số thư viện hệ thống.This includes PHP itself, PHP extensions and some system libraries.

Phiên bản của nhà soạn nhạc là gì?

Trong trình soạn thảo, những gì thường được gọi là một cách tình cờ là một phiên bản - nghĩa là chuỗi theo tên gói trong một dòng yêu cầu (ví dụ: ~ 1.1 hoặc 1.2.the string that follows the package name in a require line (e.g., ~1.1 or 1.2.

Làm thế nào để tôi biết phiên bản nhà soạn nhạc của tôi?

Làm thế nào để tôi biết phiên bản nào của nhà soạn nhạc tôi đang sử dụng?..
Điều hướng đến thiết lập Salesforce ..
Nhấp vào các gói đã cài đặt ..
Tìm nhà soạn nhạc Conga trong danh sách.Nhìn vào số phiên bản ..

Phiên bản nào là tốt nhất cho PHP?

Phân cấp hiệu suất trang web (phiên bản PHP nhanh nhất): 8.0> 7.4> 7.3> 7.2> 7.1> 7.0> 5.6.Tôi cũng đếm tổng số yêu cầu thành công cho mỗi phiên bản PHP, trong đó PHP 8.0 có số lượng phản hồi thành công cao nhất mà không có thời gian chờ (một người chiến thắng rõ ràng).Vị trí thứ hai là Php 7.4, với số lượng phản hồi thành công 3032, v.v.PHP 8.0 has the highest success response counts with no timeout (an obvious winner). Second place is PHP 7.4, with 3032 success response counts and so on.