Điểm:1

Cài đặt PHP 7.x trên Ubuntu 16.04

lá cờ cn

Tôi biết câu hỏi này đã được hỏi rất nhiều, nhưng tôi luôn dẫn đến cùng một câu trả lời không giải quyết được vấn đề của mình.

Giải pháp được cung cấp thường nằm ở những dòng sau:

~$ Sudo apt-get cài đặt thuộc tính phần mềm python-phần mềm phổ biến;
~$ Sudo add-apt-repository -y ppa:ondrej/php;
~$ Sudo apt-get cập nhật;

Và thế là xong! Nhưng không phải trong trường hợp của tôi không may.

Vì vậy, sau khi thực hiện các bước đã đề cập trước đó, tôi đang cố cài đặt phiên bản PHP 7.x "bất kỳ" nào qua đúng cách nhưng có vẻ như không thể tìm thấy các gói cho bất kỳ phiên bản PHP nào.

~$ sudo apt cài đặt php7.4;
Đọc danh sách gói... Xong
Xây dựng cây phụ thuộc... 50%
Xây dựng cây phụ thuộc       
Đang đọc thông tin trạng thái... Xong
Lưu ý, chọn 'php7.4-gd' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-cli' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-dom' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-ffi' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-ftp' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-xmlreader' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-mysqli' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-sysvmsg' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-json' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-phar' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-tokenizer' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-curl' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-shmop' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-pdo-mysql' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-sysvsem' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-sysvshm' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-pdo' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-sockets' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-ctype' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-calendar' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-intl' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-fileinfo' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-opcache' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-soap' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-xml' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-xsl' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-zip' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-simplexml' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-mysql' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-mbstring' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-readline' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-exif' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-mysqlnd' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-common' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-bcmath' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-posix' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-iconv' cho regex 'php7.4'
Lưu ý, chọn 'libapache2-mod-php7.4' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-gettext' cho regex 'php7.4'
Lưu ý, chọn 'php7.4-xmlwriter' cho regex 'php7.4'
0 đã nâng cấp, 0 mới cài đặt, 0 cần xóa và 0 chưa nâng cấp.

Điều thú vị nữa là khi tôi sử dụng tìm kiếm thích hợp là thực sự dường như không có một gói cho bất kỳ php phiên bản

~$ sudo apt search php7.4
Sắp xếp... Xong
Tìm kiếm toàn văn... Xong
libapache2-mod-php7.4/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

php7.4-bcmath/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

php7.4-cli/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 AMD64 [residual-config]

  (không ai)

php7.4-common/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 AMD64 [residual-config]
  (không ai)

php7.4-curl/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

php7.4-gd/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

php7.4-intl/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

php7.4-json/now 7.4.13-1+ubuntu16.04.1+deb.sury.org+1 amd64 [residual-config]
  (không ai)

... vân vân

Tôi đang thiếu gì?

Chỉnh sửa: sau khi thực hiện apt-get thanh lọc php7.4 thông báo cho (ít nhất là PHP 7.4) đã thay đổi thành như sau:

