2014-08-30 18 views
12

Về cơ bản, tôi là nhà phát triển PHP. Tôi hiện đang sử dụng Ubuntu Linux 12.04 LTS trên máy cục bộ của mình.Tôi có thể di chuyển từ PHP 5.3.10 sang PHP 5.6.0 không?

Tôi đang sử dụng phiên bản sau PHP để phát triển dự án PHP tôi:

php -v //command run at terminal to know the `PHP` version installed 

PHP 5.3.10-1ubuntu3.13 with Suhosin-Patch (cli) (built: Jul 7 2014 18:54:55) 
Copyright (c) 1997-2012 The PHP Group 
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies 

Bây giờ một vài ngày trở lại một phiên bản ổn định mới nhất mới của PHP phiên bản (PHP 5.6.0) được phát hành bởi nhóm PHP phát triển.

Câu hỏi của tôi là, như tôi đang sử dụng một phiên bản PHP trên máy tính địa phương của tôi mà là quá cũ, và cũng có tất cả các phiên bản thấp hơn PHP5.4 là chính thức được hỗ trợ hoặc công bố cuối cùng của cuộc sống, tôi có nên đi cho PHP 5.6.0?

Nếu câu trả lời của bạn là có, vui lòng giải thích cho tôi cách thực hiện? Mã tôi viết trong dự án của tôi có hoạt động đúng sau khi di chuyển này không? Tôi cần phải thay đổi những gì?

Nếu câu trả lời của bạn là không, vui lòng giải thích chi tiết tại sao?

Trước khi đặt câu hỏi này, tôi đã xem qua tài liệu GooglePHP. Ở đó tôi tìm thấy ghi chú chuyển cho sau di cư phiên bản:

**5.3.x->5.4.x 
    5.4.x->5.5.x 
    5.5.x->5.6.x** 

Không được làm thế nào để di chuyển từ PHP 5.3.10 để PHP 5.6.0.

Vì vậy, ai đó có thể vui lòng giúp tôi về vấn đề này?

Nếu bạn cần thêm bất kỳ thông tin nào về vấn đề của tôi, vui lòng cho tôi biết.

+1

Bạn nên luôn sử dụng trình quản lý gói để cập nhật phần mềm. Chỉ cập nhật thủ công khi thật cần thiết, do đó khi gói bị thiếu từ repositores chính thức và bạn không muốn sử dụng repositores của bên thứ ba. – Luka

+0

@Luka: Trình quản lý gói có ý nghĩa gì và tôi nên sử dụng trình quản lý gói nào? – user2839497

+1

Trình quản lý gói là một chương trình được sử dụng để tự động tìm kiếm và cài đặt các gói và các gói phụ thuộc của nó. 'apt' là một ví dụ về trình quản lý gói. Tất cả các bản phân phối dựa trên Debian (do đó Ubuntu) đều có mặc định. Ví dụ, các bản phân phối dựa trên RedHat có 'yum'. Vì vậy, bạn nên luôn luôn cài đặt các bản cập nhật bằng cách sử dụng 'apt-get install php'. Trong trường hợp gói đã được cài đặt và có bản cập nhật mới, chúng sẽ được cài đặt. Nếu gói chưa được cài đặt, nó sẽ được cài đặt sau khi chạy 'apt-get install'. Nhìn vào câu trả lời của DevilishDB. – Luka

Trả lời

8

TL; DR PHP 5.3.x vẫn sẽ nhận được nâng cấp bảo mật bằng cách Ubuntu nhưng nâng cấp lên 14.04.1 cho một phiên bản mới hơn

Bạn có thể tải về và xây dựng/cài đặt nguồn cho PHP 5.6 từ trang web, nhưng don Vì nó có nghĩa là bạn có nguy cơ mất ổn định với hệ thống của bạn vì các gói khác trên hệ thống của bạn sẽ không được thiết kế cho phiên bản này và bạn sẽ phải nâng cấp nó theo cách thủ công mỗi khi có phiên bản mới. liên quan đến bảo mật vì bạn sẽ không nhận được chúng được nâng cấp nhanh chóng như bạn sẽ sử dụng trình quản lý gói.