~$ Sudo apt-get cài đặt -y php7.4
Đọc danh sách gói... Xong
Xây dựng cây phụ thuộc       
Đang đọc thông tin trạng thái... Xong
E: Không thể định vị gói php7.4
E: Không thể tìm thấy bất kỳ gói nào bằng toàn cầu 'php7.4'
E: Không thể tìm thấy bất kỳ gói nào bằng regex 'php7.4'
lá cờ in
Ubuntu 18.04 xuất xưởng với PHP 7.2 trong kho lưu trữ mặc định. Bạn có cần 7.4 cụ thể hay bất kỳ phiên bản nào trong dòng 7.x đều đủ?
BRO_THOM avatar
lá cờ cn
@matigo Tôi đang trong quá trình khôi phục vm được sử dụng bởi một nhà phát triển đã tạo ra tất cả các loại phụ thuộc kỳ lạ, vì vậy cách nhanh nhất để giải quyết vấn đề là xóa tất cả các phiên bản php và cài đặt lại chúng. Tuy nhiên tôi đã nhấn vết sưng này. Trước đây 7.0, 7.2, 7.2, 7.3, 7.4 và 8.0 đã được cài đặt. Nhưng vâng, mục tiêu là chỉ cần cài đặt bất kỳ phiên bản nào.
lá cờ in
Máy ảo thường được coi là đối tượng dùng một lần tốt nhất, vì vậy, có thể nhanh hơn để "tiêu thổ" và bắt đầu làm mới. Điều đó nói rằng, nếu bạn khăng khăng giữ máy ảo này, bạn muốn cài đặt phiên bản PHP nào? 7.2 mặc định hay cái gì khác?
BRO_THOM avatar
lá cờ cn
@matigo thật không may, điều đó là không thể, tôi cũng chỉ là một nhà phát triển đơn giản và chúng tôi không có bất kỳ quy trình/hình ảnh ảo nào để cài đặt lại chúng. Chưa kể tất cả các gói khác được yêu cầu. Bên cạnh đó, VM "vẫn đang được sử dụng".
BRO_THOM avatar
lá cờ cn
@matigo Lol, tôi đã nhấn enter để bình luận của tôi được gửi đi. Tôi thích cả 7.3 và 7.4 hơn. Tôi sẽ cài đặt chúng như thế nào? Theo những gì tôi hiểu, sử dụng `apt` về cơ bản là cách duy nhất.
lá cờ in
Xem thông báo từ apt và nhận xét của bạn, có vẻ như PHP 7.4 (và có lẽ năm phiên bản khác) đã được cài đặt trên hệ thống. Chạy `apt install` sẽ hiển thị thông báo trên nếu phần mềm đã được cài đặt và cập nhật. Bạn có gặp sự cố khi chuyển đổi giữa các phiên bản không?
BRO_THOM avatar
lá cờ cn
@matigo phiên bản khác đã bị xóa trước đó bằng lệnh `apt-get remove php7.x` và dường như không còn ở bất kỳ đâu trên hệ thống, vì vậy có vẻ như chúng đã được gỡ cài đặt đúng cách.
BRO_THOM avatar
lá cờ cn
@matigo để chắc chắn, tôi đã kiểm tra xem liệu tôi có thể nhận được một thông báo khác từ `apt-get remove php7.4` hay không nhưng nó chỉ ghi là `0 đã nâng cấp, 0 mới được cài đặt, 0 cần xóa và 0 chưa được nâng cấp.`
BRO_THOM avatar
lá cờ cn
Ngoài ra, @matigo, tôi cũng vừa nhận thấy rằng môi trường là trên Ubuntu 16.04 thay vì 18.04 đã nói ở trên.
lá cờ in
16.04 là EOL và tôi không còn bất kỳ phiên bản nào của hệ thống đó để thử nghiệm các giải pháp nữa. Tôi sẽ *thực sự* khuyên bạn nên tải xuống tệp .iso 20.04 LTS và xây dựng một máy ảo mới cho nhóm phát triển sử dụng. Hãy coi đây là một trải nghiệm học tập tốt sẽ tăng thêm giá trị mà bạn mang lại cho nhóm
BRO_THOM avatar
lá cờ cn
Bạn đúng. Rõ ràng người bảo trì các gói Ubuntu PHP đã ngừng hỗ trợ cho 16.04
Điểm:2
lá cờ cn

Đối với bất cứ ai quan tâm;

Hỗ trợ PHP cho Ubuntu xenial 16.04 đã ngừng hoạt động kể từ 2021-06-10.Tôi đã phát hiện ra điều này một cách khó khăn khi tôi cũng thử cài đặt các mô-đun/phiên bản PHP trên các máy ảo khác sử dụng 16.04 và dường như "không thể tìm thấy các gói" khi máy khác đã cài đặt chúng một cách dễ dàng trước đó.

Có một bài đăng trên stackoverflow mô tả điều này: https://stackoverflow.com/questions/67920506/unable-to-install-php-7-4-on-ubantu-16-04-even-with-ondrej-ppa-repository-in-apa

Levente avatar
lá cờ cn
Mọi hỗ trợ tiêu chuẩn cho 16.04 đã bị loại bỏ, bao gồm các bản vá bảo mật ứng dụng và hệ điều hành: https://meta.askubuntu.com/q/19582/1157519 Điều này cũng đánh dấu bản phát hành này là lạc đề cho trang web này. Xem thêm về điều này và thêm về các tùy chọn của bạn trong nhận xét của tôi tại đây và bên dưới: https://askubuntu.com/questions/1342277/how-to-change-color-of-dialogue-window#comment2293435_1342277
BRO_THOM avatar
lá cờ cn
@Levente có lẽ bạn nên lưu trữ chủ đề này vì nó có ý nghĩa quan trọng trong những ngày sắp tới đối với nhà phát triển/quản trị viên sử dụng phần mềm cũ?
Levente avatar
lá cờ cn
Điều đó không do tôi quyết định... Tôi chỉ muốn chỉ ra rằng để giữ an toàn, bạn cần nâng cấp lên phiên bản được hỗ trợ hoặc đăng ký rõ ràng để được hỗ trợ mở rộng.
lá cờ cl
Tôi đã phải gỡ cài đặt 7.4 và sau đó cài đặt lại, nó đột nhiên bắt đầu bị lỗi và tôi đã cố gắng tìm ra lý do tại sao cho đến khi tôi thấy câu trả lời này. Tưởng rằng tôi đang ở ngày 18.04, nhưng điều này khiến tôi phải kiểm tra và rất tiếc... vẫn là 16.04.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.