Thay vào đó, tôi khuyên bạn nên nâng cấp bản phân phối của mình lên Ubuntu 14.04.1, trong đó có PHP 5.5.9; rất nhiều mới hơn 5.3.10. Tất nhiên, 5.3.x sẽ vẫn nhận được bản cập nhật bảo mật cho đến khi Ubuntu 12.04 đạt EOL nhưng nếu bạn muốn các tính năng mới nhất bạn nên dist-upgrade. Bạn có thể làm điều này bằng đồ họa trong trình cập nhật phần mềm Ubuntu hoặc chạy apt-get dist-upgrade làm gốc (ví dụ: sudo) trong TTY nếu bạn đang sử dụng phiên bản máy chủ. Cập nhật: sử dụng sudo do-release-upgrade thay thế.

Chỉnh sửa: Chỉ cần làm rõ, apt-get là trình quản lý gói. Nếu bạn thường sử dụng các công cụ đồ họa để cài đặt và cập nhật các gói (ubuntu software center, synaptic, vv), dưới đây là một số lệnh đơn giản. # cho biết rằng nó phải được chạy dưới dạng root (ví dụ: sudo apt-get install <package>), $ cho biết bạn không cần sudo. Thay thế mọi thứ bằng thứ bạn muốn sử dụng (ví dụ:apt-get install chromium-browser)

#apt-get update cập nhật kho
#apt-get upgrade nâng cấp để các gói mới hơn (chạy trên đầu tiên!)
#apt-get upgrade <package> cũng giống như trên, nhưng chỉ nâng cấp một gói phần mềm duy nhất (không phải là hữu ích, trừ khi bạn có một lý do cụ thể)
#apt-get install <package> cài đặt một gói
#apt-get remove <package> loại bỏ một gói
#apt-get autoremove tự động loại bỏ các gói đã được cài đặt bởi phụ thuộc và không còn cần thiết
$apt-cache search <query> tìm kiếm truy vấn mà bạn đã
$apt-cache show <package> hiển thị thông tin cho một gói
#yes "" | apt-get install <package> cài đặt một gói trả lời các câu trả lời mặc định cho tất cả mọi thứ (bạn có thể sử dụng yes với nhiều lệnh)
#apt-get dist-upgrade nâng cấp mọi thứ (và loại bỏ một số gói) khi nó thường có thể bị giữ lại.

+0

Tôi tìm thấy một redditor. Làm anh đau –

5

Nâng cấp lên Ubuntu 14.04.1 để nhận gói PHP 5.5.9 dưới dạng gói và hưởng lợi từ nâng cấp Ubuntu. Tôi sẽ không đi cho 5.6.0 trong một môi trường sản xuất anyway.

Từ this PHP page bạn nhận thông tin về việc di chuyển từ 5,3 đến 5,4 và 5,4 đến 5,5.

Bên cạnh những thay đổi và tính năng mới được đề cập, các nhóm PHP đã làm việc về quản lý bộ nhớ và tối ưu hóa giữa 5.3 và 5.5.9. Những cải tiến này thôi thúc đẩy sự di cư.

miếng lời khuyên cho sự di cư

  • APC: PHP tại nhúng OPCache như một sự thay thế của APC. Nếu bạn sử dụng biến APC, một số thông tin về OPCache khả dụng - trong trường hợp của tôi sử dụng APC cũ qua mô-đun mới (thay đổi tên), php5-apcu (lưu ý 'u'), là giải pháp thay thế tốt nhất.

  • Các mô-đun được cài đặt trong một thư mục khác. Nếu bạn có ý định giữ bạn php.ini các extension_dir có thể phải được điều chỉnh

  • Bên cạnh đó, /etc/php5 dir là đòi hỏi khắt khe hơn về cấu trúc: dưới dir đó là mods-available (à la nginx) có chứa danh sách các mô-đun ini mô-đun. Sau đó, trong cli, fpm, apache2 ... dirs là một thư mục conf.d có liên kết tượng trưng đến các tệp ini chính mods-available mô-đun này; chỉ thêm một liên kết nếu bạn dự định sử dụng mô đun đó cho cấu hình PHP đó (ví dụ: mysqli có thể không cần thiết cho cli).

  • JSON: mô-đun php5-json phải được cài đặt (apt-get install php5-json) để nhận các hàm JSON PHP (json_encode, decode ...)

  • lưu ý rằng nó dường như có một vấn đề liên kết /etc/php5/MODE/php.ini (MODE là cli ...) vào một chính php.ini ở đâu đó (ví dụ như trong fpm) - khi cập nhật Ubuntu, một lỗi ngăn cản quá trình cài đặt - Tôi chỉ sao chép php.ini vì chúng giống nhau cho tất cả các chế độ trong trường hợp của tôi.

Bên cạnh đó việc di chuyển diễn ra suôn sẻ.

Các vấn đề liên quan